he2802 1 anno fa
parent
commit
fe0bde8b9d

+ 9 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -841,5 +841,13 @@ public class CommonController extends BaseController {
         return AjaxResult.success();
     }
 
-
+    @ApiOperation("七大员推送权限结果回调")
+    @PreAuthorize("@ss.hasPermi('system:withdrawal:add')")
+    @PostMapping("/common/free/sevenPushAuthCallBack")
+    public AjaxResult sevenPushAuthCallBack(@RequestBody SevenPushAuthAddBo bo) {
+        if (!ToolsUtils.checkSignCwSnFromOldSys(bo.getGradeUserId().toString(), bo.getStamp().toString(), bo.getSign())) {
+            return AjaxResult.error("签名错误");
+        }
+        return AjaxResult.success("成功", iClassGradeUserService.sevenPushAuthCallBack(bo) ? 1 : 0);
+    }
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserAddBo.java

@@ -76,4 +76,7 @@ public class ClassGradeUserAddBo {
     /** 学习记录同步到老系统时间 */
     @ApiModelProperty("学习记录同步到老系统时间")
     private Long toOldTime;
+    /** 七大员信息推送权限状态 0未推送 1已推送旧系统 2允许推送 3不允许推送 */
+    @ApiModelProperty("七大员信息推送权限状态 0未推送 1已推送旧系统 2允许推送 3不允许推送")
+    private Integer sevenPushCheck;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserEditBo.java

@@ -86,4 +86,7 @@ public class ClassGradeUserEditBo {
     /** 学习记录同步到老系统时间 */
     @ApiModelProperty("学习记录同步到老系统时间")
     private Long toOldTime;
+    /** 七大员信息推送权限状态 0未推送 1已推送旧系统 2允许推送 3不允许推送 */
+    @ApiModelProperty("七大员信息推送权限状态 0未推送 1已推送旧系统 2允许推送 3不允许推送")
+    private Integer sevenPushCheck;
 }

+ 34 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/SevenPushAuthAddBo.java

@@ -0,0 +1,34 @@
+package com.zhongzheng.modules.grade.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+
+/**
+ * 学员记录添加对象 class_grade_user
+ *
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+@Data
+@ApiModel("学员记录添加对象")
+public class SevenPushAuthAddBo {
+
+    @ApiModelProperty("当前时间戳")
+    @NotBlank(message = "当前时间戳不能为空")
+    private Long stamp;
+
+    @ApiModelProperty("签名")
+    @NotBlank(message = "签名不能为空")
+    private String sign;
+
+    /** 班级用户ID */
+    @ApiModelProperty("班级用户ID")
+    private Long gradeUserId;
+
+    @ApiModelProperty("推送权限状态 1允许推送 2不允许推送")
+    private Integer pushStatus;
+}

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/domain/ClassGradeUser.java

@@ -84,6 +84,7 @@ private static final long serialVersionUID=1L;
     private String toOldResult;
     /** 学习记录同步到老系统时间 */
     private Long toOldTime;
-
+    /** 七大员信息推送权限状态 0未推送 1已推送旧系统 2允许推送 3不允许推送 */
+    private Integer sevenPushCheck;
 }
 

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeUserService.java

@@ -142,4 +142,6 @@ public interface IClassGradeUserService extends IService<ClassGradeUser> {
 
     List<ClassGradeUser> getClassInfoByUser(Long userId);
 
+	Boolean sevenPushAuthCallBack(SevenPushAuthAddBo bo);
+
 }

+ 81 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -47,8 +47,11 @@ import com.zhongzheng.modules.grade.mapper.ClassGradeUserMapper;
 import com.zhongzheng.modules.grade.service.*;
 import com.zhongzheng.modules.grade.vo.*;
 import com.zhongzheng.modules.order.bo.OrderGoodsQueryBo;
+import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.domain.OrderGoods;
+import com.zhongzheng.modules.order.domain.OrderInput;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
+import com.zhongzheng.modules.order.service.IOrderInputService;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.system.domain.SysOldOrg;
@@ -67,6 +70,7 @@ import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.service.IUserStudyRecordPhotoService;
 import com.zhongzheng.modules.user.service.IUserStudyRecordService;
 import com.zhongzheng.modules.user.vo.*;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -115,6 +119,9 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
     @Autowired
     private IOrderService iOrderService;
 
+    @Autowired
+    private IOrderInputService iOrderInputService;
+
     @Autowired
     private IOrderGoodsService iOrderGoodsService;
 
@@ -179,6 +186,8 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
     @Value("${officialPush.sevenPeriodPath}")
     private String OFFICIALPUSH_SEVEN_PERIODPATH;
 
+    @Value("${oldSys.host}")
+    private String OLD_SYS_HOST;
 
     @Autowired
     private IUserPeriodService iUserPeriodService;
@@ -773,6 +782,66 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             SEVEN_OFFICIALPUSH_INFOACCOUNT = configService.selectConfigByKeyNoCache("seven.office.account");
             SEVEN_OFFICIALPUSH_TOKEN = configService.selectConfigByKeyNoCache("seven.office.token");
         }
+        String jsonStr = configService.selectConfigByKeyNoCache("home.header");
+        boolean sevenPushAuth = false; //无需校验
+        if(Validator.isNotEmpty(jsonStr)){
+            JSONObject objectJson = JSON.parseObject(jsonStr);
+            if(Validator.isNotEmpty(objectJson)&&objectJson.containsKey("sevenPushAuth")){
+                Integer authRs = objectJson.getInteger("sevenPushAuth");
+                if(authRs==1){
+                    sevenPushAuth = true;
+                }
+            }
+        }
+        if(sevenPushAuth){
+            if(userVo.getSevenPushCheck()==0){
+                Map<String, String> params = new HashMap<>();
+                Long nowTime = DateUtils.getNowTime();
+                String sign = ToolsUtils.EncoderByMd5(userVo.getIdCard()+nowTime.toString());
+                params.put("stamp", nowTime.toString());
+                params.put("sign", sign);
+                params.put("idnum", userVo.getIdCard());
+                params.put("name", userVo.getRealName());
+                params.put("mobile", userVo.getTelPhone());
+                params.put("majorname", major.getCategoryName());
+                params.put("orderno", "");
+                params.put("gradeUserId", userVo.getId().toString());
+                Order order = iOrderService.getOne(new LambdaQueryWrapper<Order>()
+                        .eq(Order::getOrderSn, orderGoods.getOrderSn()));
+                if(Validator.isNotEmpty(order.getInputOrderSn())){
+                    OrderInput orderInput = iOrderInputService.getOne(new LambdaQueryWrapper<OrderInput>()
+                            .eq(OrderInput::getInputOrderSn, order.getInputOrderSn()));
+                    if(Validator.isNotEmpty(orderInput.getOldOrderSn())){
+                        params.put("orderno", orderInput.getOldOrderSn());
+                    }
+                }
+                log.info("七大员权限推送参数"+ JSON.toJSONString(params));
+                String respone = "";
+                LambdaUpdateWrapper<ClassGradeUser> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+                objectLambdaUpdateWrapper.eq(ClassGradeUser::getId, userVo.getId());
+                try {
+                    respone = HttpUtils.postFormBody(OLD_SYS_HOST+"/system/BussinessApi/QdyCheckInfo", params);
+                    log.info("七大员权限推送结果"+ JSON.toJSONString(respone));
+                    if (respone.contains("\"Status\":true")) {
+                        objectLambdaUpdateWrapper.set(ClassGradeUser::getSevenPushCheck, 1);
+                        objectLambdaUpdateWrapper.set(ClassGradeUser::getUpdateTime, DateUtils.getNowTime());
+                        iClassGradeUserService.update(null, objectLambdaUpdateWrapper);
+                        return "等待权限推送";
+                    }else{
+                        throw new CustomException("七大员权限请求错误"+JSON.toJSONString(respone));
+                    }
+                } catch (IOException e) {
+                    throw new CustomException("七大员权限请求错误"+e.getMessage());
+                }
+
+            }
+            else if(userVo.getSevenPushCheck()==1){
+                return "等待权限推送";
+            }
+            else if(userVo.getSevenPushCheck()==3){
+                return "无权限推送";
+            }
+        }
         Map<String, String> params = new HashMap<>();
         params.put("zh", SEVEN_OFFICIALPUSH_INFOACCOUNT);
         params.put("bh", userVo.getOfficialName());
@@ -3408,6 +3477,18 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         return baseMapper.getClassInfoByUser(userId);
     }
 
+    @Override
+    public Boolean sevenPushAuthCallBack(SevenPushAuthAddBo bo) {
+        if(Validator.isEmpty(bo.getGradeUserId())||Validator.isEmpty(bo.getPushStatus())){
+            throw new CustomException("参数缺失");
+        }
+        LambdaUpdateWrapper<ClassGradeUser> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+        objectLambdaUpdateWrapper.eq(ClassGradeUser::getId, bo.getGradeUserId());
+        objectLambdaUpdateWrapper.set(ClassGradeUser::getSevenPushCheck, bo.getPushStatus()+1);
+        objectLambdaUpdateWrapper.set(ClassGradeUser::getUpdateTime, DateUtils.getNowTime());
+        return this.update(null, objectLambdaUpdateWrapper);
+    }
+
 
     /**
      * 实体类转化成视图对象

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassGradeUserVo.java

@@ -172,4 +172,8 @@ public class ClassGradeUserVo {
 	@cn.afterturn.easypoi.excel.annotation.Excel(name = "性别1男2女")
 	@ApiModelProperty("性别1男2女")
 	private Integer sex;
+	/** 七大员信息推送权限状态 0未推送 1已推送旧系统 2允许推送 3不允许推送 */
+	@Excel(name = "七大员信息推送权限状态 0未推送 1已推送旧系统 2允许推送 3不允许推送")
+	@ApiModelProperty("七大员信息推送权限状态 0未推送 1已推送旧系统 2允许推送 3不允许推送")
+	private Integer sevenPushCheck;
 }

+ 2 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

@@ -33,6 +33,7 @@
         <result property="toOldStatus" column="to_old_status"/>
         <result property="toOldResult" column="to_old_result"/>
         <result property="toOldTime" column="to_old_time"/>
+        <result property="sevenPushCheck" column="seven_push_check"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.grade.vo.ClassGradeUserVo" id="ClassGradeUserVoResult">
@@ -70,6 +71,7 @@
         <result property="sex" column="sex"/>
         <result property="eduLevel" column="edu_level"/>
         <result property="companyName" column="company_name"/>
+        <result property="sevenPushCheck" column="seven_push_check"/>
     </resultMap>