Forráskód Böngészése

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

liujunchi 3 éve
szülő
commit
9d5ab103a7

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/DealStatusEnum.java

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
- * 认证审核状态
+ * 处理状态
  *
  * @Author: liweifan
  * @Data: 2022/3/16 10:19
@@ -18,7 +18,7 @@ public enum DealStatusEnum implements BaseEnum<String, DealStatusEnum> {
     private String name;
 
     DealStatusEnum(String name) {
-        this.code = name;
+        this.code = this.name();
         this.name = name;
     }
 

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherStyleVideoMapper.xml

@@ -98,7 +98,7 @@
 	<select id="stylePage" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo">
 		SELECT
 			<include refid="baseColumns"/>,
-			ta.live_flag_ as liveing,
+			ifnull(ta.live_flag_,0) as liveing,
 			u.avatar_ as avatar,
 			u.username_ as username
 		FROM teacher_style_video t

+ 1 - 1
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/config/ResourceServerConfig.java

@@ -33,7 +33,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 				.authorizeRequests()
 				.antMatchers("/task/**").hasIpAddress("0.0.0.0/0")
 				.antMatchers("/v2/api-docs", "/code/*","/payment/callback",
-                        "/liveRoom/test","/liveRoom/syncUserStatus","/courseGroup/getLockCache","/withdraw/callback","/withdraw/contractCallback")
+                        "/liveRoom/test","/liveRoom/syncUserStatus","/courseGroup/getLockCache","/userWithdrawal/callback","/userWithdrawal/contractCallback")
                 .permitAll().anyRequest().authenticated().and().httpBasic();
 	}
 

+ 32 - 18
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/SysUserContractRecordController.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.teacher.controller;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.enums.SysUserType;
@@ -54,11 +55,16 @@ public class SysUserContractRecordController extends BaseController {
         return sysUserContractRecordService.checkContractSign(user.getId(), contractType);
     }
 
+    @ApiOperation("查询最新启用的协议模板")
+    @GetMapping(value = "/queryLatestContractTemplate")
+    public HttpResponseResult<ContractTemplate> queryLatestContractTemplate(@ApiParam(value = "业务类型 REGISTER 注册 COURSES 课程购买 PRODUCT 产品 WITHDRAW 提现", required = true) @RequestParam("contractType") ContractTypeEnum contractType) {
+        return succeed(contractTemplateService.queryLatestContractTemplate(contractType));
+    }
+
     @ApiOperation("签署协议")
     @GetMapping(value = "/sign", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public HttpResponseResult<Boolean> sign(
             @ApiParam(value = "模板id", required = true) @RequestParam("templateId") Integer templateId) {
-
         SysUser user = sysUserFeignService.queryUserInfo();
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
@@ -66,29 +72,37 @@ public class SysUserContractRecordController extends BaseController {
         //是否签署标识,签署了才入库
         boolean flag = false;
 
-        SysUserContractRecord contractRecord = new SysUserContractRecord();
-
-        Long contractNo = idGeneratorService.generatorId("contractNo");
-        contractRecord.setContractNo(contractNo.toString());
+        //查询库中正在签署的协议
+        SysUserContractRecord contractRecord = sysUserContractRecordService.getOne(Wrappers.<SysUserContractRecord>lambdaQuery()
+                .eq(SysUserContractRecord::getUserId, user.getId())
+                .eq(SysUserContractRecord::getContractId, templateId)
+                .in(SysUserContractRecord::getStatus, DealStatusEnum.SCCESS.getCode(), DealStatusEnum.DOING.getCode()));
 
-        contractRecord.setUserId(user.getId());
+        //未签署协议
+        if (null == contractRecord) {
+            contractRecord = new SysUserContractRecord();
+            Long contractNo = idGeneratorService.generatorId("contractNo");
+            contractRecord.setContractNo(contractNo.toString());
+            contractRecord.setUserId(user.getId());
 
-        ContractTemplate contractTemplate = contractTemplateService.get(templateId);
-        contractRecord.setContractId(contractTemplate.getId());
+            ContractTemplate contractTemplate = contractTemplateService.get(templateId);
+            if(null == contractTemplate){
+                return failed(HttpStatus.FORBIDDEN, "未找到协议");
+            }
+            contractRecord.setContractId(templateId);
 
-        if (ContractTypeEnum.WITHDRAW.getCode().equals(contractTemplate.getType())) {
-            //签署提现协议
-            contractRecord.setUserType(SysUserType.TEACHER.getCode());
-            contractRecord.setStatus(DealStatusEnum.DOING.getCode());
-            flag = withdrawSdk.signContract(user.getRealName(), user.getIdCardNo(), user.getPhone(), contractNo.toString());
-        }
-
-        if (flag) {
-            sysUserContractRecordService.save(contractRecord);
+            if (ContractTypeEnum.WITHDRAW.getCode().equals(contractTemplate.getType())) {
+                //签署提现协议
+                contractRecord.setUserType(SysUserType.TEACHER.getCode());
+                contractRecord.setStatus(DealStatusEnum.DOING.getCode());
+                flag = withdrawSdk.signContract(user.getRealName(), user.getIdCardNo(), user.getPhone(), contractNo.toString());
+            }
+            if (flag) {
+                sysUserContractRecordService.save(contractRecord);
+            }
         }
         return HttpResponseResult.succeed(true);
     }
 
-
 }
 

+ 15 - 16
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/UserWithdrawalController.java

@@ -134,8 +134,8 @@ public class UserWithdrawalController extends BaseController {
             if (StringUtils.isBlank(content)) {
                 throw new Exception();
             }
-            Map<String, Object> map = JSONObject.parseObject(content);
-            String jsonStr = RSA.decryptPri((String) map.get("sign"), privateKey);
+            JSONObject jsonObject = JSONObject.parseObject(content);
+            String jsonStr = RSA.decryptPri(jsonObject.getString("sign"), privateKey);
             log.info("jsonStr:{}", jsonStr);
 
             Map<String, Object> withdrawRecord = JSONObject.parseObject(jsonStr);
@@ -155,37 +155,36 @@ public class UserWithdrawalController extends BaseController {
     /**
      * 异步回调接收-签署协议
      *
-     * @param content
+     * @param dataStr
      * @param request
      * @return
      */
     @PostMapping("/contractCallback")
-    public String contractCallback(@RequestBody String content, HttpServletRequest request) {
-        log.info("回调请求地址:{} 请求参数:{}", request.getRemoteAddr(), content);
+    public String contractCallback(@RequestBody String dataStr, HttpServletRequest request) {
+        log.info("回调请求地址:{} 请求参数:{}", request.getRemoteAddr(), dataStr);
         try {
-            if (StringUtils.isBlank(content)) {
+            if (StringUtils.isBlank(dataStr)) {
                 throw new Exception();
             }
-            Map<String, Object> map = JSONObject.parseObject(content);
-            String jsonStr = (String) map.get("content");
+            JSONObject data = JSONObject.parseObject(dataStr);
+            JSONObject content = data.getJSONObject("content");
 
-            String return_code = (String) map.get("return_code");
+            String return_code = data.getString("return_code");
 
-            Map<String, Object> record = JSONObject.parseObject(jsonStr);
-            if (CollectionUtils.isEmpty(record) || null == record.get("serialNo")) {
-                log.error("签署失败,返回合同编号为空 {}", content);
+            if (CollectionUtils.isEmpty(content) || null == content.getString("serialNo")) {
+                log.error("签署失败,返回合同编号为空 {}", dataStr);
                 return "failed";
             }
 
             if ("T".equals(return_code)) {
                 userWithdrawalService.contractCallback(
-                        DealStatusEnum.SCCESS.getCode(), record.get("serialNo").toString(),
-                        record.get("contractUrl").toString(), null);
+                        DealStatusEnum.SCCESS.getCode(), content.getString("serialNo"),
+                        content.getString("contractUrl"), null);
                 return "success";
             } else {
-                String return_message = StringUtil.get(map.get("return_message"));
+                String return_message = data.getString("return_message");
                 userWithdrawalService.contractCallback(
-                        DealStatusEnum.FAILED.getCode(), record.get("serialNo").toString(), null, return_message);
+                        DealStatusEnum.FAILED.getCode(), content.getString("serialNo"), null, return_message);
                 return "failed";
             }
         } catch (Exception e) {