From f9c2222f10c70efaabd3bba0ebe617b995df7bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Mon, 1 Sep 2025 16:36:44 +0800 Subject: [PATCH 1/6] =?UTF-8?q?feat:=E7=9B=B4=E8=90=A5=E5=BA=97=E5=BC=80?= =?UTF-8?q?=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/ErrorCodeEnum.java | 4 ++++ .../com/cool/store/enums/JoinModeEnum.java | 3 ++- .../store/request/AddSignFranchiseRequest.java | 4 ---- .../store/service/FranchiseFeeService.java | 7 +++++++ .../service/impl/FranchiseFeeServiceImpl.java | 18 ++++++++++++++++++ .../store/service/impl/ShopServiceImpl.java | 9 +++++++++ .../webb/PCFranchiseFeeController.java | 5 +++++ 7 files changed, 45 insertions(+), 5 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index ae56b9f3a..d59f1e384 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -298,6 +298,10 @@ public enum ErrorCodeEnum { MESSAGE_TEMPLATE_NOT_SUPPORT_DELETED(1610002,"只有未发布的消息能删除,请确认!",null), STORE_MESSAGE_REVOKE(1610003,"当前门店消息已撤销,请务重复操作",null), STORE_MESSAGE_HANDLED(1610004,"当前门店消息已处理,无法撤销!",null), + + + NOT_FLAGSHIP_STORE(16100005,"非直营店,无法跳过缴费阶段!",null), + NOT_FLAGSHIP_STORE_NOT_EXIST(16100006,"当前阶段加盟类型不能变更!",null), ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java index 55ccc6993..4fca7bf91 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java @@ -12,7 +12,8 @@ public enum JoinModeEnum { OWN_STORE(3,"加盟公司自有店"), STRONG_FRANCHISE(4,"强加盟"), DIRECT_SALES_TO_JOINING(5,"老店转加盟"), - AFFILIATES(6,"联营店") + AFFILIATES(6,"联营店"), + FLAGSHIP_STORE(7,"直营店"), ; private int code; private String desc; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java index ab806fa44..be8b6ec1c 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java @@ -85,12 +85,9 @@ public class AddSignFranchiseRequest { private String mobile; @ApiModelProperty("合同编码") - @NotBlank(message = "合同编码不能为空") private String contractCode; @ApiModelProperty("合同金额") - @NotBlank(message = "合同金额不能为空") private String contractAmount; - @NotBlank(message = "合伙签约人1不能为空") @ApiModelProperty("合伙签约人1") private String partnershipSignatoryFirst; @ApiModelProperty("合伙签约人2") @@ -116,7 +113,6 @@ public class AddSignFranchiseRequest { private String introductionAward; //签约人1第几家分店 @ApiModelProperty("签约人1第几家分店") - @NotNull(message = "签约人1第哪家分店不能为空") private Integer partnershipSignatoryFirstWhichStore; //省 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java index 0dffe970c..214052083 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java @@ -23,6 +23,13 @@ public interface FranchiseFeeService { */ FranchiseFeeResponse getDetail(Long shopId); + /** + * 跳过 Stage + * @param shopId + * @return + */ + Boolean stageSkip(Long shopId); + Boolean auditFranchiseFee(AuditFranchiseFeeRequest request, LoginUserInfo user); ApiResponse changePaymentStatus(FranchiseFeeCallBackRequest request); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java index ed6abedc9..8bfb2cc07 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java @@ -139,6 +139,24 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { return resp; } + @Override + public Boolean stageSkip(Long shopId) { + //校验是否是自营店FLAGSHIP_STORE + ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(shopId); + if (shopInfoDO==null){ + throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST); + } + if (JoinModeEnum.FLAGSHIP_STORE.getCode()!=shopInfoDO.getJoinMode()){ + throw new ServiceException(ErrorCodeEnum.NOT_FLAGSHIP_STORE); + } + ShopStageInfoDO shopStageInfo = shopStageInfoDAO.getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_7); + if (!shopStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_70.getShopSubStageStatus())){ + throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE); + } + shopStageInfoDAO.batchUpdateShopStageStatus(shopId,Arrays.asList(SHOP_SUB_STAGE_STATUS_73,SHOP_SUB_STAGE_STATUS_80)); + return Boolean.TRUE; + } + @Override public Boolean auditFranchiseFee(AuditFranchiseFeeRequest request, LoginUserInfo user) { ShopStageInfoDO shopStageInfo = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_7); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java index 0a9d22afc..ef44ca211 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java @@ -437,7 +437,16 @@ public class ShopServiceImpl implements ShopService { if(StringUtils.isNotEmpty(request.getShopCode())&&this.checkShopCodeRepeat(request.getShopCode(), request.getShopId())){ throw new ServiceException(ErrorCodeEnum.SHOP_CODE_EXIST); } + //新增校验 缴费阶段之后 不能修改加盟模式 + ShopStageInfoDO shopSubStageInfo = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_7); + //缴费阶段之后 加盟模式不能切换为直营店 直营店也不能切换为其他店 ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId()); + if (shopSubStageInfo.getShopSubStageStatus()>ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_70.getShopSubStageStatus()){ + if (request.getJoinMode()!=shopInfo.getJoinMode()&& + (request.getShopId()!=JoinModeEnum.FLAGSHIP_STORE.getCode()||shopInfo.getJoinMode()!=JoinModeEnum.FLAGSHIP_STORE.getCode())){ + throw new ServiceException(ErrorCodeEnum.NOT_FLAGSHIP_STORE_NOT_EXIST); + } + } shopInfo.setUpdateUserId(userId); shopInfo.setUpdateTime(new Date()); if (StringUtils.isNotEmpty(request.getShopCode())){ diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseFeeController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseFeeController.java index 1b8faf594..336d0a10e 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseFeeController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseFeeController.java @@ -35,6 +35,11 @@ public class PCFranchiseFeeController { return ResponseResult.success(franchiseFeeService.update(request)); } + @ApiOperation("缴费阶段跳过") + @GetMapping("/stageSkip") + public ResponseResult stageSkip(@RequestParam("shopId") Long shopId) { + return ResponseResult.success(franchiseFeeService.stageSkip(shopId)); + } @ApiOperation("基本信息查询") @GetMapping("/getDetail") From b36fbd7af2d1b44a53eefb42597fb50d8f054010 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Tue, 2 Sep 2025 11:34:39 +0800 Subject: [PATCH 2/6] feat:franchiseFeeDO --- .../service/impl/SignFranchiseServiceImpl.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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 4ef57ddd9..96305a297 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 @@ -553,12 +553,14 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu addSignFranchiseResponse.setPartnershipSignatoryFirstWhichStore(signFranchiseDO.getPartnershipSignatoryFirstWhichStore()); } else { - BigDecimal total = new BigDecimal(franchiseFeeDO.getYearFranchiseFee()) - .add(new BigDecimal(franchiseFeeDO.getLoanMargin())) - .add(new BigDecimal(franchiseFeeDO.getFirstYearFee())) - .add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee())) - .add(new BigDecimal(franchiseFeeDO.getPerformanceBond())); - addSignFranchiseResponse.setContractAmount(total.toString()); + if (Objects.nonNull(franchiseFeeDO)) { + BigDecimal total = new BigDecimal(franchiseFeeDO.getYearFranchiseFee()) + .add(new BigDecimal(franchiseFeeDO.getLoanMargin())) + .add(new BigDecimal(franchiseFeeDO.getFirstYearFee())) + .add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee())) + .add(new BigDecimal(franchiseFeeDO.getPerformanceBond())); + addSignFranchiseResponse.setContractAmount(total.toString()); + } addSignFranchiseResponse.setMobile(lineInfoDO.getMobile()); } addSignFranchiseResponse.setStoreName(shopInfoDO.getShopName()); From 366b2080295d500589f879a64ac97d07b7916329 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Tue, 2 Sep 2025 15:43:12 +0800 Subject: [PATCH 3/6] feat:submitOrUpdate --- .../cool/store/request/BuildInformationRequest.java | 7 ------- .../service/impl/BuildInformationServiceImpl.java | 11 ++++++++++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java index dfdfe4495..691a961b4 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java @@ -95,16 +95,13 @@ public class BuildInformationRequest { private Boolean settlerIsSamePartner ; @ApiModelProperty("结算人姓名") - // @NotBlank(message = "结算人姓名 不能为空") @JsonProperty("settlerName") private String settlerName; - //@NotBlank(message = "结算人身份证正面 不能为空") @Length(max = 250 , message = "结算人身份证正面 长度不能超过250") @ApiModelProperty("结算人身份证正面(图片)") private String settlerIdCardFront; - @NotBlank(message = "结算人手持身份证正面 不能为空") @Length(max = 250 , message = "结算人手持身份证正面 长度不能超过250") @ApiModelProperty("结算人手持身份证正面") private String settlerInHandFrontPicture; @@ -129,23 +126,19 @@ public class BuildInformationRequest { @ApiModelProperty("结算人银行卡照片") private String settlerBankPhotoUrl; - @NotBlank(message = "结算人银行卡背面照片 不能为空") @Length(max = 250, message = "结算人银行卡背面照片 长度不能超过250") @ApiModelProperty("结算人银行卡背面照片") @JsonProperty("settlerBankBackPhotoUrl") private String settlerBankBackPhotoUrl; - @NotBlank(message = "结算人银行卡号 不能为空") @Length(max = 64 , message = "结算人银行卡号 长度不能超过64") @ApiModelProperty("结算人银行卡号") private String settlerBankNumber; - @NotBlank(message = "结算人银行卡预留手机号 不能为空") @Length(min = 11,max = 11 , message = "结算人银行卡预留手机号 长度必须为11") @ApiModelProperty("结算人银行卡预留手机号") private String settlerBankMobile; - @NotBlank(message = "结算开户银行支行 不能为空") @Length(max =100, message = "结算开户银行支行 长度不能超过100") @ApiModelProperty("结算开户银行支行") private String settlerBankName; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java index 5fc80c44e..e04f8bf61 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java @@ -201,6 +201,16 @@ public class BuildInformationServiceImpl implements BuildInformationService { try { acquired = redisUtilPool.setNxExpire(lockKey, lockValue, CommonConstants.TEN_SECONDS); if (Boolean.TRUE.equals(acquired)) { + ShopInfoDO shopInfoDO = shopInfoDAO.getShopInfo(request.getShopId()); + if (JoinModeEnum.FLAGSHIP_STORE.getCode()!=shopInfoDO.getJoinMode()){ + //校验结算人非空 + if (StringUtils.isAnyBlank(request.getSettlerName(),request.getSettlerIdCardFront(), + request.getSettlerInHandFrontPicture(),request.getSettlerBankBackPhotoUrl(), + request.getSettlerBankNumber(),request.getSettlerBankMobile(),request.getSettlerBankName())) { + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } + } + BuildInformationDO informationDO = buildInformationDAO.selectOneByShopId(request.getShopId()); BuildInformationDO buildInformationDO = request.toDO(); OrderSysInfoDO orderSysInfoDO = getOrderSysInfoDO(request); @@ -210,7 +220,6 @@ public class BuildInformationServiceImpl implements BuildInformationService { } else { orderSysInfoDAO.insertSelective(orderSysInfoDO); } - ShopInfoDO shopInfoDO = shopInfoDAO.getShopInfo(request.getShopId()); LineInfoDO lineInfoDO = lineInfoDAO.getLineInfo(shopInfoDO.getLineId()); QualificationsInfoDO qualificationsInfoDO = qualificationsInfoDAO.getByLineId(lineInfoDO.getId()); if (request.getJuridicalIsSamePartner()) { From 33e597496c0c441ee773b29e8c09e46dd66a5edc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Tue, 2 Sep 2025 16:31:25 +0800 Subject: [PATCH 4/6] feat:submitOrUpdate --- .../java/com/cool/store/request/BuildInformationRequest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java index 691a961b4..2a6ed014d 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java @@ -91,7 +91,6 @@ public class BuildInformationRequest { private String juridicalHandheldIdCardReverse; @ApiModelProperty("结算人身份证信息是否和加盟商一致,false否,true是") - @NotNull(message = "结算人身份证信息是否和加盟商一致不能为空") private Boolean settlerIsSamePartner ; @ApiModelProperty("结算人姓名") From 2679d341cb9080521c0d245727cbcbac7ef3ebd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Wed, 3 Sep 2025 09:31:15 +0800 Subject: [PATCH 5/6] feat:submitOrUpdate --- .../cool/store/service/impl/BuildInformationServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java index e04f8bf61..2103ebab9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java @@ -228,7 +228,7 @@ public class BuildInformationServiceImpl implements BuildInformationService { buildInformationDO.setJuridicalIdCardFront(qualificationsInfoDO.getFrontOfIdCard()); buildInformationDO.setJuridicalIdCardReverse(qualificationsInfoDO.getBackOfIdCard()); } - if (request.getSettlerIsSamePartner()) { + if (request.getSettlerIsSamePartner()!=null&&request.getSettlerIsSamePartner()) { buildInformationDO.setSettlerIdCardNo(qualificationsInfoDO.getIdCardNo()); buildInformationDO.setSettlerName(lineInfoDO.getUsername()); buildInformationDO.setSettlerIdCardFront(qualificationsInfoDO.getFrontOfIdCard()); From c496ee7d0ee10f00f0609cc118e774fb1e935207 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Wed, 3 Sep 2025 11:29:59 +0800 Subject: [PATCH 6/6] =?UTF-8?q?feat:=E7=9B=B4=E8=90=A5=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/cool/store/request/OrderSysInfoRequest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/OrderSysInfoRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/OrderSysInfoRequest.java index 03b7b1388..1bbcbcb80 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/OrderSysInfoRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/OrderSysInfoRequest.java @@ -128,6 +128,9 @@ public class OrderSysInfoRequest { if (Objects.equals(joinMode, JoinModeEnum.OWN_STORE.getCode())&&this.shopCode!=null){ return true; } + if (Objects.equals(joinMode, JoinModeEnum.FLAGSHIP_STORE.getCode())&&this.shopCode!=null){ + return true; + } if (StringUtils.isAnyBlank(this.receivingFirmName,this.receivingMsBankAccount,this.receivingMsBankBranch,this.bankUnionPayAccount,this.shopCode)){ return false; }