Browse Source

签署三方协议

liujc 1 year ago
parent
commit
18a89bc2d1

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

@@ -51,6 +51,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) {

+ 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 未签署  DONG 签署中 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();
+
+    }
+
 }
 

+ 17 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysUserContractRecordMapper.xml

@@ -106,4 +106,21 @@
         left join sys_user_contract_record t on b.id_ = t.contract_id_ and t.status_ in ('SUCCESS','DONG ')
         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>