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 d48973587..8865c48f5 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 @@ -292,6 +292,7 @@ public enum ErrorCodeEnum { PRODUCTS_DISCARDED(1511034,"产品已报销,无法操作",null), PRODUCTS_SALES_COMPLETED(1511034,"含有销售完成的产品,无法批量报销",null), STORE_IS_EXIST(1511035,"该门店已存在",null), + FEE_NOT_CONSISTENT(1511036,"合同金额与缴费账单金额不一致,请确定!",null), MESSAGE_TEMPLATE_NOT_SUPPORT_EDIT(1610001,"当前消息已发布,不支持编辑!",null), diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/ContractInformationDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/ContractInformationDTO.java index 7018fcef9..2a17848ea 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/ContractInformationDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/ContractInformationDTO.java @@ -1,14 +1,8 @@ package com.cool.store.dto; -import com.cool.store.dto.contract.PushContractDTO; -import com.cool.store.vo.BaseInfoVO; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.math.BigDecimal; -import java.util.Date; -import java.util.List; /** * @Author suzhuhong @@ -46,4 +40,40 @@ public class ContractInformationDTO { @ApiModelProperty("合同编号") private String contractNo; + @ApiModelProperty(name = "合同加盟费") + private String contractFranchiseFee; + + @ApiModelProperty(name = "合同管理费") + private String contractManageFee; + + @ApiModelProperty(name = "合同品牌使用费") + private String contractBrandUseFee; + + @ApiModelProperty(name = "合同设计费") + private String contractPerformanceBond; + + @ApiModelProperty(name = "合同保证金") + private String contractLoanMargin; + + @ApiModelProperty(name = "合同系统使用费") + private String contractSysUserFee; + + @ApiModelProperty(name = "加盟来源") + private String joinSource; + + @ApiModelProperty(name = "签约形式") + private String signModality; + + @ApiModelProperty(name = "加盟费频率") + private Integer franchiseFeeFrequency; + + @ApiModelProperty(name = "品牌使用费频率") + private Integer brandUseFeeFrequency; + + @ApiModelProperty(name = "管理费频率") + private Integer manageFeeFrequency; + + @ApiModelProperty(name = "管理费频率") + private String discountAmount; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/SignFranchiseDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/SignFranchiseDO.java index a86dd7544..5d049f2c5 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/SignFranchiseDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/SignFranchiseDO.java @@ -99,4 +99,76 @@ public class SignFranchiseDO { @Column(name = "old_shop_code") private String oldShopCode; + + /** + * 合同加盟费 + */ + @Column(name = "contract_franchise_fee") + private String contractFranchiseFee; + + /** + * 合同管理费 + */ + @Column(name = "contract_manage_fee") + private String contractManageFee; + + /** + * 合同品牌使用费 + */ + @Column(name = "contract_brand_use_fee") + private String contractBrandUseFee; + + /** + * 合同设计费 + */ + @Column(name = "contract_performance_bond") + private String contractPerformanceBond; + + /** + * 合同保证金 + */ + @Column(name = "contract_loan_margin") + private String contractLoanMargin; + + /** + * 合同系统使用费 + */ + @Column(name = "contract_sys_user_fee") + private String contractSysUserFee; + + /** + * 加盟来源 + */ + @Column(name = "join_source") + private String joinSource; + + /** + * 签约形式 + */ + @Column(name = "sign_modality") + private String signModality; + + /** + * 加盟费频率 + */ + @Column(name = "franchise_fee_frequency") + private Integer franchiseFeeFrequency; + + /** + * 品牌使用费频率 + */ + @Column(name = "brand_use_fee_frequency") + private Integer brandUseFeeFrequency; + + /** + * 管理费频率 + */ + @Column(name = "manage_fee_frequency") + private Integer manageFeeFrequency; + + /** + * 加盟费折扣金额 + */ + @Column(name = "discount_amount") + private String discountAmount; } 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 aaf8d6c24..146eba3a0 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 @@ -1,6 +1,7 @@ package com.cool.store.request; import com.cool.store.entity.SignFranchiseDO; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -151,6 +152,82 @@ public class AddSignFranchiseRequest { @ApiModelProperty("老店编码 签约类型选择老店转加盟时有") private String oldShopCode; + @ApiModelProperty("合同加盟费") + @NotBlank(message = "合同加盟费不能为空") + private String contractFranchiseFee; + + /** + * 合同管理费 + */ + @ApiModelProperty("合同管理费") + @NotBlank(message = "合同管理费不能为空") + private String contractManageFee; + + /** + * 合同品牌使用费 + */ + @ApiModelProperty("合同品牌使用费") + @NotBlank(message = "合同品牌使用费不能为空") + private String contractBrandUseFee; + + /** + * 合同设计费 + */ + @ApiModelProperty("合同设计费") + @NotBlank(message = "合同设计费不能为空") + private String contractPerformanceBond; + + /** + * 合同保证金 + */ + @ApiModelProperty("合同保证金") + @NotBlank(message = "合同保证金不能为空") + private String contractLoanMargin; + + /** + * 合同系统使用费 + */ + @ApiModelProperty("合同系统使用费") + @NotBlank(message = "合同系统使用费不能为空") + private String contractSysUserFee; + + /** + * 加盟来源 + */ + @ApiModelProperty("加盟来源") + private String joinSource; + + /** + * 签约形式 + */ + @ApiModelProperty("签约形式") + private String signModality; + + /** + * 加盟费频率 + */ + @ApiModelProperty("加盟费频率") + private Integer franchiseFeeFrequency; + + /** + * 品牌使用费频率 + */ + @ApiModelProperty("品牌使用费频率") + private Integer brandUseFeeFrequency; + + /** + * 管理费频率 + */ + @ApiModelProperty("管理费频率") + private Integer manageFeeFrequency; + + /** + * 加盟费折扣金额 + */ + @ApiModelProperty("加盟费折扣金额") + private String discountAmount; + + public SignFranchiseDO toSignFranchiseDO() { @@ -184,6 +261,18 @@ public class AddSignFranchiseRequest { signFranchiseDO.setIntroductionAward(this.introductionAward); signFranchiseDO.setPartnershipSignatoryFirstWhichStore(this.partnershipSignatoryFirstWhichStore); signFranchiseDO.setUnifiedManagement(this.unifiedManagement); + signFranchiseDO.setContractFranchiseFee(this.contractFranchiseFee); + signFranchiseDO.setContractManageFee(this.contractManageFee); + signFranchiseDO.setContractBrandUseFee(this.contractBrandUseFee); + signFranchiseDO.setContractPerformanceBond(this.contractPerformanceBond); + signFranchiseDO.setContractLoanMargin(this.contractLoanMargin); + signFranchiseDO.setContractSysUserFee(this.contractSysUserFee); + signFranchiseDO.setJoinSource(this.joinSource); + signFranchiseDO.setSignModality(this.signModality); + signFranchiseDO.setFranchiseFeeFrequency(this.franchiseFeeFrequency); + signFranchiseDO.setBrandUseFeeFrequency(this.brandUseFeeFrequency); + signFranchiseDO.setManageFeeFrequency(this.manageFeeFrequency); + signFranchiseDO.setDiscountAmount(this.discountAmount); return signFranchiseDO; } 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 f0f2e35c2..7775d9fa1 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 @@ -185,6 +185,10 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu if (Objects.isNull(request.getShopId())) { throw new ServiceException(ErrorCodeEnum.SHOP_ID_NOT_EXIST); } + //校验金额 + if (!feeCheck(request)){ + throw new ServiceException(ErrorCodeEnum.FEE_NOT_CONSISTENT); + } SignFranchiseDO isExist = signFranchiseMapper.selectByShopId(request.getShopId()); if (Objects.nonNull(isExist) && Objects.isNull(request.getId())) { throw new ServiceException(ErrorCodeEnum.DUPLICATE_SUBMISSION); @@ -268,6 +272,10 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu if (Objects.isNull(request.getShopId())) { throw new ServiceException(ErrorCodeEnum.SHOP_ID_NOT_EXIST); } + //校验金额 + if (!feeCheck(request)){ + throw new ServiceException(ErrorCodeEnum.FEE_NOT_CONSISTENT); + } ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId()); PointInfoDO pointInfoById = pointInfoDAO.getPointInfoById(shopInfoDO.getPointId()); SignFranchiseDO signFranchiseDO = request.toSignFranchiseDO(); @@ -298,6 +306,39 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu return Boolean.TRUE; } + /** + * 费用校验 + * @param request + * @return + */ + private Boolean feeCheck(AddSignFranchiseRequest request){ + //查询账单金额 + FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId()); + if (!request.getContractFranchiseFee().equals(franchiseFeeDO.getYearFranchiseFee())){ + return Boolean.FALSE; + } + //合同设计费 + if (!request.getContractPerformanceBond().equals(franchiseFeeDO.getPerformanceBond())){ + return Boolean.FALSE; + } + //品牌使用费 + if (!request.getContractBrandUseFee().equals(franchiseFeeDO.getFirstYearFee())){ + return Boolean.FALSE; + } + //合同保证金 + if (!request.getContractLoanMargin().equals(franchiseFeeDO.getLoanMargin())){ + return Boolean.FALSE; + } + //合同管理费 + if (!request.getContractManageFee().equals(franchiseFeeDO.getFirstYearManageFee())){ + return Boolean.FALSE; + } + return Boolean.TRUE; + } + + + + private void updateShopAndPoint(AddSignFranchiseRequest request, ShopInfoDO shopInfoDO, PointInfoDO pointInfoById) { //店铺信息 shopInfoDO.setManagerRegionId(request.getManagerRegionId()); @@ -506,6 +547,21 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu contractInformationDTO.setFirstYearManagementFee(franchiseFeeDO.getFirstYearManageFee()); contractInformationDTO.setYearFranchiseFee(franchiseFeeDO.getYearFranchiseFee()); contractInformationDTO.setPerformanceBond(franchiseFeeDO.getPerformanceBond()); + + contractInformationDTO.setContractFranchiseFee(signFranchiseDO.getContractFranchiseFee()); + contractInformationDTO.setContractManageFee(signFranchiseDO.getContractManageFee()); + contractInformationDTO.setContractBrandUseFee(signFranchiseDO.getContractBrandUseFee()); + contractInformationDTO.setContractPerformanceBond(signFranchiseDO.getContractPerformanceBond()); + contractInformationDTO.setContractLoanMargin(signFranchiseDO.getContractLoanMargin()); + contractInformationDTO.setContractSysUserFee(signFranchiseDO.getContractSysUserFee()); + contractInformationDTO.setSignModality(signFranchiseDO.getSignModality()); + contractInformationDTO.setFranchiseFeeFrequency(signFranchiseDO.getFranchiseFeeFrequency()); + contractInformationDTO.setBrandUseFeeFrequency(signFranchiseDO.getBrandUseFeeFrequency()); + contractInformationDTO.setJoinSource(signFranchiseDO.getJoinSource()); + contractInformationDTO.setManageFeeFrequency(signFranchiseDO.getManageFeeFrequency()); + contractInformationDTO.setDiscountAmount(signFranchiseDO.getDiscountAmount()); + + //老店转加盟(也叫直营转加盟) if (SignTypeEnum.DIRECT_SALES_TO_JOINING.getCode().equals(signFranchiseDO.getSignType())){ contractInformationDTO.setOldShopCode(signFranchiseDO.getOldShopCode());