he2802 1 vuosi sitten
vanhempi
commit
d82ffa371f

+ 2 - 0
zhongzheng-admin-saas/src/main/resources/application-dev.yml

@@ -208,3 +208,5 @@ ZsBank:
     privatekey: NBtl7WnuUtA2v5FaebEkU0/Jj1IodLGT6lQqwkzmd2E=
     privatekey: NBtl7WnuUtA2v5FaebEkU0/Jj1IodLGT6lQqwkzmd2E=
     sm4key: VuAzSWQhsoNqzn0K
     sm4key: VuAzSWQhsoNqzn0K
 
 
+record:
+    downloadPath: http://39.108.7.155:9099/cd/exam/update

+ 33 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/DangAnController.java

@@ -2,8 +2,12 @@ package com.zhongzheng.controller.user;
 
 
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.model.LoginUser;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.common.utils.poi.EasyPoiUtil;
 import com.zhongzheng.common.utils.poi.EasyPoiUtil;
+import com.zhongzheng.framework.web.service.TokenService;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.service.IClassGradeUserService;
 import com.zhongzheng.modules.grade.service.IClassGradeUserService;
 import com.zhongzheng.modules.grade.vo.ClassPeriodStudentVo;
 import com.zhongzheng.modules.grade.vo.ClassPeriodStudentVo;
@@ -49,6 +53,8 @@ public class DangAnController extends BaseController {
 
 
     private final IUserService iUserService;
     private final IUserService iUserService;
 
 
+    private final TokenService tokenService;
+
     @ApiOperation("查询档案网课列表")
     @ApiOperation("查询档案网课列表")
     @PreAuthorize("@ss.hasPermi('grade:user:list')")
     @PreAuthorize("@ss.hasPermi('grade:user:list')")
     @GetMapping("/listVideoUserPeriod")
     @GetMapping("/listVideoUserPeriod")
@@ -177,4 +183,31 @@ public class DangAnController extends BaseController {
         iUserService.userDataImgImport(file);
         iUserService.userDataImgImport(file);
         return AjaxResult.success();
         return AjaxResult.success();
     }
     }
+
+    @ApiOperation("学员资料批量下载")
+    @PostMapping("/data/download")
+    public AjaxResult userDataDownload(@RequestBody UserDownloadBo bo) {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setCreateSysUserId(loginUser.getUser().getUserId());
+        iUserService.userDataDownload(bo);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("学员资料下载任务")
+    @GetMapping("/data/download/list")
+    public AjaxResult<List<UserDownloadVo>> userDataDownloadList() {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<UserDownloadVo> list = iUserService.userDataDownloadList(loginUser.getUser().getUserId());
+        return AjaxResult.success(list);
+    }
+
+    @ApiOperation("学员资料下载任务回调")
+    @PostMapping("/data/download/up")
+    public AjaxResult userDataDownloadUp(@RequestBody UserDataDownloadUpBo bo) {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setCreateSysUserId(loginUser.getUser().getUserId());
+        iUserService.userDataDownloadUp(bo);
+        return AjaxResult.success();
+    }
+
 }
 }

+ 3 - 0
zhongzheng-admin/src/main/resources/application-dev.yml

@@ -208,3 +208,6 @@ ZsBank:
     publickey: BNsIe9U0x8IeSe4h/dxUzVEz9pie0hDSfMRINRXc7s1UIXfkExnYECF4QqJ2SnHxLv3z/99gsfDQrQ6dzN5lZj0=
     publickey: BNsIe9U0x8IeSe4h/dxUzVEz9pie0hDSfMRINRXc7s1UIXfkExnYECF4QqJ2SnHxLv3z/99gsfDQrQ6dzN5lZj0=
     privatekey: NBtl7WnuUtA2v5FaebEkU0/Jj1IodLGT6lQqwkzmd2E=
     privatekey: NBtl7WnuUtA2v5FaebEkU0/Jj1IodLGT6lQqwkzmd2E=
     sm4key: VuAzSWQhsoNqzn0K
     sm4key: VuAzSWQhsoNqzn0K
+
+record:
+    downloadPath: http://39.108.7.155:9099/cd/exam/update

+ 3 - 0
zhongzheng-api/src/main/resources/application-dev.yml

@@ -210,3 +210,6 @@ ZsBank:
     publickey: BNsIe9U0x8IeSe4h/dxUzVEz9pie0hDSfMRINRXc7s1UIXfkExnYECF4QqJ2SnHxLv3z/99gsfDQrQ6dzN5lZj0=
     publickey: BNsIe9U0x8IeSe4h/dxUzVEz9pie0hDSfMRINRXc7s1UIXfkExnYECF4QqJ2SnHxLv3z/99gsfDQrQ6dzN5lZj0=
     privatekey: NBtl7WnuUtA2v5FaebEkU0/Jj1IodLGT6lQqwkzmd2E=
     privatekey: NBtl7WnuUtA2v5FaebEkU0/Jj1IodLGT6lQqwkzmd2E=
     sm4key: VuAzSWQhsoNqzn0K
     sm4key: VuAzSWQhsoNqzn0K
+
+record:
+    downloadPath: http://39.108.7.155:9099/cd/exam/update

+ 67 - 1
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java

@@ -55,8 +55,10 @@ import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.service.IClassGradeUserService;
 import com.zhongzheng.modules.grade.service.IClassGradeUserService;
 import com.zhongzheng.modules.grade.service.impl.ClassGradeServiceImpl;
 import com.zhongzheng.modules.grade.service.impl.ClassGradeServiceImpl;
 import com.zhongzheng.modules.grade.vo.ClassGradeUserGoodsVo;
 import com.zhongzheng.modules.grade.vo.ClassGradeUserGoodsVo;
+import com.zhongzheng.modules.system.domain.SysTask;
 import com.zhongzheng.modules.system.domain.SysTenant;
 import com.zhongzheng.modules.system.domain.SysTenant;
 import com.zhongzheng.modules.system.service.ISysConfigService;
 import com.zhongzheng.modules.system.service.ISysConfigService;
+import com.zhongzheng.modules.system.service.ISysTaskService;
 import com.zhongzheng.modules.system.service.ISysTenantService;
 import com.zhongzheng.modules.system.service.ISysTenantService;
 import com.zhongzheng.modules.user.bo.*;
 import com.zhongzheng.modules.user.bo.*;
 import com.zhongzheng.modules.user.domain.User;
 import com.zhongzheng.modules.user.domain.User;
@@ -133,7 +135,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
 
 
     @Autowired
     @Autowired
     private RedisCache redisCache;
     private RedisCache redisCache;
-
+    @Autowired
+    private ISysTaskService iSysTaskService;
     @Autowired
     @Autowired
     private ICourseSubjectService iCourseSubjectService;
     private ICourseSubjectService iCourseSubjectService;
     @Autowired
     @Autowired
@@ -168,6 +171,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
     private String liveGotoURL;
     private String liveGotoURL;
     @Value("${oldSys.goods}")
     @Value("${oldSys.goods}")
     private String OLD_GOODS;
     private String OLD_GOODS;
+    @Value("${record.downloadPath}")
+    private String RECORD_DOWNLOAD;
 
 
 
 
     @Override
     @Override
@@ -1883,6 +1888,67 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         }
         }
     }
     }
 
 
+    @Override
+    public void userDataDownload(UserDownloadBo bo) {
+        if (CollectionUtils.isEmpty(bo.getUserIds())){
+            return;
+        }
+        //创建学员资料下载
+        SysTask task = new SysTask();
+        task.setTaskName(String.format("学员资料下载:操作人ID(%s),时间:%s",bo.getCreateSysUserId(),DateUtils.getTime()));
+        String code = ServletUtils.getEncoded("DA");
+        bo.setTaskCode(code);
+        task.setTaskCode(code);
+        task.setTaskNum(1);
+        task.setFinishNum(0);
+        task.setTaskStatus(1);
+        task.setTaskType(2);
+        task.setTaskParam(JSONObject.toJSONString(bo));
+        task.setSysUserId(bo.getCreateSysUserId());
+        task.setStatus(1);
+        task.setCreateTime(DateUtils.getNowTime());
+        task.setUpdateTime(DateUtils.getNowTime());
+        iSysTaskService.save(task);
+        //发送下载请求
+        String tenantId = ServletUtils.getRequest().getHeader("TenantId");
+        HashMap<String, String> map = new HashMap<>();
+        map.put("TenantId", tenantId);
+        HttpUtils.sendPostJsonHeader(RECORD_DOWNLOAD, JSONObject.toJSONString(bo),map);
+    }
+
+    @Override
+    public List<UserDownloadVo> userDataDownloadList(Long userId) {
+        List<SysTask> list = iSysTaskService.list(new LambdaQueryWrapper<SysTask>()
+                .eq(SysTask::getSysUserId, userId)
+                .eq(SysTask::getStatus, 1)
+                .eq(SysTask::getTaskType, 2));
+        if (CollectionUtils.isEmpty(list)){
+            return new ArrayList<>();
+        }
+        List<UserDownloadVo> collect = list.stream().map(item -> {
+            UserDownloadVo vo = new UserDownloadVo();
+            vo.setId(item.getId());
+            vo.setTaskCode(item.getTaskCode());
+            vo.setTaskStatus(item.getTaskStatus());
+            vo.setCreateSysUserId(item.getSysUserId());
+            vo.setTaskPath(item.getTaskPath());
+            return vo;
+        }).collect(Collectors.toList());
+        return collect;
+    }
+
+    @Override
+    public void userDataDownloadUp(UserDataDownloadUpBo bo) {
+        SysTask task = iSysTaskService.getOne(new LambdaQueryWrapper<SysTask>()
+                .eq(SysTask::getTaskCode, bo.getTaskCode())
+                .eq(SysTask::getSysUserId, bo.getCreateSysUserId()));
+        if (ObjectUtils.isNull(task)){
+            return;
+        }
+        task.setTaskStatus(4);//已下载
+        iSysTaskService.updateById(task);
+    }
+
     @Override
     @Override
     public Map<String, Object> accountLogin(UserAppAccountLoginBo bo) {
     public Map<String, Object> accountLogin(UserAppAccountLoginBo bo) {
         if(Validator.isEmpty(bo.getAccount())){
         if(Validator.isEmpty(bo.getAccount())){

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/domain/SysTask.java

@@ -26,8 +26,14 @@ public class SysTask implements Serializable {
     private Long updateTime;
     private Long updateTime;
     /** 0 失效 1启用 */
     /** 0 失效 1启用 */
     private Integer status;
     private Integer status;
+    /** 任务类型:1七大员新考 2学员资料 */
+    private Integer taskType;
+    /** 关联账号ID */
+    private Long sysUserId;
     /** 任务名称 */
     /** 任务名称 */
     private String taskName;
     private String taskName;
+    /** 任务名称 */
+    private String taskCode;
     /** 任务数量 */
     /** 任务数量 */
     private Integer taskNum;
     private Integer taskNum;
     /** 完成数量 */
     /** 完成数量 */

+ 17 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserDataDownloadUpBo.java

@@ -0,0 +1,17 @@
+package com.zhongzheng.modules.user.bo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2024年01月02日 14:34
+ */
+@Data
+public class UserDataDownloadUpBo implements Serializable {
+
+    private Long createSysUserId;
+
+    private String taskCode;
+}

+ 28 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserDownloadBo.java

@@ -0,0 +1,28 @@
+package com.zhongzheng.modules.user.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author yangdamao
+ * @date 2023年12月26日 15:48
+ */
+@Data
+public class UserDownloadBo implements Serializable {
+
+    @ApiModelProperty("用户IDs")
+    private List<Long> userIds;
+
+    @ApiModelProperty("下载类型")
+    private List<Integer> types;
+
+    @ApiModelProperty("是否全部")
+    private Integer all;
+
+    private Long createSysUserId;
+
+    private String taskCode;
+}

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserService.java

@@ -152,4 +152,10 @@ public interface IUserService extends IService<User> {
     void userDataImportUp(List<UserDataImportBo> customerBos);
     void userDataImportUp(List<UserDataImportBo> customerBos);
 
 
     void userDataImgImport(MultipartFile file);
     void userDataImgImport(MultipartFile file);
+
+    void userDataDownload(UserDownloadBo bo);
+
+	List<UserDownloadVo> userDataDownloadList(Long userId);
+
+	void userDataDownloadUp(UserDataDownloadUpBo bo);
 }
 }

+ 3 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java

@@ -2948,7 +2948,9 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
 
 
     @Override
     @Override
     public List<SysTaskVo> subUserExportList() {
     public List<SysTaskVo> subUserExportList() {
-        List<SysTask> list = iSysTaskService.list(new LambdaQueryWrapper<SysTask>().eq(SysTask::getStatus, 1));
+        List<SysTask> list = iSysTaskService.list(new LambdaQueryWrapper<SysTask>()
+                .eq(SysTask::getStatus, 1)
+                .eq(SysTask::getTaskType,1));
         if (CollectionUtils.isEmpty(list)){
         if (CollectionUtils.isEmpty(list)){
             return new ArrayList<>();
             return new ArrayList<>();
         }
         }

+ 29 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserDownloadVo.java

@@ -0,0 +1,29 @@
+package com.zhongzheng.modules.user.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author yangdamao
+ * @date 2023年12月26日 15:48
+ */
+@Data
+public class UserDownloadVo implements Serializable {
+
+    private Long id;
+
+    @ApiModelProperty("1未开始 2执行中 3已完成 4已下载")
+    private Integer taskStatus;
+
+    @ApiModelProperty("任务编码")
+    private String taskCode;
+
+    @ApiModelProperty("下载路径")
+    private String taskPath;
+
+    private Long createSysUserId;
+
+}