Pārlūkot izejas kodu

修改内容:角色操作

shishaosong 1 gadu atpakaļ
vecāks
revīzija
fe3081beca

+ 3 - 3
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/RoleAssignController.java

@@ -46,9 +46,9 @@ public class RoleAssignController {
     }
 
     @ApiOperation(value = "指派记录删除")
-    @DeleteMapping(value = "/delete/{ids}")
+    @DeleteMapping(value = "/delete/id")
     @PreAuthorize(permissionKey = "manage:roleAssign:delete")
-    public ResultVO<Boolean> deleteById(@PathVariable List<Long> ids) {
-        return ResultVO.ok(roleAssignRecordService.deleteByIds(ids));
+    public ResultVO<Boolean> deleteById(@PathVariable Long id) {
+        return ResultVO.ok(roleAssignRecordService.deleteById(id));
     }
 }

+ 1 - 1
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IRoleAssignRecordService.java

@@ -21,7 +21,7 @@ import java.util.List;
 public interface IRoleAssignRecordService extends IService<RoleAssignRecord> {
     IPage<RoleAssignRecordListVO> listOfPage(RoleAssignRecordListParam param);
 
-    boolean deleteByIds(List<Long> ids);
+    boolean deleteById(Long id);
 
     boolean configSysUser(RoleSysUserAssignParam param);
 

+ 27 - 12
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/RoleAssignRecordServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.zanxiang.corp.base.pojo.entity.CorpUserChangeRecord;
 import com.zanxiang.erp.base.ErpServer;
 import com.zanxiang.erp.base.rpc.ISysUserRpc;
 import com.zanxiang.erp.security.util.SecurityUtil;
@@ -207,24 +208,38 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean deleteByIds(List<Long> ids) {
+    public boolean deleteById(Long id) {
         Long sysUserId = SecurityUtil.getUserId();
         LocalDateTime now = LocalDateTime.now();
+        RoleAssignRecord changeRecord = getById(id);
+        RoleAssignRecord nextRecord = getNextRecord(changeRecord, changeRecord.getStartTime());
+        RoleInfoAndAgentParam roleInfoAndAgentParam = RoleInfoAndAgentParam.builder()
+                .regAgentId(changeRecord.getRegAgentId())
+                .gameId(changeRecord.getGameId())
+                .serverId(changeRecord.getServerId())
+                .userId(changeRecord.getUserId())
+                .roleId(changeRecord.getRoleId())
+                .build();
+        RoleAssignRecord lastRecord = lastAssignRecord(roleInfoAndAgentParam);
+        if (lastRecord != null) {
+            if (nextRecord != null) {
+                update(new LambdaUpdateWrapper<RoleAssignRecord>()
+                        .set(RoleAssignRecord::getEndTime, nextRecord.getStartTime())
+                        .eq(RoleAssignRecord::getId, lastRecord.getId()));
+            } else {
+                update(new LambdaUpdateWrapper<RoleAssignRecord>()
+                        .set(RoleAssignRecord::getEndTime, null)
+                        .eq(RoleAssignRecord::getId, lastRecord.getId()));
+            }
+        }
+
         update(new LambdaUpdateWrapper<RoleAssignRecord>()
                 .set(RoleAssignRecord::getIsDelete, 1)
                 .set(RoleAssignRecord::getUpdateBy, sysUserId)
                 .set(RoleAssignRecord::getUpdateTime, now)
-                .in(RoleAssignRecord::getId, ids));
-        List<RoleAssignRecord> roleAssignRecordList = listByIds(ids);
-        if (CollectionUtils.isNotEmpty(roleAssignRecordList)) {
-            RoleAssignRecord roleAssignRecord = roleAssignRecordList.get(0);
-            RoleInfoAndAgentParam roleInfoAndAgentParam = RoleInfoAndAgentParam.builder()
-                    .regAgentId(roleAssignRecord.getRegAgentId())
-                    .gameId(roleAssignRecord.getGameId())
-                    .serverId(roleAssignRecord.getServerId())
-                    .userId(roleAssignRecord.getUserId())
-                    .roleId(roleAssignRecord.getRoleId())
-                    .build();
+                .eq(RoleAssignRecord::getId, id));
+        RoleAssignRecord roleAssignRecord = getById(id);
+        if (null == roleAssignRecord) {
             RoleOperate modifyRoleOperate = getModifyRoleOperate(roleInfoAndAgentParam);
             return roleOperateService.saveOrUpdate(modifyRoleOperate);
         }