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 d59f1e384..2b7cffb86 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 @@ -302,6 +302,8 @@ public enum ErrorCodeEnum { NOT_FLAGSHIP_STORE(16100005,"非直营店,无法跳过缴费阶段!",null), NOT_FLAGSHIP_STORE_NOT_EXIST(16100006,"当前阶段加盟类型不能变更!",null), + + CURRENT_BRAND_SORT_NUMBER_EXIST(16100007,"当前品牌已存在该排序数字!",null), ; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ContractConfigDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ContractConfigDAO.java new file mode 100644 index 000000000..07e0b3c25 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ContractConfigDAO.java @@ -0,0 +1,43 @@ +package com.cool.store.dao; + +import com.cool.store.entity.ContractConfigDO; +import com.cool.store.mapper.ContractConfigMapper; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/9/8 15:37 + * @Version 1.0 + */ +@Repository +public class ContractConfigDAO { + + @Resource + private ContractConfigMapper contractConfigMapper; + + public int addContractConfig(ContractConfigDO contractConfigDO){ + return contractConfigMapper.insertSelective(contractConfigDO); + } + + public int updateContractConfig(ContractConfigDO contractConfigDO){ + return contractConfigMapper.updateByPrimaryKeySelective(contractConfigDO); + } + + /** + * 根据品牌查询对应排序是否存在 + * @param brand + * @param serialNumber + * @return + */ + public ContractConfigDO queryContractConfigByBrand(String brand,Integer serialNumber){ + return contractConfigMapper.queryContractConfigByBrand(brand,serialNumber); + } + + + public List queryContractConfigList(String brand) { + return contractConfigMapper.queryContractConfigList(brand); + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ContractConfigMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ContractConfigMapper.java new file mode 100644 index 000000000..7fffb9113 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ContractConfigMapper.java @@ -0,0 +1,16 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.ContractConfigDO; +import tk.mybatis.mapper.common.Mapper; + +import java.util.List; + +public interface ContractConfigMapper extends Mapper { + + + + ContractConfigDO queryContractConfigByBrand(String brand, Integer serialNumber); + + + List queryContractConfigList(String brand); +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/contractConfigMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/contractConfigMapper.xml new file mode 100644 index 000000000..cfc76f2de --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/contractConfigMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/ContractConfigDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/ContractConfigDTO.java new file mode 100644 index 000000000..d6d3a926c --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/ContractConfigDTO.java @@ -0,0 +1,54 @@ +package com.cool.store.dto.contract; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.persistence.Column; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/9/8 15:52 + * @Version 1.0 + */ +@Data +public class ContractConfigDTO { + + @ApiModelProperty("主键 新建时忽略") + private Long id; + + @ApiModelProperty("品牌") + @NotBlank(message = "品牌不能为空") + private String brand; + + @ApiModelProperty("合同名称") + @NotBlank(message = "合同名称不能为空") + private String contractName; + + @ApiModelProperty("甲方名称") + @NotBlank(message = "甲方名称不能为空") + private String partyA; + + @ApiModelProperty("乙方名称") + @NotBlank(message = "乙方名称不能为空") + private String partyB; + + @ApiModelProperty(" 丙方名称") + private String partyC; + + @ApiModelProperty("加盟模式 多选 用逗号隔开") + private List franchiseModeList; + + @ApiModelProperty("法大大模板ID") + private String fadadaTemplateId; + + @ApiModelProperty("序号") + @NotNull(message = "序号不能为空") + private Integer serialNumber; + + @ApiModelProperty("收款方名称") + private String payeeName; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/ContractListDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/ContractListDTO.java new file mode 100644 index 000000000..50f13a348 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/ContractListDTO.java @@ -0,0 +1,82 @@ +package com.cool.store.dto.contract; + +import com.cool.store.common.PageBasicInfo; +import com.cool.store.enums.JoinModeEnum; +import com.cool.store.utils.StringUtil; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author suzhuhong + * @Date 2025/9/8 16:43 + * @Version 1.0 + */ +@Data +public class ContractListDTO { + + @ApiModelProperty("主键 新建时忽略") + private Long id; + + @ApiModelProperty("品牌") + @NotBlank(message = "品牌不能为空") + private String brand; + + @ApiModelProperty("合同名称") + @NotBlank(message = "合同名称不能为空") + private String contractName; + + @ApiModelProperty("甲方名称") + @NotBlank(message = "甲方名称不能为空") + private String partyA; + + @ApiModelProperty("乙方名称") + @NotBlank(message = "乙方名称不能为空") + private String partyB; + + @ApiModelProperty(" 丙方名称") + private String partyC; + + @ApiModelProperty("加盟模式 多选 用逗号隔开") + private List franchiseModeList; + + @ApiModelProperty("法大大模板ID") + private String fadadaTemplateId; + + @ApiModelProperty("序号") + @NotNull(message = "序号不能为空") + private Integer serialNumber; + + @ApiModelProperty("收款方名称") + private String payeeName; + + private String franchiseMode; + + @Data + protected class FranchiseModeDTO{ + + private String id; + + private String name; + + } + + private List getFranchiseModeList(){ + String[] split = this.franchiseMode.split(","); + ArrayList result = new ArrayList<>(); + Arrays.stream(split).filter(item -> StringUtil.isNotEmpty(item)).forEach(item -> { + FranchiseModeDTO franchiseModeDTO = new FranchiseModeDTO(); + franchiseModeDTO.setId(item); + franchiseModeDTO.setName(JoinModeEnum.getByCode(Integer.parseInt(item))); + result.add(franchiseModeDTO); + }); + return result; + } + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/QueryContractListDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/QueryContractListDTO.java new file mode 100644 index 000000000..6e28fe9e1 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/contract/QueryContractListDTO.java @@ -0,0 +1,16 @@ +package com.cool.store.dto.contract; + +import com.cool.store.common.PageBasicInfo; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/9/8 16:43 + * @Version 1.0 + */ +@Data +public class QueryContractListDTO extends PageBasicInfo { + + private String brand; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/ContractConfigDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/ContractConfigDO.java new file mode 100644 index 000000000..519722000 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/ContractConfigDO.java @@ -0,0 +1,289 @@ +package com.cool.store.entity; + +import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; + +import java.util.Date; +import javax.persistence.*; + +@Table(name = "xfsg_contract_config") +public class ContractConfigDO { + /** + * 主键ID + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + /** + * 品牌 + */ + private String brand; + + /** + * 合同名称 + */ + @Column(name = "contract_name") + private String contractName; + + /** + * 甲方名称 + */ + @Column(name = "party_a") + private String partyA; + + /** + * 乙方名称 + */ + @Column(name = "party_b") + private String partyB; + + /** + * 丙方名称 + */ + @Column(name = "party_c") + private String partyC; + + /** + * 加盟模式 多选 用逗号隔开 + */ + @Column(name = "franchise_mode") + private String franchiseMode; + + /** + * 法大大模板ID + */ + @Column(name = "fadada_template_id") + private String fadadaTemplateId; + + /** + * 序号 + */ + @Column(name = "serial_number") + private Integer serialNumber; + + /** + * 创建时间 + */ + @Column(name = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @Column(name = "update_time") + private Date updateTime; + + @Column(name = "payee_name") + @ApiModelProperty("收款方名称") + private String payeeName; + + @Column(name = "deleted") + private Integer deleted; + + public String getPayeeName() { + return payeeName; + } + + public void setPayeeName(String payeeName) { + this.payeeName = payeeName; + } + + /** + * 获取主键ID + * + * @return id - 主键ID + */ + public Long getId() { + return id; + } + + /** + * 设置主键ID + * + * @param id 主键ID + */ + public void setId(Long id) { + this.id = id; + } + + /** + * 获取品牌 + * + * @return brand - 品牌 + */ + public String getBrand() { + return brand; + } + + /** + * 设置品牌 + * + * @param brand 品牌 + */ + public void setBrand(String brand) { + this.brand = brand; + } + + /** + * 获取合同名称 + * + * @return contract_name - 合同名称 + */ + public String getContractName() { + return contractName; + } + + /** + * 设置合同名称 + * + * @param contractName 合同名称 + */ + public void setContractName(String contractName) { + this.contractName = contractName; + } + + /** + * 获取甲方名称 + * + * @return party_a - 甲方名称 + */ + public String getPartyA() { + return partyA; + } + + /** + * 设置甲方名称 + * + * @param partyA 甲方名称 + */ + public void setPartyA(String partyA) { + this.partyA = partyA; + } + + /** + * 获取乙方名称 + * + * @return party_b - 乙方名称 + */ + public String getPartyB() { + return partyB; + } + + /** + * 设置乙方名称 + * + * @param partyB 乙方名称 + */ + public void setPartyB(String partyB) { + this.partyB = partyB; + } + + /** + * 获取丙方名称 + * + * @return party_c - 丙方名称 + */ + public String getPartyC() { + return partyC; + } + + /** + * 设置丙方名称 + * + * @param partyC 丙方名称 + */ + public void setPartyC(String partyC) { + this.partyC = partyC; + } + + /** + * 获取加盟模式 多选 用逗号隔开 + * + * @return franchise_mode - 加盟模式 多选 用逗号隔开 + */ + public String getFranchiseMode() { + return franchiseMode; + } + + /** + * 设置加盟模式 多选 用逗号隔开 + * + * @param franchiseMode 加盟模式 多选 用逗号隔开 + */ + public void setFranchiseMode(String franchiseMode) { + this.franchiseMode = franchiseMode; + } + + /** + * 获取法大大模板ID + * + * @return fadada_template_id - 法大大模板ID + */ + public String getFadadaTemplateId() { + return fadadaTemplateId; + } + + /** + * 设置法大大模板ID + * + * @param fadadaTemplateId 法大大模板ID + */ + public void setFadadaTemplateId(String fadadaTemplateId) { + this.fadadaTemplateId = fadadaTemplateId; + } + + /** + * 获取序号 + * + * @return serial_number - 序号 + */ + public Integer getSerialNumber() { + return serialNumber; + } + + /** + * 设置序号 + * + * @param serialNumber 序号 + */ + public void setSerialNumber(Integer serialNumber) { + this.serialNumber = serialNumber; + } + + /** + * 获取创建时间 + * + * @return create_time - 创建时间 + */ + public Date getCreateTime() { + return createTime; + } + + /** + * 设置创建时间 + * + * @param createTime 创建时间 + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + /** + * 获取更新时间 + * + * @return update_time - 更新时间 + */ + public Date getUpdateTime() { + return updateTime; + } + + /** + * 设置更新时间 + * + * @param updateTime 更新时间 + */ + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } +} \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ContractConfigService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ContractConfigService.java new file mode 100644 index 000000000..d2b46961c --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ContractConfigService.java @@ -0,0 +1,43 @@ +package com.cool.store.service; + +import com.cool.store.dto.contract.ContractConfigDTO; +import com.cool.store.dto.contract.ContractListDTO; +import com.cool.store.dto.contract.QueryContractListDTO; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageInfo; + +/** + * @Author suzhuhong + * @Date 2025/9/8 15:46 + * @Version 1.0 + */ +public interface ContractConfigService { + + + /** + * 新增配置 + * @param addContractConfigDTO + * @return + */ + Boolean addContractConfig(ContractConfigDTO addContractConfigDTO); + + /** + * 修改配置 + * @param addContractConfigDTO + * @return + */ + Boolean updateContractConfig(ContractConfigDTO addContractConfigDTO); + + + /** + * 查询配置列表 + * @param queryContractListDTO + * @return + */ + PageInfo queryContractConfigList(QueryContractListDTO queryContractListDTO); + + + + + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ContractConfigServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ContractConfigServiceImpl.java new file mode 100644 index 000000000..606010d1a --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ContractConfigServiceImpl.java @@ -0,0 +1,82 @@ +package com.cool.store.service.impl; + +import com.cool.store.dao.ContractConfigDAO; +import com.cool.store.dto.contract.ContractConfigDTO; +import com.cool.store.dto.contract.ContractListDTO; +import com.cool.store.dto.contract.QueryContractListDTO; +import com.cool.store.entity.ContractConfigDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; +import com.cool.store.service.ContractConfigService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author suzhuhong + * @Date 2025/9/8 15:47 + * @Version 1.0 + */ +@Service +public class ContractConfigServiceImpl implements ContractConfigService { + + @Resource + private ContractConfigDAO contractConfigDAO; + + @Override + public Boolean addContractConfig(ContractConfigDTO addContractConfigDTO) { + ContractConfigDO contractConfig = contractConfigDAO.queryContractConfigByBrand(addContractConfigDTO.getBrand(), addContractConfigDTO.getSerialNumber()); + if (contractConfig != null){ + throw new ServiceException(ErrorCodeEnum.CURRENT_BRAND_SORT_NUMBER_EXIST); + } + ContractConfigDO contractConfigDO = new ContractConfigDO(); + BeanUtils.copyProperties(addContractConfigDTO, contractConfigDO); + if (addContractConfigDTO.getFranchiseModeList() != null){ + String modelStr = addContractConfigDTO.getFranchiseModeList().stream().collect(Collectors.joining(",")); + contractConfigDO.setFranchiseMode("," + modelStr + ","); + } + contractConfigDAO.addContractConfig(contractConfigDO); + return Boolean.TRUE; + } + + @Override + public Boolean updateContractConfig(ContractConfigDTO addContractConfigDTO) { + ContractConfigDO contractConfig = contractConfigDAO.queryContractConfigByBrand(addContractConfigDTO.getBrand(), addContractConfigDTO.getSerialNumber()); + if (contractConfig != null && !contractConfig.getId().equals(addContractConfigDTO.getId())){ + throw new ServiceException(ErrorCodeEnum.CURRENT_BRAND_SORT_NUMBER_EXIST); + } + ContractConfigDO contractConfigDO = new ContractConfigDO(); + BeanUtils.copyProperties(addContractConfigDTO, contractConfigDO); + if (addContractConfigDTO.getFranchiseModeList() != null){ + String modelStr = addContractConfigDTO.getFranchiseModeList().stream().collect(Collectors.joining(",")); + contractConfigDO.setFranchiseMode("," + modelStr + ","); + } + return Boolean.TRUE; + } + + @Override + public PageInfo queryContractConfigList(QueryContractListDTO queryContractListDTO) { + PageHelper.startPage(queryContractListDTO.getPageNum(), queryContractListDTO.getPageSize()); + List contractConfigDOList = contractConfigDAO.queryContractConfigList(queryContractListDTO.getBrand()); + if (CollectionUtils.isEmpty(contractConfigDOList)){ + return new PageInfo<>(); + } + PageInfo contractConfigDOPageInfo = new PageInfo<>(contractConfigDOList); + List result = new ArrayList<>(); + contractConfigDOList.forEach(contractConfigDO -> { + ContractListDTO contractListDTO = new ContractListDTO(); + BeanUtils.copyProperties(contractConfigDO, contractListDTO); + result.add(contractListDTO); + }); + contractConfigDOPageInfo.setList( result); + return contractConfigDOPageInfo; + } + + +} 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 49dda1872..645e3f4d3 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 @@ -418,7 +418,6 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu contractInformationDTO.setShopName(shopInfoDO.getShopName()); //品牌信息 - contractInformationDTO.setSign1Name(signFranchiseDO.getPartnershipSignatoryFirst()); contractInformationDTO.setSign2Name(signFranchiseDO.getPartnershipSignatorySecond()); contractInformationDTO.setFirstYearFee(franchiseFeeDO.getFirstYearFee()); @@ -428,9 +427,6 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu contractInformationDTO.setPerformanceBond(franchiseFeeDO.getPerformanceBond()); - - - log.info("加盟合同审批时签约类型:{}", SignTypeEnum.getDescByCode(signFranchiseDO.getSignType())); Boolean sendNotice = Boolean.TRUE; commonService.sendSms(lineInfoDO.getMobile(), SMSMsgEnum.SIGN_CONTRACT);