diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/PqsTerminalLogsClient.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/PqsTerminalLogsClient.java new file mode 100644 index 000000000..97b153bdf --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/PqsTerminalLogsClient.java @@ -0,0 +1,33 @@ +package com.njcn.device.pq.api; + +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.device.pq.api.fallback.PqsTerminalLogsClientFallbackFactory; +import com.njcn.device.pq.api.fallback.TerminalBaseClientFallbackFactory; +import com.njcn.device.pq.pojo.po.Line; +import com.njcn.device.pq.pojo.po.PqsTerminalLogs; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2022年02月14日 14:02 + */ +@FeignClient(value = ServerInfo.DEVICE, path = "/pqsTerminalLogs", fallbackFactory = PqsTerminalLogsClientFallbackFactory.class, contextId = "pqsTerminalLogs") +public interface PqsTerminalLogsClient { + + /** + * 新增日志表数据 + * + * @author zbj + * @date 2023/4/13 + */ + @PostMapping("/saveLogs") + HttpResult saveLogs(@RequestBody PqsTerminalLogs pqsTerminalLogs); +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/PqsTerminalLogsClientFallbackFactory.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/PqsTerminalLogsClientFallbackFactory.java new file mode 100644 index 000000000..04f9c02ef --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/PqsTerminalLogsClientFallbackFactory.java @@ -0,0 +1,46 @@ +package com.njcn.device.pq.api.fallback; + +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.device.pq.api.PqsTerminalLogsClient; +import com.njcn.device.pq.api.TerminalBaseClient; +import com.njcn.device.pq.pojo.po.Line; +import com.njcn.device.pq.pojo.po.PqsTerminalLogs; +import com.njcn.device.pq.utils.DeviceEnumUtil; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author zbj + * @version 1.0.0 + * @date 2023年04月13日 13:34 + */ +@Slf4j +@Component +public class PqsTerminalLogsClientFallbackFactory implements FallbackFactory { + @Override + public PqsTerminalLogsClient create(Throwable throwable) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if (throwable.getCause() instanceof BusinessException) { + BusinessException businessException = (BusinessException) throwable.getCause(); + exceptionEnum = DeviceEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + return new PqsTerminalLogsClient() + { + @Override + public HttpResult saveLogs(PqsTerminalLogs pqsTerminalLogs) { + log.error("{}异常,降级处理,异常为:{}", "新增日志表数据", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + + }; + + + } +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/PqsTerminalLogsController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/PqsTerminalLogsController.java new file mode 100644 index 000000000..97067168f --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/PqsTerminalLogsController.java @@ -0,0 +1,57 @@ +package com.njcn.device.pq.controller; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.device.pq.pojo.po.PqsTerminalLogs; +import com.njcn.device.pq.service.IPqsTerminalLogsService; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; +import com.njcn.web.controller.BaseController; + +/** + *

+ * 前端控制器 + *

+ * + * @author hongawen + * @since 2023-04-13 + */ +@RestController +@RequestMapping("/pqsTerminalLogs") +@RequiredArgsConstructor +public class PqsTerminalLogsController extends BaseController { + + private final IPqsTerminalLogsService iPqsTerminalLogsService; + + /** + * 新增日志表数据 + * + * @author zbj + * @date 2023/4/13 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/saveLogs") + @ApiOperation("新增日志表数据") + @ApiImplicitParam(name = "pqsTerminalLogs", value = "实体", required = true) + public HttpResult saveLogs(@RequestBody PqsTerminalLogs pqsTerminalLogs) { + String methodDescribe = getMethodDescribe("saveLogs"); + boolean res = iPqsTerminalLogsService.saveLogs(pqsTerminalLogs); + if (res) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + +} + diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IPqsTerminalLogsService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IPqsTerminalLogsService.java index b67e2880c..5f1da4fd3 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IPqsTerminalLogsService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IPqsTerminalLogsService.java @@ -2,6 +2,7 @@ package com.njcn.device.pq.service; import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.device.pq.pojo.po.PqsTerminalLogs; +import org.springframework.stereotype.Service; /** *

@@ -9,8 +10,9 @@ import com.njcn.device.pq.pojo.po.PqsTerminalLogs; *

* * @author hongawen - * @since 2023-04-12 + * @since 2023-04-13 */ +@Service public interface IPqsTerminalLogsService extends IService { - + boolean saveLogs(PqsTerminalLogs pqsTerminalLogs); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/PqsTerminalLogsServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/PqsTerminalLogsServiceImpl.java index f112f4cf3..0f32bdcf8 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/PqsTerminalLogsServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/PqsTerminalLogsServiceImpl.java @@ -8,13 +8,17 @@ import org.springframework.stereotype.Service; /** *

- * 服务实现类 + * 服务实现类 *

* * @author hongawen - * @since 2023-04-12 + * @since 2023-04-13 */ @Service public class PqsTerminalLogsServiceImpl extends ServiceImpl implements IPqsTerminalLogsService { + @Override + public boolean saveLogs(PqsTerminalLogs pqsTerminalLogs) { + return this.save(pqsTerminalLogs); + } } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java index c6cb075d9..c83de11ba 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java @@ -188,7 +188,7 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService { sbNew.append("终端运行状态: ").append(newFlag).append(";"); sbOld.append("终端运行状态: ").append(oldFlag).append(";"); sb.append(sbNew).append(sbOld); - HttpResult dicDataByCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.LINE_PARAMETER.getCode()); + HttpResult dicDataByCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.DEV_PARAMETER.getCode()); DictData data = dicDataByCode.getData(); //创建对象 PqsTerminalLogs terminalLogsNew = new PqsTerminalLogs(); diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java b/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java index dd68a972c..7da3d4cac 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java @@ -306,7 +306,8 @@ public enum DicDataEnum { * 日志字典类型 */ LINE_PARAMETER("监测点参数修改","Line_Parameter"), - + DEV_PARAMETER("设备状态修改","Dev_Parameter"), + WEB_ADD("web新增用户","Web_Add"), /** * 接线方式 */ diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java index ed6dd02b7..a19f955ac 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java @@ -14,12 +14,18 @@ import com.njcn.common.pojo.constant.LogInfo; import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.PubUtils; import com.njcn.common.utils.sm.DesUtils; import com.njcn.common.utils.sm.Sm4Utils; import com.njcn.db.constant.DbConstant; +import com.njcn.device.pq.api.PqsTerminalLogsClient; +import com.njcn.device.pq.pojo.po.PqsTerminalLogs; import com.njcn.poi.excel.ExcelUtil; import com.njcn.poi.pojo.bo.BaseLineProExcelBody; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.pojo.po.DictData; import com.njcn.user.enums.UserResponseEnum; import com.njcn.user.enums.UserStatusEnum; import com.njcn.user.mapper.UserMapper; @@ -70,6 +76,10 @@ public class UserServiceImpl extends ServiceImpl implements IU private final GeneralInfo generalInfo; + private final DicDataFeignClient dicDataFeignClient; + + private final PqsTerminalLogsClient pqsTerminalLogsClient; + @Override public UserDTO getUserByName(String loginName) { User user = getUserByLoginName(loginName); @@ -162,6 +172,25 @@ public class UserServiceImpl extends ServiceImpl implements IU //sys_user_role表新增数据 boolean result = userRoleService.addUserRole(user.getId(), addUserParam.getRole()); if (result) { + //获取用户信息 + String userName = RequestUtil.getUsername(); + String loginName = RequestUtil.getLoginName(); + //String userName = "zbj"; + //String loginName = "njcnser"; + StringBuilder sb = new StringBuilder(); + sb.append(userName).append("新增了").append("用户名为: ").append(user.getName()).append(",") + .append("登录名为: ").append(user.getLoginName()).append(" - 的用户;"); + HttpResult dicDataByCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.WEB_ADD.getCode()); + DictData data = dicDataByCode.getData(); + //创建对象 + PqsTerminalLogs terminalLogsNew = new PqsTerminalLogs(); + terminalLogsNew.setObjIndex(user.getId()); + terminalLogsNew.setTerminalDescribe(sb.toString()); + terminalLogsNew.setCreateBy(loginName); + terminalLogsNew.setCreateTime(LocalDateTime.now()); + terminalLogsNew.setTerminalType(data.getId()); + terminalLogsNew.setState(1); + pqsTerminalLogsClient.saveLogs(terminalLogsNew); return true; } else { return false;