浏览代码

Merge branch 'feature/1120_contract' into online

liujc 1 年之前
父节点
当前提交
eba03f2a97

+ 33 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/SysUserContractRecordController.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.teacher.controller;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.ContractTemplate;
+import com.yonge.cooleshow.biz.dal.entity.SysUserContractRecord;
 import com.yonge.cooleshow.biz.dal.service.ContractService;
 import com.yonge.cooleshow.biz.dal.service.ContractTemplateService;
 import com.yonge.cooleshow.biz.dal.service.SysUserContractRecordService;
@@ -51,6 +52,18 @@ public class SysUserContractRecordController extends BaseController {
         return HttpResponseResult.succeed(sysUserContractRecordService.checkContractSign(user.getId(), SysUserType.TEACHER, contractType));
     }
 
+
+    @ApiOperation("判断用户是否签署协议")
+    @GetMapping(value = "/checkContractSignV2", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public HttpResponseResult<String> checkContractSignV2(@ApiParam(value = "业务类型 REGISTER 注册 COURSES 课程购买 PRODUCT 产品 WITHDRAW 结算", required = true) @RequestParam("contractType") ContractTemplateTypeEnum contractType) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+
+        return HttpResponseResult.succeed(sysUserContractRecordService.checkContractSignV2(user.getId(), SysUserType.TEACHER, contractType));
+    }
+
     @ApiOperation("查看协议-获取协议模板")
     @GetMapping(value = "/queryLatestContractTemplate")
     public HttpResponseResult<ContractTemplate> queryLatestContractTemplate(@ApiParam(value = "业务类型 REGISTER 注册 COURSES 课程购买 PRODUCT 产品 WITHDRAW 结算", required = true) @RequestParam("contractType") ContractTemplateTypeEnum contractType) {
@@ -68,6 +81,26 @@ public class SysUserContractRecordController extends BaseController {
         return contractService.queryProductContract(user.getId(),SysUserType.TEACHER,contractType);
     }
 
+
+    @ApiOperation("查看协议-获取协议内容")
+    @GetMapping(value = "/querySignContract", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public HttpResponseResult<String> querySignContract(
+        @ApiParam(value = "协议类型", required = true) @RequestParam("contractType") ContractTemplateTypeEnum contractType) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        SysUserContractRecord sysUserContractRecord = sysUserContractRecordService.queryLatestContract(user.getId(), SysUserType.TEACHER, contractType);
+        if (sysUserContractRecord == null) {
+            return failed(HttpStatus.FORBIDDEN, "请先签署协议");
+        }
+        if ("DOING".equals(sysUserContractRecord.getStatus())) {
+            return failed(HttpStatus.FORBIDDEN, "协议签署中");
+        }
+        return HttpResponseResult.succeed(sysUserContractRecord.getUrl());
+    }
+
+
     @ApiOperation("签署协议")
     @GetMapping(value = "/sign", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public HttpResponseResult<Boolean> sign(

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SysUserContractRecordDao.java

@@ -46,5 +46,7 @@ public interface SysUserContractRecordDao extends BaseMapper<SysUserContractReco
                                 @Param("errMsg") String errMsg);
 
 
+    SysUserContractRecord checkContractSignV2(@Param("userId") Long userId, @Param("userType") String userType, @Param("contractSource") String contractSource, @Param("contractType") String contractType);
+
 }
 

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/SysUserContractRecord.java

@@ -43,7 +43,7 @@ public class SysUserContractRecord implements Serializable {
     private String contractNo;
 
     @TableField("status_")
-    @ApiModelProperty(value = "签署状态 DONG 签署中 SUCCESS 签署完成 FAILED 签署失败")
+    @ApiModelProperty(value = "签署状态 NOT_SIGN 未签署  DOING 签署中 SUCCESS 签署完成 FAILED 签署失败")
     private String status;
 
     @TableField("err_msg_")

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SysUserContractRecordService.java

@@ -48,5 +48,7 @@ public interface SysUserContractRecordService extends IService<SysUserContractRe
     SysUserContractRecord queryLatestContract(Long userId, SysUserType userType, ContractTemplateTypeEnum contractType);
 
     HttpResponseResult<Boolean> sign(ContractTemplateTypeEnum contractType, SysUserType userType, SysUser user);
+
+    String checkContractSignV2(Long userId, SysUserType sysUserType, ContractTemplateTypeEnum contractType);
 }
 

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysUserContractRecordServiceImpl.java

@@ -109,5 +109,15 @@ public class SysUserContractRecordServiceImpl extends ServiceImpl<SysUserContrac
         return HttpResponseResult.succeed(true);
     }
 
+    @Override
+    public String checkContractSignV2(Long userId, SysUserType sysUserType, ContractTemplateTypeEnum contractType) {
+        SysUserContractRecord sysUserContractRecord = getDao().checkContractSignV2(userId, sysUserType.getCode(), contractType.getSource().getCode(), contractType.getCode());
+        if (sysUserContractRecord == null || sysUserContractRecord.getStatus().equals("FAILED")) {
+            return "NOT_SIGN";
+        }
+        return sysUserContractRecord.getStatus();
+
+    }
+
 }
 

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

@@ -103,7 +103,24 @@
             group by source_,type_
         ) a
         left join contract_template b on a.source_ = b.source_ and a.type_ = b.type_ and a.version_ = b.version_
-        left join sys_user_contract_record t on b.id_ = t.contract_id_ and t.status_ in ('SUCCESS','DONG ')
+        left join sys_user_contract_record t on b.id_ = t.contract_id_ and t.status_ in ('SUCCESS','DOING ')
         where t.user_id_ = #{userId} and t.user_type_ = #{userType}
     </select>
+
+    <select id="checkContractSignV2" resultType="com.yonge.cooleshow.biz.dal.entity.SysUserContractRecord">
+        select
+            <include refid="baseColumns"/>
+        from (
+        select
+        source_,type_,MAX(version_) as version_
+        from contract_template
+        where status_ = 1 and source_ = #{contractSource} and type_ = #{contractType}
+        group by source_,type_
+        ) a
+        left join contract_template b on a.source_ = b.source_ and a.type_ = b.type_ and a.version_ = b.version_
+        left join sys_user_contract_record t on b.id_ = t.contract_id_
+        where t.user_id_ = #{userId} and t.user_type_ = #{userType}
+        order by  t.id_ desc
+        limit 1
+    </select>
 </mapper>