diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SignFranchiseMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SignFranchiseMapper.java index 8ac02937f..b595f6d25 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SignFranchiseMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SignFranchiseMapper.java @@ -1,5 +1,6 @@ package com.cool.store.mapper; +import com.cool.store.dto.contract.ContractCallbackDTO; import com.cool.store.entity.SignFranchiseDO; import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; @@ -11,7 +12,8 @@ public interface SignFranchiseMapper extends Mapper { SignFranchiseDO selectByShopId(@Param("shopId") Long shopId); void updateAuditByShopId(@Param("auditId") Long auditId, - @Param("shopId") Long shopId); + @Param("shopId") Long shopId, + @Param("dto") ContractCallbackDTO dto); List selectByShopIds( @Param("list")List shopIds); Integer dateHandle(); diff --git a/coolstore-partner-dao/src/main/resources/mapper/SignFranchiseMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/SignFranchiseMapper.xml index 5c927fb7d..d4ceb8c0e 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/SignFranchiseMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/SignFranchiseMapper.xml @@ -3,7 +3,19 @@ update xfsg_sign_franchise - set audit_id = #{auditId} + + + audit_id = #{auditId}, + + + + info_consistency_flag = #{dto.infoConsistencyFlag}, + + + reason = #{dto.reason}, + + + where shop_id = #{shopId} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/ContractCallbackDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/ContractCallbackDTO.java new file mode 100644 index 000000000..e686d0af1 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/ContractCallbackDTO.java @@ -0,0 +1,17 @@ +package com.cool.store.dto.contract; + +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/9/17 14:42 + * @Version 1.0 + */ +@Data +public class ContractCallbackDTO { + + private Integer infoConsistencyFlag; + + private String reason; + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java index e2e49e8c6..f9444f0a8 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java @@ -1,9 +1,7 @@ package com.cool.store.service; -import com.cool.store.dto.GetAccessTokenDTO; -import com.cool.store.dto.HqtTokenDTO; -import com.cool.store.dto.ModifyPasswordDTO; -import com.cool.store.dto.XgjOrganizationDTO; +import com.cool.store.dto.*; +import com.cool.store.dto.contract.ContractCallbackDTO; import com.cool.store.request.AuditRequest; import com.cool.store.request.ZxjpApiRequest; import com.cool.store.request.xgj.PushFranchiseFeeRequest; @@ -94,6 +92,13 @@ public interface PushService { */ HqtTokenDTO getHqtToken(); + /** + * 法大大一期 推送加盟合同信息 + * @param contractInformationDTO + * @return + */ + ContractCallbackDTO pushContract(ContractInformationDTO contractInformationDTO); + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java index 38801696a..afff5d4bb 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java @@ -1,10 +1,8 @@ package com.cool.store.service.impl; import com.alibaba.fastjson.JSONObject; -import com.cool.store.dto.GetAccessTokenDTO; -import com.cool.store.dto.HqtTokenDTO; -import com.cool.store.dto.ModifyPasswordDTO; -import com.cool.store.dto.XgjOrganizationDTO; +import com.cool.store.dto.*; +import com.cool.store.dto.contract.ContractCallbackDTO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.ZxjpApiRequest; @@ -133,6 +131,11 @@ public class PushServiceImpl implements PushService { String apiUrl = xgjUrl + "/dmp/dmp-join/open/franchiseeBill"; return executePostApiCall(apiUrl, request, Boolean.class, xgjUsername, xgjSecret,getXgjAccessToken().getAccess_token()); } + @Override + public ContractCallbackDTO pushContract(ContractInformationDTO contractInformationDTO) { + String apiUrl = xgjUrl + "/dmp/dmp-join/open/franchiseContract"; + return executePostApiCall(apiUrl, contractInformationDTO, ContractCallbackDTO.class, xgjUsername, xgjSecret,getXgjAccessToken().getAccess_token()); + } @Override public Boolean pushReceiptToXGJ(ReceiptRequest request) { @@ -296,6 +299,7 @@ public class PushServiceImpl implements PushService { } } + private T executeApiCall(String url, Object requestBody, Class responseType, String username, String secret){ return executePostApiCall(url,requestBody,responseType,username,secret,null); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java index 711a4f4d1..063920164 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java @@ -7,6 +7,7 @@ import com.cool.store.context.LoginUserInfo; import com.cool.store.dao.*; import com.cool.store.dto.ContractInformationDTO; import com.cool.store.dto.PartnerBankInfoDTO; +import com.cool.store.dto.contract.ContractCallbackDTO; import com.cool.store.dto.contract.PushContractDTO; import com.cool.store.entity.*; import com.cool.store.enums.*; @@ -123,45 +124,47 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu OperationLogDAO operationLogDAO; @Resource ContractConfigDAO contractConfigDAO; + @Resource + PushService pushService; @Override public Boolean auditResult(AuditResultRequest request) { log.info("SignFranchiseServiceImpl auditResult request:{}", JSONObject.toJSONString(request)); - Long shopId = getShopId(request.getKdzBusinessId()); - ShopSubStageStatusEnum shopSubStageStatusEnum = null; - if (request.getAuditResult() == 1) { - shopSubStageStatusEnum = SHOP_SUB_STAGE_STATUS_84; - } else if (request.getAuditResult() == 0) { - shopSubStageStatusEnum = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_85; - } - ShopAuditInfoDO shopAuditInfoDO = new ShopAuditInfoDO(); - shopAuditInfoDO.setShopId(shopId); - shopAuditInfoDO.setAuditType(AuditTypeEnum.SIGN_FRANCHISE.getCode()); - shopAuditInfoDO.setSubmittedUserId(""); - shopAuditInfoDO.setSubmittedUserName(""); - if (Constants.ZERO_INTEGER.equals(request.getAuditResult())) { - shopAuditInfoDO.setResultType(Constants.ONE_INTEGER); - shopAuditInfoDO.setRejectReason(request.getCause()); - Map requestMap = new HashMap<>(); - ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(shopId); - LineInfoDO lineInfo = lineInfoMapper.getByLineId(shopInfoDO.getLineId()); - requestMap.put("storeName", shopInfoDO.getShopName()); - requestMap.put("partnerName", lineInfo.getUsername()); - requestMap.put("partnerMobile", lineInfo.getMobile()); - requestMap.put("lineId", String.valueOf(lineInfo.getId())); - requestMap.put("shopId", String.valueOf(shopInfoDO.getId())); - commonService.sendMessage(Collections.singletonList(lineInfo.getInvestmentManager()), MessageEnum.MESSAGE_20, requestMap); - } else if (Constants.ONE_INTEGER.equals(request.getAuditResult())) { - shopAuditInfoDO.setResultType(Constants.ZERO_INTEGER); - shopAuditInfoDO.setPassReason(request.getCause()); - //校验建店与加盟签约合同是否完成 并初始化后续流程数据 - //preparationService.contractAndBuildStoreCompletion(shopId); - } - shopAuditInfoMapper.insertSelective(shopAuditInfoDO); - Long auditId = shopAuditInfoDO.getId(); - shopStageInfoDAO.updateShopStageAndAuditInfo(shopId, shopSubStageStatusEnum, auditId); - signFranchiseMapper.updateAuditByShopId(auditId, shopId); +// Long shopId = getShopId(request.getKdzBusinessId()); +// ShopSubStageStatusEnum shopSubStageStatusEnum = null; +// if (request.getAuditResult() == 1) { +// shopSubStageStatusEnum = SHOP_SUB_STAGE_STATUS_84; +// } else if (request.getAuditResult() == 0) { +// shopSubStageStatusEnum = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_85; +// } +// ShopAuditInfoDO shopAuditInfoDO = new ShopAuditInfoDO(); +// shopAuditInfoDO.setShopId(shopId); +// shopAuditInfoDO.setAuditType(AuditTypeEnum.SIGN_FRANCHISE.getCode()); +// shopAuditInfoDO.setSubmittedUserId(""); +// shopAuditInfoDO.setSubmittedUserName(""); +// if (Constants.ZERO_INTEGER.equals(request.getAuditResult())) { +// shopAuditInfoDO.setResultType(Constants.ONE_INTEGER); +// shopAuditInfoDO.setRejectReason(request.getCause()); +// Map requestMap = new HashMap<>(); +// ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(shopId); +// LineInfoDO lineInfo = lineInfoMapper.getByLineId(shopInfoDO.getLineId()); +// requestMap.put("storeName", shopInfoDO.getShopName()); +// requestMap.put("partnerName", lineInfo.getUsername()); +// requestMap.put("partnerMobile", lineInfo.getMobile()); +// requestMap.put("lineId", String.valueOf(lineInfo.getId())); +// requestMap.put("shopId", String.valueOf(shopInfoDO.getId())); +// commonService.sendMessage(Collections.singletonList(lineInfo.getInvestmentManager()), MessageEnum.MESSAGE_20, requestMap); +// } else if (Constants.ONE_INTEGER.equals(request.getAuditResult())) { +// shopAuditInfoDO.setResultType(Constants.ZERO_INTEGER); +// shopAuditInfoDO.setPassReason(request.getCause()); +// //校验建店与加盟签约合同是否完成 并初始化后续流程数据 +// //preparationService.contractAndBuildStoreCompletion(shopId); +// } +// shopAuditInfoMapper.insertSelective(shopAuditInfoDO); +// Long auditId = shopAuditInfoDO.getId(); +// shopStageInfoDAO.updateShopStageAndAuditInfo(shopId, shopSubStageStatusEnum, auditId); + //signFranchiseMapper.updateAuditByShopId(auditId, shopId); return true; } @@ -361,6 +364,7 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu shopAuditInfoDO.setSubmittedUserId(user.getUserId()); shopAuditInfoDO.setSubmittedUserName(user.getName()); //驳回 + ContractCallbackDTO contractCallbackDTO = null; if (Constants.ZERO_INTEGER.equals(request.getAuditResult())) { shopAuditInfoDO.setResultType(Constants.ONE_INTEGER); shopAuditInfoDO.setRejectReason(request.getCause()); @@ -415,27 +419,33 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(shopId); SignFranchiseDO signFranchiseDO = signFranchiseMapper.selectByShopId(shopId); - ContractInformationDTO contractInformationDTO = new ContractInformationDTO(); - contractInformationDTO.setShopId(shopId); - contractInformationDTO.setJoinModel(shopInfoDO.getJoinMode()); - contractInformationDTO.setShopName(shopInfoDO.getShopName()); - //品牌信息 - contractInformationDTO.setSign1Name(signFranchiseDO.getPartnershipSignatoryFirst()); - contractInformationDTO.setSign2Name(signFranchiseDO.getPartnershipSignatorySecond()); - contractInformationDTO.setFirstYearFee(franchiseFeeDO.getFirstYearFee()); - contractInformationDTO.setLoanMargin(franchiseFeeDO.getLoanMargin()); - contractInformationDTO.setFirstYearManagementFee(franchiseFeeDO.getFirstYearManageFee()); - contractInformationDTO.setFirstYearFee(franchiseFeeDO.getFirstYearFee()); - contractInformationDTO.setPerformanceBond(franchiseFeeDO.getPerformanceBond()); + //自营店 无缴费信息 不需要校验 + if (franchiseFeeDO != null){ + ContractInformationDTO contractInformationDTO = new ContractInformationDTO(); + contractInformationDTO.setShopId(shopId); + contractInformationDTO.setJoinModel(shopInfoDO.getJoinMode()); + contractInformationDTO.setShopName(shopInfoDO.getShopName()); + //品牌信息 + contractInformationDTO.setSign1Name(signFranchiseDO.getPartnershipSignatoryFirst()); + contractInformationDTO.setSign2Name(signFranchiseDO.getPartnershipSignatorySecond()); + contractInformationDTO.setFirstYearFee(franchiseFeeDO.getFirstYearFee()); + contractInformationDTO.setLoanMargin(franchiseFeeDO.getLoanMargin()); + contractInformationDTO.setFirstYearManagementFee(franchiseFeeDO.getFirstYearManageFee()); + contractInformationDTO.setFirstYearFee(franchiseFeeDO.getFirstYearFee()); + contractInformationDTO.setPerformanceBond(franchiseFeeDO.getPerformanceBond()); - FranchiseBrandEnum enumByCode = FranchiseBrandEnum.getEnumByCode(shopInfoDO.getFranchiseBrand()); - if (enumByCode != null){ - contractInformationDTO.setPayeeName(enumByCode.getPayeeName()); - contractInformationDTO.setBrandOwner(enumByCode.getBrandOwner()); + FranchiseBrandEnum enumByCode = FranchiseBrandEnum.getEnumByCode(shopInfoDO.getFranchiseBrand()); + if (enumByCode != null){ + contractInformationDTO.setPayeeName(enumByCode.getPayeeName()); + contractInformationDTO.setBrandOwner(enumByCode.getBrandOwner()); + } + try { + contractCallbackDTO = pushService.pushContract(contractInformationDTO); + } catch (Exception e) { + log.error("推送合同信息失败", e); + } } - - log.info("加盟合同审批时签约类型:{}", SignTypeEnum.getDescByCode(signFranchiseDO.getSignType())); Boolean sendNotice = Boolean.TRUE; commonService.sendSms(lineInfoDO.getMobile(), SMSMsgEnum.SIGN_CONTRACT); @@ -460,7 +470,7 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu } shopAuditInfoMapper.insertSelective(shopAuditInfoDO); Long auditId = shopAuditInfoDO.getId(); - signFranchiseMapper.updateAuditByShopId(auditId, shopId); + signFranchiseMapper.updateAuditByShopId(auditId, shopId,contractCallbackDTO); //审批记录表记录 List operationLogs = operationLogDAO.getBySubStageStatusEnumAndsStatus(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_83, OperationTypeEnum.OPERATION_TYPE_1.getCode()); operationLogService.batchUpdateProcessed(operationLogs, auditId, user.getUserId(), request.getCause()); diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java index 64c87bda8..c80580481 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java @@ -4,12 +4,11 @@ import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.constants.RedisConstant; import com.cool.store.dao.*; -import com.cool.store.dto.FoodTokenDTO; -import com.cool.store.dto.GetAccessTokenDTO; -import com.cool.store.dto.HqtTokenDTO; -import com.cool.store.dto.ModifyPasswordDTO; +import com.cool.store.dto.*; +import com.cool.store.dto.contract.ContractCallbackDTO; import com.cool.store.entity.*; import com.cool.store.enums.DownSystemTypeEnum; +import com.cool.store.enums.FranchiseBrandEnum; import com.cool.store.enums.MessageEnum; import com.cool.store.enums.SMSMsgEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; @@ -17,6 +16,7 @@ import com.cool.store.job.XxlJobHandler; import com.cool.store.mapper.FranchiseFeeMapper; import com.cool.store.mapper.LineInfoMapper; import com.cool.store.mapper.ShopInfoMapper; +import com.cool.store.mapper.SignFranchiseMapper; import com.cool.store.mq.util.HttpRestTemplateService; import com.cool.store.request.*; import com.cool.store.request.bigdata.ProfitDataRequest; @@ -99,6 +99,8 @@ public class PCTestController { LinePayService linePayService; @Resource LinePayDAO linePayDAO; + @Resource + SignFranchiseMapper signFranchiseMapper; @GetMapping("/syncStore") public ResponseResult syncStore(@RequestParam("shopId")Long shopId){ @@ -393,6 +395,44 @@ public class PCTestController { return ResponseResult.success(Boolean.TRUE); } + @GetMapping("/pushContract") + @ApiOperation("推送合同信息") + public ResponseResult pushContract(@RequestParam(value = "shopId", required = true) Long shopId) { + + ShopInfoDO shopInfoDO = shopInfoDAO.getShopInfo(shopId); + FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(shopId); + SignFranchiseDO signFranchiseDO = signFranchiseMapper.selectByShopId(shopId); + + //自营店 无缴费信息 不需要校验 + if (franchiseFeeDO != null){ + ContractInformationDTO contractInformationDTO = new ContractInformationDTO(); + contractInformationDTO.setShopId(shopId); + contractInformationDTO.setJoinModel(shopInfoDO.getJoinMode()); + contractInformationDTO.setShopName(shopInfoDO.getShopName()); + //品牌信息 + contractInformationDTO.setSign1Name(signFranchiseDO.getPartnershipSignatoryFirst()); + contractInformationDTO.setSign2Name(signFranchiseDO.getPartnershipSignatorySecond()); + contractInformationDTO.setFirstYearFee(franchiseFeeDO.getFirstYearFee()); + contractInformationDTO.setLoanMargin(franchiseFeeDO.getLoanMargin()); + contractInformationDTO.setFirstYearManagementFee(franchiseFeeDO.getFirstYearManageFee()); + contractInformationDTO.setFirstYearFee(franchiseFeeDO.getFirstYearFee()); + contractInformationDTO.setPerformanceBond(franchiseFeeDO.getPerformanceBond()); + + FranchiseBrandEnum enumByCode = FranchiseBrandEnum.getEnumByCode(shopInfoDO.getFranchiseBrand()); + if (enumByCode != null){ + contractInformationDTO.setPayeeName(enumByCode.getPayeeName()); + contractInformationDTO.setBrandOwner(enumByCode.getBrandOwner()); + } + try { + ContractCallbackDTO contractCallbackDTO = pushService.pushContract(contractInformationDTO); + log.info("推送合同信息回调:{}", JSONObject.toJSONString(contractCallbackDTO)); + } catch (Exception e) { + log.error("推送合同信息失败", e); + } + } + return ResponseResult.success(Boolean.TRUE); + } + @Resource ShopStageInfoDAO shopStageInfoDAO;