Эх сурвалжийг харах

用户同步基本流程(除了禁用bug需要轨迹表)

caozixuan 3 жил өмнө
parent
commit
1576693d5f

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncUserPushService.java

@@ -51,7 +51,8 @@ public class AsyncUserPushService extends AsyncPushTaskTemplate {
 
             // 执行需要重新同步的用户同步数据
             Map<String, Object> result = pushLogicService.executeUserPushLogic(map);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), FINISH_TITLE, Long.valueOf(String.valueOf(result.get("count"))),SUCCESS_TITLE,Long.valueOf(String.valueOf(result.get("correct"))), FINISH_SIZE));
+            System.out.println(Integer.parseInt(String.valueOf(result.get("correct"))));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}{4}{5}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), FINISH_TITLE, Integer.parseInt(String.valueOf(result.get("count"))),SUCCESS_TITLE,Integer.parseInt(String.valueOf(result.get("correct"))), FINISH_SIZE));
             tbSyncTask.setResult(TaskResultEnum.SUCCESS);
         }catch (Exception e){
             log.error("请求出错", e);

+ 2 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/push/AsyncPushTaskTemplate.java

@@ -94,10 +94,8 @@ public abstract class AsyncPushTaskTemplate {
 
             JSONObject json = new JSONObject();
             if (oss) {//上传至oss
-                path = path.substring(0, path.lastIndexOf("/") + 1);
-                stringJoiner.add(path).add(SystemConstant.getUuid()).add(TXT_PREFIX);
                 FileStoreUtil fileStoreUtil = SpringContextHolder.getBean(FileStoreUtil.class);
-                fileStoreUtil.ossUpload(stringJoiner.toString(), inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
+                fileStoreUtil.ossUpload(path, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
                 json.put(SystemConstant.TYPE, SystemConstant.OSS);
             } else {//上传至服务器
                 File finalFile = new File(stringJoiner.toString());
@@ -108,7 +106,7 @@ public abstract class AsyncPushTaskTemplate {
                 FileUtils.copyInputStreamToFile(inputStream, finalFile);
                 json.put(SystemConstant.TYPE, SystemConstant.LOCAL);
             }
-            json.put(SystemConstant.PATH, stringJoiner.toString());
+            json.put(SystemConstant.PATH, path);
             json.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);
 
             tbSyncTask.setReportFilePath(json.toJSONString());

+ 4 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/PushLogicServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print.business.templete.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.qmth.distributed.print.business.templete.service.PushLogicService;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.bean.params.PushBeforeRoleParam;
@@ -50,6 +51,9 @@ public class PushLogicServiceImpl implements PushLogicService {
             if (syncResult){
                 correct ++;
             }
+            UpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<>();
+            updateWrapper.lambda().set(SysUser::getSyncStatus,null).eq(SysUser::getId,user.getId());
+            sysUserService.update(updateWrapper);
         }
         map.put("correct",correct);
         map.put("count",count);

+ 0 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java

@@ -203,7 +203,6 @@ public class SysUserController {
     @ApiOperation(value = "用户管理-用户推送(异步)")
     @RequestMapping(value = "/push", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
-    @Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
     public Result sysUserPush() throws Exception {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Map<String, Object> map = printCommonService.savePush(PushTypeEnum.USER_PUSH);

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysUser.java

@@ -110,6 +110,7 @@ public class SysUser extends BaseEntity implements Serializable {
     private Long[] courseIds;
 
     @ApiModelProperty(value = "同步状态")
+    @TableField("sync_status")
     private SyncStatusEnum syncStatus;
 
     @Override

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java

@@ -160,7 +160,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                 commonCacheService.updateRoleCache(role.getId());
                 if (count != sysRolePrivilegeList.size() || count != finalRelatedSet.size()) {
                     // 删除权限前先更新涉及特殊权限用户 -> 需要重新同步
-                    this.updateUserPushStats(sysPrivilegeList.stream().map(SysPrivilege::getId).distinct().collect(Collectors.toList()),
+                    List<SysRolePrivilege> dbRolePriList = sysRolePrivilegeService.listByRoleId(role.getId());
+                    this.updateUserPushStats(dbRolePriList.stream().map(SysRolePrivilege::getPrivilegeId).distinct().collect(Collectors.toList()),
                             Arrays.asList(role.getPrivilegeIds()),
                             role.getId(),
                             schoolId);