浏览代码

1.增添 解绑设备 操作记录数据库日志
2.增添 用户注销 操作记录数据库日志

hxd 1 月之前
父节点
当前提交
162a7b6d17

+ 2 - 2
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/DeviceController.java

@@ -36,7 +36,7 @@ public class DeviceController {
 
     @GetMapping("/deviceUnBind")
     @Operation(summary = "解绑设备")
-    public ApiResult<Boolean> deviceUnBind(@RequestParam("userId") Long userId, @RequestParam("devId") String devId) {
+    public ApiResult<Boolean> deviceUnBind(@RequestParam Long userId, @RequestParam String devId) {
         return ApiResult.success(deviceGateway.deviceUnBind(userId, devId));
     }
 
@@ -77,7 +77,7 @@ public class DeviceController {
 
     @GetMapping("/checkDevByUserId")
     @Operation(summary = "检测用户是否拥有设备")
-    public ApiResult<Boolean> checkDevByUserId(@RequestParam("user_id") Long userId, @RequestParam("dev_id") Long devId) {
+    public ApiResult<Boolean> checkDevByUserId(@RequestParam Long userId, @RequestParam Long devId) {
         return ApiResult.success(deviceGateway.checkDevByUserId(userId, devId));
     }
 

+ 1 - 1
portal-service-common/src/main/java/com/hfln/portal/common/request/user/UserDailyActiveParams.java

@@ -17,6 +17,6 @@ public class UserDailyActiveParams extends BaseVO {
     @NotNull
     private Long userId;
 
-    @Schema(description = "查询日期 ,如果为空则默认当天")
+    @Schema(description = "查询日期 ,如果为空则默认当天  入参示例: 2025-08-25")
     private LocalDate queryDate;
 }

+ 1 - 2
portal-service-common/src/main/java/com/hfln/portal/common/request/user/UserLogoffParams.java

@@ -5,7 +5,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-
 import javax.validation.constraints.NotNull;
 
 
@@ -14,8 +13,8 @@ import javax.validation.constraints.NotNull;
 @Schema(description = "用户注销参数")
 public class UserLogoffParams extends BaseVO {
 
+    @Schema(description = "用户ID")
     @NotNull(message = "用户ID不能为空!")
-    @Schema(description = "用户ID", required = true)
     private Long userId;
 
 }

+ 3 - 0
portal-service-domain/src/main/java/com/hfln/portal/domain/customer/OprLogType.java

@@ -24,6 +24,9 @@ public enum OprLogType {
     ADD_CLIENT("add_client", "添加客户"),
 
     UPDATE_DEVICE("update_device","编辑设备"),
+    UNBLIND_DEVICE("unbind_device", "解绑设备"),
+
+    USER_LOGOFF("logoff_user", "用户注销"),
     ;
 
     String code;

+ 19 - 10
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/DeviceGatewayImpl.java

@@ -251,12 +251,14 @@ public class DeviceGatewayImpl implements DeviceGateway {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Boolean deviceUnBind(Long userId, String devId) {
-        List<DevInfo> devInfos = devInfoService.queryDevices(userId, devId);
+        DevInfo devInfo = devInfoService.queryDevices(userId, devId);
         boolean updateFlag;
-        // 绑定人解绑
-        if (CollectionUtils.isNotEmpty(devInfos) && !devInfos.isEmpty()) {
+        String logContent;
+
+        //不为空则为主绑定人解绑  为空则是被分享者解绑
+        if (devInfo != null) {
             //更新设备表
             boolean flag = devInfoService.update(null,
                     Wrappers.<DevInfo>lambdaUpdate()
@@ -265,20 +267,27 @@ public class DeviceGatewayImpl implements DeviceGateway {
             //更新设备分享表
             boolean flagV2 = devShareService.update(null,
                     Wrappers.<DevShare>lambdaUpdate()
-                            .set(DevShare::getState, 0)
-                            .set(DevShare::getIsDeleted, 1)
-                            .eq(DevShare::getDevId,devId));
+                            .eq(DevShare::getDevId,devId)
+                            .set(DevShare::getIsDeleted, BasePO.DeleteFlag.DELETED));
             updateFlag = flag && flagV2;
+
+            //记录主绑人解绑设备
+            logContent = String.format("用户 %d 主绑定解绑设备 %s", userId, devId);
+
         } else {
             // 被分享者解绑
             updateFlag = devShareService.update(null,
                     Wrappers.<DevShare>lambdaUpdate()
-                            .set(DevShare::getState, 0)
-                            .set(DevShare::getIsDeleted, 1)
                             .eq(DevShare::getDevId, devId)
-                            .eq(DevShare::getSharedUserId, userId));
+                            .eq(DevShare::getSharedUserId, userId)
+                            .set(DevShare::getIsDeleted, BasePO.DeleteFlag.DELETED));
+
+            //记录被分享者解绑设备
+            logContent = String.format("用户 %d 被分享解绑设备 %s", userId, devId);
         }
 
+        // 记录操作日志
+        logService.saveLog(OprLogType.UNBLIND_DEVICE.getCode(), logContent);
         return updateFlag;
     }
 

+ 7 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/UserGatewayImpl.java

@@ -21,6 +21,7 @@ import com.hfln.portal.common.request.user.WxFreshTokenParams;
 import com.hfln.portal.common.response.user.UserInfoWxRes;
 import com.hfln.portal.common.response.user.UserTokenInfo;
 import com.hfln.portal.domain.customer.DeviceType;
+import com.hfln.portal.domain.customer.OprLogType;
 import com.hfln.portal.domain.customer.util.CopyUtils;
 import com.hfln.portal.domain.customer.util.WxOfficeAccountClient;
 import com.hfln.portal.domain.exception.ErrorEnum;
@@ -114,6 +115,9 @@ public class UserGatewayImpl implements UserGateway {
     @Autowired
     private WxOfficeAccountClient wxOfficeAccountClient;
 
+    @Autowired
+    private TblOprLogService logService;
+
 //    @Override
 //    public String getOpenId(String code) {
 //        //首先检查传入的code是否为空,如果为空则抛出业务异常
@@ -489,6 +493,9 @@ public class UserGatewayImpl implements UserGateway {
                         .eq(GroupShare::getSharerUserId, request.getUserId())
                         .set(GroupShare::getIsDeleted, 1)
         );
+
+        // 记录操作日志
+        logService.saveLog(OprLogType.USER_LOGOFF.getCode(), userInfo);
     }
 
     @Override

+ 1 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/DevInfoService.java

@@ -15,7 +15,7 @@ public interface DevInfoService extends IService<DevInfo> {
 
 
 
-    List<DevInfo> queryDevices(Long userId,String deviceId);
+    DevInfo queryDevices(Long userId,String deviceId);
 
     List<DevInfo> queryByIds (Collection<Long> devIds);
 

+ 4 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DevInfoServiceImpl.java

@@ -10,6 +10,7 @@ import com.hfln.portal.common.request.device.DeviceListQueryReq;
 import com.hfln.portal.domain.customer.util.UpdateWrapperBuilder;
 import com.hfln.portal.infrastructure.mapper.DevInfoMapper;
 import com.hfln.portal.infrastructure.mapper.GroupDevMapMapper;
+import com.hfln.portal.infrastructure.po.BasePO;
 import com.hfln.portal.infrastructure.po.DevInfo;
 import com.hfln.portal.infrastructure.service.DevInfoService;
 import lombok.extern.slf4j.Slf4j;
@@ -77,11 +78,12 @@ public class DevInfoServiceImpl extends ServiceImpl<DevInfoMapper, DevInfo> impl
 
 
     @Override
-    public List<DevInfo> queryDevices(Long userId, String deviceId) {
+    public DevInfo queryDevices(Long userId, String deviceId) {
         LambdaQueryWrapper<DevInfo> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(DevInfo::getUserId, userId);
         wrapper.eq(DevInfo::getDevId, deviceId);
-        return this.baseMapper.selectList(wrapper);
+        wrapper.eq(DevInfo::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
+        return this.baseMapper.selectOne(wrapper);
     }