Merge branch 'cc_20250905_franchiseAgreement' into 'master'

Cc 20250905 franchise agreement

See merge request hangzhou/java/custom_zxjp!199
This commit is contained in:
苏竹红
2025-12-02 09:56:59 +00:00
29 changed files with 1689 additions and 93 deletions

View File

@@ -300,6 +300,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),
@@ -323,8 +324,10 @@ public enum ErrorCodeEnum {
WALLET_OPEN_ACCOUNT_FAIL(1620001,"钱包开通失败",null),
WALLET_WITH_DRAWER_FAIL(1620002,"提现失败",null),
WALLET_API_ERROR(1620003,"{0}",null),
;
CURRENT_BRAND_SORT_NUMBER_EXIST(16100007,"当前品牌已存在该排序数字!",null),
CONTRACT_CONFIG_NOT_EXIST(16100008,"合同配置不存在!",null);
;
protected static final Map<Integer, ErrorCodeEnum> map = Arrays.stream(values()).collect(

View File

@@ -14,20 +14,27 @@ import java.util.stream.Collectors;
* @注释:
*/
public enum FranchiseBrandEnum {
ZXJP(1,"正新鸡排","option486"),
ZXSMZ(2,"正新三明治","option622"),
ZJS(3,"正烧记","option488"),
DGMX(4,"大鼓米线","option624"),
CXM(5,"串小妹","option626"),
MZG(6,"茂掌柜","option490");
ZXJP(1,"正新鸡排","option486","上海正新食品集团有限公司","海南正新多品牌管理有限公司"),
ZXSMZ(2,"正新三明治","option622","",""),
ZJS(3,"正烧记","option488","上海正烧信息科技有限公司","上海正烧信息科技有限公司"),
DGMX(4,"大鼓米线","option624","",""),
CXM(5,"串小妹","option626","",""),
MZG(6,"茂掌柜","option490","","");
private int code;
private String desc;
//红圈通code
/**法大大合同编号*/
private String hqtCode;
FranchiseBrandEnum(int code, String desc,String hqtCode) {
/**品牌方*/
private String brandOwner;
/**收款方*/
private String payeeName;
FranchiseBrandEnum(int code, String desc,String hqtCode,String brandOwner,String payeeName) {
this.code = code;
this.desc = desc;
this.hqtCode = hqtCode;
this.brandOwner = brandOwner;
this.payeeName = payeeName;
}
public int getCode() {
return code;
@@ -40,6 +47,14 @@ public enum FranchiseBrandEnum {
return hqtCode;
}
public String getBrandOwner() {
return brandOwner;
}
public String getPayeeName() {
return payeeName;
}
public static String getDescByCode(String code) {
if (StringUtils.isBlank(code)){
return null;
@@ -52,6 +67,20 @@ public enum FranchiseBrandEnum {
}
return null;
}
public static FranchiseBrandEnum getEnumByCode(String code) {
if (StringUtils.isBlank(code)){
return null;
}
int i = Integer.parseInt(code);
for (FranchiseBrandEnum e : FranchiseBrandEnum.values()) {
if (i == e.getCode()) {
return e;
}
}
return null;
}
public static String getDescByCode(Integer code) {
if (code==null){
return null;

View File

@@ -0,0 +1,67 @@
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 ContractConfigDO queryContractConfigById(Long id){
return contractConfigMapper.selectByPrimaryKey(id);
}
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);
}
/**
* 合同配置列表
* @param brand
* @return
*/
public List<ContractConfigDO> queryContractConfigList(String brand) {
return contractConfigMapper.queryContractConfigList(brand);
}
/**
* 根据加盟品牌与加盟模式 查出所有的未删除状态的合并合同
* @param brand
* @param mode
* @return
*/
public List<ContractConfigDO> queryContractConfigListByBrandAndMode(String brand,String mode) {
return contractConfigMapper.queryContractConfigListByBrandAndMode(brand,mode);
}
public void deleteContractConfig(Long id) {
contractConfigMapper.deleteByPrimaryKey(id);
}
}

View File

@@ -1,6 +1,8 @@
package com.cool.store.dao;
import com.alibaba.excel.util.CollectionUtils;
import com.alibaba.excel.util.StringUtils;
import com.cool.store.dto.contract.ContractCallbackDTO;
import com.cool.store.entity.SignFranchiseDO;
import com.cool.store.mapper.SignFranchiseMapper;
import org.apache.ibatis.annotations.Param;
@@ -38,4 +40,11 @@ public class SignFranchiseDAO {
public SignFranchiseDO selectByShopId(Long shopId){
return signFranchiseMapper.selectByShopId(shopId);
}
public void updateAuditByShopId(Long auditId, Long shopId, ContractCallbackDTO dto){
if (dto==null || (StringUtils.isEmpty(dto.getReason())&&dto.getInfoConsistencyFlag()==null)){
return;
}
signFranchiseMapper.updateAuditByShopId(auditId,shopId,dto);
}
}

View File

@@ -0,0 +1,18 @@
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> {
ContractConfigDO queryContractConfigByBrand(String brand, Integer serialNumber);
List<ContractConfigDO> queryContractConfigList(String brand);
List<ContractConfigDO> queryContractConfigListByBrandAndMode(String brand, String mode);
}

View File

@@ -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> {
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<SignFranchiseDO> selectByShopIds( @Param("list")List<Long> shopIds);
Integer dateHandle();

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cool.store.mapper.ContractConfigMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.ContractConfigDO">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="brand" jdbcType="VARCHAR" property="brand" />
<result column="contract_name" jdbcType="VARCHAR" property="contractName" />
<result column="party_a" jdbcType="VARCHAR" property="partyA" />
<result column="party_b" jdbcType="VARCHAR" property="partyB" />
<result column="party_c" jdbcType="VARCHAR" property="partyC" />
<result column="franchise_mode" jdbcType="VARCHAR" property="franchiseMode" />
<result column="fadada_template_id" jdbcType="VARCHAR" property="fadadaTemplateId" />
<result column="serial_number" jdbcType="INTEGER" property="serialNumber" />
<result column="payee_name" jdbcType="VARCHAR" property="payeeName"/>
<result column="deleted" jdbcType="TINYINT" property="deleted" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<select id="queryContractConfigByBrand" resultMap="BaseResultMap">
select * from xfsg_contract_config where brand = #{brand} and serial_number = #{serialNumber} and deleted = 0
</select>
<select id="queryContractConfigList" resultMap="BaseResultMap">
select * from xfsg_contract_config
where deleted = 0
<if test="brand!=null and brand !=''">
and brand = #{brand}
</if>
</select>
<select id="queryContractConfigListByBrandAndMode" resultMap="BaseResultMap">
select * from xfsg_contract_config
where deleted = 0
<if test="brand!=null and brand !=''">
and brand = #{brand}
</if>
<if test="mode!=null and mode !=''">
and franchise_mode like concat('%,',#{mode},',%')
</if>
</select>
</mapper>

View File

@@ -3,7 +3,19 @@
<mapper namespace="com.cool.store.mapper.SignFranchiseMapper">
<update id="updateAuditByShopId">
update xfsg_sign_franchise
set audit_id = #{auditId}
<set>
<if test="auditId!=null">
audit_id = #{auditId},
</if>
<if test="dto!=null">
<if test="dto.infoConsistencyFlag != null">
info_consistency_flag = #{dto.infoConsistencyFlag},
</if>
<if test="dto.reason != null and dto.reason != ''">
reason = #{dto.reason},
</if>
</if>
</set>
where shop_id = #{shopId}
</update>
<update id="dateHandle">

View File

@@ -0,0 +1,102 @@
package com.cool.store.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author suzhuhong
* @Date 2025/9/8 10:13
* @Version 1.0
*/
@Data
public class ContractInformationDTO {
@ApiModelProperty("门店ID")
private Long shopId;
@ApiModelProperty("门店名称")
private String shopName;
@ApiModelProperty("签约人1名称")
private String sign1Name;
@ApiModelProperty("签约人2名称")
private String sign2Name;
@ApiModelProperty("加盟模式")
private Integer joinModel;
@ApiModelProperty("每年加盟费")
private String yearFranchiseFee;
@ApiModelProperty("保证金")
private String loanMargin;
@ApiModelProperty("第一年度管理费")
private String firstYearManagementFee;
@ApiModelProperty("第一年度品牌使用费")
private String firstYearFee;
@ApiModelProperty("设计费")
private String performanceBond;
@ApiModelProperty("收款方名称")
private String payeeName;
@ApiModelProperty("品牌方")
private String brandOwner;
@ApiModelProperty("老店编码 签约类型选择老店转加盟时有")
private String oldShopCode;
@ApiModelProperty("合同编号")
private String contractNo;
@ApiModelProperty("币种")
private String currency;
@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 = "加盟来源 other-其他 招商会-investment 加盟商推荐-partner_recommend 自然流量-organic_traffic 员工推荐-employee_recommend ")
private String joinSource;
@ApiModelProperty(name = "签约形式 纸质合同-paper_contract 电子合同-electronic_contract 已付款未签约-paid_but_not_signed")
private String signModality;
@ApiModelProperty(name = "加盟费频率")
private Integer franchiseFeeFrequency;
@ApiModelProperty(name = "品牌使用费频率")
private Integer brandUseFeeFrequency;
@ApiModelProperty(name = "管理费频率")
private Integer manageFeeFrequency;
@ApiModelProperty(name = "管理费频率")
private String discountAmount;
@ApiModelProperty(name = "提交人")
private String summitUserName;
@ApiModelProperty(name = "签约人地址")
private String signerAddress;
@ApiModelProperty(name = "签约人手机号")
private String signerPhone;
@ApiModelProperty(name = "合同使用年限")
private Integer contractServiceLife;
@ApiModelProperty(name = "合同开始时间")
private String contractStartTime;
@ApiModelProperty(name = "合同结束时间")
private String contractEndTime;
}

View File

@@ -0,0 +1,19 @@
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;
private String storeCode;
}

View File

@@ -0,0 +1,53 @@
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("乙方名称")
private String partyB;
@ApiModelProperty(" 丙方名称")
private String partyC;
@ApiModelProperty("加盟模式 多选 用逗号隔开")
private List<String> franchiseModeList;
@ApiModelProperty("法大大模板ID")
private String fadadaTemplateId;
@ApiModelProperty("序号")
@NotNull(message = "序号不能为空")
private Integer serialNumber;
@ApiModelProperty("收款方名称")
private String payeeName;
}

View File

@@ -0,0 +1,167 @@
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
*/
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<FranchiseModeDTO> 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;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getContractName() {
return contractName;
}
public void setContractName(String contractName) {
this.contractName = contractName;
}
public String getPartyA() {
return partyA;
}
public void setPartyA(String partyA) {
this.partyA = partyA;
}
public String getPartyB() {
return partyB;
}
public void setPartyB(String partyB) {
this.partyB = partyB;
}
public String getPartyC() {
return partyC;
}
public void setPartyC(String partyC) {
this.partyC = partyC;
}
public void setFranchiseModeList(List<FranchiseModeDTO> franchiseModeList) {
this.franchiseModeList = franchiseModeList;
}
public String getFadadaTemplateId() {
return fadadaTemplateId;
}
public void setFadadaTemplateId(String fadadaTemplateId) {
this.fadadaTemplateId = fadadaTemplateId;
}
public Integer getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(Integer serialNumber) {
this.serialNumber = serialNumber;
}
public String getPayeeName() {
return payeeName;
}
public void setPayeeName(String payeeName) {
this.payeeName = payeeName;
}
public String getFranchiseMode() {
return franchiseMode;
}
public void setFranchiseMode(String franchiseMode) {
this.franchiseMode = franchiseMode;
}
public List<FranchiseModeDTO> getFranchiseModeList(){
String[] split = this.franchiseMode.split(",");
ArrayList<FranchiseModeDTO> 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;
}
}

View File

@@ -0,0 +1,44 @@
package com.cool.store.dto.contract;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
/**
* @Author suzhuhong
* @Date 2025/9/9 13:35
* @Version 1.0
*/
@Data
public class PushContractDTO {
/**
* 品牌
*/
@ApiModelProperty("品牌方名称")
private String brand;
@ApiModelProperty("合同名称")
private String contractName;
@ApiModelProperty("甲方名称")
private String partyA;
@ApiModelProperty("乙方名称")
private String partyB;
@ApiModelProperty("丙方名称")
private String partyC;
@ApiModelProperty("法大大模板ID")
private String fadadaTemplateId;
@ApiModelProperty("合同签约顺序")
private Integer serialNumber;
@ApiModelProperty("收款方名称")
private String payeeName;
}

View File

@@ -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;
}

View File

@@ -0,0 +1,297 @@
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;
}
public Integer getDeleted() {
return deleted;
}
public void setDeleted(Integer deleted) {
this.deleted = deleted;
}
/**
* 获取主键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;
}
}

View File

@@ -86,4 +86,102 @@ public class SignFranchiseDO {
//是否统管 1-统管0-不统管',
@Column(name = "unified_management")
private Integer unifiedManagement;
/**
* 信息是否一致 财务使用
*/
@Column(name = "info_consistency_flag")
private Integer infoConsistencyFlag;
/**
* 不一致原因
*/
@Column(name = "reason")
private String reason;
@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;
@Column(name = "create_user_id")
private String createUserId;
@Column(name = "update_user_id")
private String updateUserId;
@Column(name = "currency")
private String currency;
@Column(name = "contract_service_life")
private Integer contractServiceLife;
}

View File

@@ -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;
@@ -148,6 +149,91 @@ public class AddSignFranchiseRequest {
@ApiModelProperty("是否统管 1-统管0-不统管")
private Integer unifiedManagement;
@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;
@ApiModelProperty("币种")
private String currency;
@ApiModelProperty("合同使用年限")
private Integer contractServiceLife;
public SignFranchiseDO toSignFranchiseDO() {
@@ -161,6 +247,7 @@ public class AddSignFranchiseRequest {
signFranchiseDO.setContractStartTime(this.contractStartTime);
signFranchiseDO.setContractEndTime(this.contractStartEndTime);
signFranchiseDO.setImpressionNum(this.impressionNum);
signFranchiseDO.setOldShopCode(this.oldShopCode);
// signFranchiseDO.setBusinessStartHours(setMill(this.businessStartHours));
// signFranchiseDO.setBusinessEndHours(setMill(this.businessEndHours));
// signFranchiseDO.setIrregularReason(this.irregularReason);
@@ -180,6 +267,20 @@ 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);
signFranchiseDO.setCurrency(this.currency);
signFranchiseDO.setContractServiceLife(this.contractServiceLife);
return signFranchiseDO;
}

View File

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel;
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.Date;
@@ -46,7 +47,7 @@ public class AddSignFranchiseResponse {
private Date contractStartTime;
@ApiModelProperty("合同结束日期")
private Date contractStartEndTime;
private Date contractEndTime;
@ApiModelProperty("用印次数")
private String impressionNum;
@@ -240,10 +241,95 @@ public class AddSignFranchiseResponse {
@ApiModelProperty("是否统管 1-统管0-不统管")
private Integer unifiedManagement;
@ApiModelProperty("信息是否一致")
private Integer infoConsistencyFlag;
@ApiModelProperty("不一致原因")
private String reason;
@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 cashierFee;
/**
* 签约形式
*/
@ApiModelProperty("签约形式")
private String signModality;
/**
* 加盟费频率
*/
@ApiModelProperty("加盟费频率")
private Integer franchiseFeeFrequency;
/**
* 品牌使用费频率
*/
@ApiModelProperty("品牌使用费频率")
private Integer brandUseFeeFrequency;
/**
* 管理费频率
*/
@ApiModelProperty("管理费频率")
private Integer manageFeeFrequency;
/**
* 加盟费折扣金额
*/
@ApiModelProperty("加盟费折扣金额")
private String discountAmount;
@ApiModelProperty("收银费(系统费)大写")
private String bigCashierFee;
@Column(name = "currency")
private String currency;
@Column(name = "contract_service_life")
private Integer contractServiceLife;
}

View File

@@ -0,0 +1,48 @@
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<ContractListDTO> queryContractConfigList(QueryContractListDTO queryContractListDTO);
/**
* 删除配置
* @param id
* @return
*/
Boolean deleteContractConfig(Long id);
}

View File

@@ -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);

View File

@@ -42,6 +42,15 @@ public interface SignFranchiseService {
*/
Boolean rePay(Long shopId);
/**
* 回退到缴费阶段
* @param shopId
* @return
*/
Boolean backPayFeeStage(AuditApproveRequest request, LoginUserInfo user);
Integer dateHandle();
HqtBuildRequest getHqtBuildRequest(Long shopId);

View File

@@ -0,0 +1,96 @@
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.cool.store.utils.poi.constant.Constants;
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 + ",");
}
contractConfigDAO.updateContractConfig(contractConfigDO);
return Boolean.TRUE;
}
@Override
public PageInfo<ContractListDTO> queryContractConfigList(QueryContractListDTO queryContractListDTO) {
PageHelper.startPage(queryContractListDTO.getPageNum(), queryContractListDTO.getPageSize());
List<ContractConfigDO> contractConfigDOList = contractConfigDAO.queryContractConfigList(queryContractListDTO.getBrand());
if (CollectionUtils.isEmpty(contractConfigDOList)){
return new PageInfo<>();
}
PageInfo contractConfigDOPageInfo = new PageInfo<>(contractConfigDOList);
List<ContractListDTO> result = new ArrayList<>();
contractConfigDOList.forEach(contractConfigDO -> {
ContractListDTO contractListDTO = new ContractListDTO();
BeanUtils.copyProperties(contractConfigDO, contractListDTO);
result.add(contractListDTO);
});
contractConfigDOPageInfo.setList( result);
return contractConfigDOPageInfo;
}
@Override
public Boolean deleteContractConfig(Long id) {
ContractConfigDO contractConfigDO = contractConfigDAO.queryContractConfigById(id);
if (contractConfigDO == null){
throw new ServiceException(ErrorCodeEnum.CONTRACT_CONFIG_NOT_EXIST);
}
contractConfigDO.setDeleted(Constants.ONE_INTEGER);
//修改配置状态
contractConfigDAO.updateContractConfig(contractConfigDO);
return Boolean.TRUE;
}
}

View File

@@ -109,9 +109,9 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService {
@Transactional(rollbackFor = Exception.class)
public Boolean update(FranchiseFeeRequest request) {
ShopStageInfoDO shopStageInfo = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_7);
if (shopStageInfo.getShopSubStageStatus().equals(SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus())){
throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE);
}
// if (shopStageInfo.getShopSubStageStatus().equals(SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus())){
// throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE);
// }
FranchiseFeeDO franchiseFeeDO = request.toFranchiseFeeDO();
FranchiseFeeDO franchiseFeeDO1 = franchiseFeeMapper.selectByShopId(request.getShopId());
if (Objects.nonNull(franchiseFeeDO1)) {
@@ -236,9 +236,9 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService {
return ApiResponse.error(ErrorCodeEnum.SHOP_ID_NOT_EXIST);
}
FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId());
if (XGJCollectionStatusEnum.COMPLETED.getCode().equals(franchiseFeeDO.getXgjCollectionStatus())){
return ApiResponse.error(ErrorCodeEnum.XGJ_COLLECTION_STATUS_COMPLETE);
}
// if (XGJCollectionStatusEnum.COMPLETED.getCode().equals(franchiseFeeDO.getXgjCollectionStatus())){
// return ApiResponse.error(ErrorCodeEnum.XGJ_COLLECTION_STATUS_COMPLETE);
// }
franchiseFeeDO.setXgjCollectionStatus(request.getPaymentStatus());
franchiseFeeDO.setXgjRemainderPayableAmount(request.getRemainingFee());
franchiseFeeDO.setXgjFeesPaid(request.getPaidFees());
@@ -250,12 +250,18 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService {
LinePayDO lastPay = linePayMapper.getLastPay(franchiseFeeDO.getShopId());
lastPay.setRemark(lastPay.getRemark()+"系统监测到您多缴费"+request.getPaidFees().subtract(request.getPayableFee())+"元 请申请退款或留做他用!");
linePayMapper.updateByPrimaryKeySelective(lastPay);
ShopStageInfoDO shopStageStatus = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_8);
if (SHOP_SUB_STAGE_STATUS_00.getShopSubStageStatus().equals(shopStageStatus.getShopSubStageStatus())){
shopStageInfoDAO.batchUpdateShopStageStatus(request.getShopId(),Arrays.asList(SHOP_SUB_STAGE_STATUS_73,SHOP_SUB_STAGE_STATUS_80));
}
}
franchiseFeeMapper.updateByPrimaryKeySelective(franchiseFeeDO);
if (XGJCollectionStatusEnum.COMPLETED.getCode().equals(request.getPaymentStatus())){
ShopStageInfoDO shopStageStatus = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_8);
if (SHOP_SUB_STAGE_STATUS_00.getShopSubStageStatus().equals(shopStageStatus.getShopSubStageStatus())){
shopStageInfoDAO.batchUpdateShopStageStatus(request.getShopId(),Arrays.asList(SHOP_SUB_STAGE_STATUS_73,SHOP_SUB_STAGE_STATUS_80));
}
}
return ApiResponse.success(Boolean.TRUE);
}

View File

@@ -32,20 +32,17 @@ import com.cool.store.service.UserAuthMappingService;
import com.cool.store.utils.CoolDateUtils;
import com.cool.store.utils.RedisConstantUtil;
import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.UUIDUtils;
import com.cool.store.utils.poi.DateUtils;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.utils.poi.constant.Constants;
import com.cool.store.vo.LinePayVO;
import com.cool.store.vo.PartnerUserInfoVO;
import jdk.nashorn.internal.codegen.types.BooleanType;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource;
import java.math.BigDecimal;

View File

@@ -1,6 +1,8 @@
package com.cool.store.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.dto.*;
import com.cool.store.dto.contract.ContractCallbackDTO;
import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dao.EnterpriseUserRoleDao;
import com.cool.store.dao.StoreDao;
@@ -139,6 +141,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) {
@@ -327,6 +334,7 @@ public class PushServiceImpl implements PushService {
}
}
private <T> T executeApiCall(String url, Object requestBody, Class<T> responseType, String username, String secret){
return executePostApiCall(url,requestBody,responseType,username,secret,null);
}

View File

@@ -5,10 +5,13 @@ import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.dao.*;
import com.cool.store.dto.ContractInformationDTO;
import com.cool.store.dao.decoration.DecorationTeamConfigDAO;
import com.cool.store.dao.decoration.ShopDecorationAssignDAO;
import com.cool.store.dao.decoration.TeamAreaMappingDAO;
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.entity.decoration.DecorationTeamConfigDO;
import com.cool.store.entity.decoration.ShopDecorationAssignDO;
@@ -33,6 +36,7 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import sun.font.Decoration;
@@ -69,6 +73,8 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
private EnterpriseUserRoleDao enterpriseUserRoleDao;
@Resource
SignFranchiseMapper signFranchiseMapper;
@Resource
SignFranchiseDAO signFranchiseDAO;
@Resource
UserAuthMappingService userAuthMappingService;
@@ -130,6 +136,10 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
@Resource
OperationLogDAO operationLogDAO;
@Resource
ContractConfigDAO contractConfigDAO;
@Resource
PushService pushService;
@Resource
TeamAreaMappingDAO teamAreaMappingDAO;
@Resource
DecorationTeamConfigDAO decorationTeamConfigDAO;
@@ -142,40 +152,40 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
@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<String, String> 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<String, String> 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;
}
@@ -198,6 +208,10 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
if (StringUtils.isNotEmpty(request.getShopName())&&request.getShopName().matches("^店铺.$")) {
throw new ServiceException(ErrorCodeEnum.SYSTEM_NAME_NOT__SUPPORT);
}
//校验金额
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);
@@ -214,6 +228,7 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
if (Boolean.TRUE.equals(acquired)) {
SignFranchiseDO signFranchiseDO = request.toSignFranchiseDO();
if (Objects.isNull(request.getId())) {
signFranchiseDO.setCreateUserId(user.getUserId());
signFranchiseMapper.insertSelective(signFranchiseDO);
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_83);
//发送通知
@@ -234,7 +249,22 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
OperationTypeEnum.OPERATION_TYPE_1, "加盟签约合同审批", OperationStatusEnum.NOT_PROCESSED);
} else {
//修改签约人信息
signFranchiseMapper.updateByPrimaryKeySelective(signFranchiseDO);
//如果已经签约 修改之后从新推送数据到新管家
ShopStageInfoDO shopSubStageInfo = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_8);
if (shopSubStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_84.getShopSubStageStatus())){
//如果已经签约 修改之后从新推送数据
ContractCallbackDTO contractCallbackDTO = pushContractRequest(shopInfoDO, request.getShopId());
if (!Objects.isNull(contractCallbackDTO)){
if (StringUtils.isNoneEmpty(contractCallbackDTO.getStoreCode())){
shopInfoDO.setShopCode(contractCallbackDTO.getStoreCode());
shopInfoDAO.updateShopInfo(shopInfoDO);
}
signFranchiseDAO.updateAuditByShopId(null, request.getShopId(),contractCallbackDTO);
}
}
}
//修改shop & point
updateShopAndPoint(request, shopInfoDO, pointInfoById);
@@ -266,6 +296,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();
@@ -296,6 +330,44 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
return Boolean.TRUE;
}
/**
* 费用校验
* @param request
* @return
*/
private Boolean feeCheck(AddSignFranchiseRequest request){
//查询账单金额
FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId());
//正新鸡排
if (franchiseFeeDO.getYearFranchiseFee()!=null&&request.getContractFranchiseFee()!=null&&!request.getContractFranchiseFee().equals(franchiseFeeDO.getYearFranchiseFee())){
return Boolean.FALSE;
}
//合同设计费
if (franchiseFeeDO.getPerformanceBond()!=null&&request.getContractPerformanceBond()!=null&&!request.getContractPerformanceBond().equals(franchiseFeeDO.getPerformanceBond())){
return Boolean.FALSE;
}
//品牌使用费
if (franchiseFeeDO.getFirstYearFee()!=null&&request.getContractBrandUseFee()!=null&&!request.getContractBrandUseFee().equals(franchiseFeeDO.getFirstYearFee())){
return Boolean.FALSE;
}
//合同保证金
if (franchiseFeeDO.getLoanMargin()!=null&&request.getContractLoanMargin()!=null&&!request.getContractLoanMargin().equals(franchiseFeeDO.getLoanMargin())){
return Boolean.FALSE;
}
//合同管理费
if (franchiseFeeDO.getFirstYearManageFee()!=null&&request.getContractManageFee()!=null&&!request.getContractManageFee().equals(franchiseFeeDO.getFirstYearManageFee())){
return Boolean.FALSE;
}
if (franchiseFeeDO.getCashierFee()!=null&&request.getContractSysUserFee()!=null&&!request.getContractSysUserFee().equals(franchiseFeeDO.getCashierFee())){
return Boolean.FALSE;
}
return Boolean.TRUE;
}
private void updateShopAndPoint(AddSignFranchiseRequest request, ShopInfoDO shopInfoDO, PointInfoDO pointInfoById) {
//店铺信息
shopInfoDO.setManagerRegionId(request.getManagerRegionId());
@@ -379,6 +451,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());
@@ -444,8 +517,9 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
//初始化数据
preparationService.contractAndBuildStoreCompletion(request.getShopId());
SignFranchiseDO signFranchiseDO = signFranchiseMapper.selectByShopId(shopId);
log.info("加盟合同审批时签约类型:{}", SignTypeEnum.getDescByCode(signFranchiseDO.getSignType()));
//推送数据
contractCallbackDTO = pushContractRequest(shopInfoDO, request.getShopId());
Boolean sendNotice = Boolean.TRUE;
commonService.sendSms(lineInfoDO.getMobile(), SMSMsgEnum.SIGN_CONTRACT);
if (sendNotice) {
@@ -469,7 +543,11 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
}
shopAuditInfoMapper.insertSelective(shopAuditInfoDO);
Long auditId = shopAuditInfoDO.getId();
signFranchiseMapper.updateAuditByShopId(auditId, shopId);
if (contractCallbackDTO!=null&&StringUtils.isNotEmpty(contractCallbackDTO.getStoreCode())){
shopInfoDO.setShopCode(contractCallbackDTO.getStoreCode());
shopInfoMapper.updateByPrimaryKeySelective(shopInfoDO);
}
signFranchiseDAO.updateAuditByShopId(auditId, shopId,contractCallbackDTO);
//审批记录表记录
List<OperationLogDO> operationLogs = operationLogDAO.getBySubStageStatusEnumAndsStatus(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_83, OperationTypeEnum.OPERATION_TYPE_1.getCode());
operationLogService.batchUpdateProcessed(operationLogs, auditId, user.getUserId(), request.getCause());
@@ -487,6 +565,84 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
}
}
/**
* 推送合同信息请求
* @param shopId
*/
private ContractCallbackDTO pushContractRequest(ShopInfoDO shopInfoDO,Long shopId){
//推送法大大数据
//查询缴费信息
FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(shopId);
SignFranchiseDO signFranchiseDO = signFranchiseMapper.selectByShopId(shopId);
String userName = "";
if (signFranchiseDO != null){
userName = enterpriseUserDAO.getUserName(signFranchiseDO.getCreateUserId());
}
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(shopInfoDO.getLineId());
log.info("加盟合同审批时签约类型:{}", SignTypeEnum.getDescByCode(signFranchiseDO.getSignType()));
ContractInformationDTO contractInformationDTO = new ContractInformationDTO();
if (Objects.nonNull(lineInfo)){
contractInformationDTO.setSignerAddress(lineInfo.getLiveAddress());
contractInformationDTO.setSignerPhone(lineInfo.getMobile());
}
//自营店 无缴费信息 不需要校验
if (franchiseFeeDO != null){
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.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());
contractInformationDTO.setSummitUserName(userName);
contractInformationDTO.setCurrency(signFranchiseDO.getCurrency());
contractInformationDTO.setContractStartTime(DateUtils.dateTime(signFranchiseDO.getContractStartTime()));
contractInformationDTO.setContractEndTime(DateUtils.dateTime(signFranchiseDO.getContractEndTime()));
contractInformationDTO.setContractServiceLife(signFranchiseDO.getContractServiceLife());
//老店转加盟(也叫直营转加盟)
if (SignTypeEnum.DIRECT_SALES_TO_JOINING.getCode().equals(signFranchiseDO.getSignType())){
contractInformationDTO.setOldShopCode(signFranchiseDO.getOldShopCode());
}
FranchiseBrandEnum enumByCode = FranchiseBrandEnum.getEnumByCode(shopInfoDO.getFranchiseBrand());
if (enumByCode != null){
contractInformationDTO.setPayeeName(enumByCode.getPayeeName());
contractInformationDTO.setBrandOwner(enumByCode.getBrandOwner());
}
contractInformationDTO.setContractNo(signFranchiseDO.getContractCode());
try {
return pushService.pushContract(contractInformationDTO);
} catch (Exception e) {
log.error("推送合同信息失败", e);
}
}
return null;
}
@Override
public HqtBuildRequest getHqtBuildRequest(Long shopId) {
ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId);
@@ -562,35 +718,7 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
addSignFranchiseResponse.setManagerRegionName(managerRegion.getName());
}
if (Objects.nonNull(signFranchiseDO)) {
addSignFranchiseResponse.setUnifiedManagement(signFranchiseDO.getUnifiedManagement());
addSignFranchiseResponse.setId(signFranchiseDO.getId());
addSignFranchiseResponse.setShopId(signFranchiseDO.getShopId());
addSignFranchiseResponse.setSignType(signFranchiseDO.getSignType());
addSignFranchiseResponse.setBrandFee(signFranchiseDO.getBrandFee());
addSignFranchiseResponse.setIsBusinessLicense(signFranchiseDO.getIsBusinessLicense());
addSignFranchiseResponse.setIsFoodLicense(signFranchiseDO.getIsFoodLicense());
addSignFranchiseResponse.setContractStartTime(signFranchiseDO.getContractStartTime());
addSignFranchiseResponse.setContractStartEndTime(signFranchiseDO.getContractEndTime());
addSignFranchiseResponse.setImpressionNum(signFranchiseDO.getImpressionNum());
addSignFranchiseResponse.setBusinessStartHours(signFranchiseDO.getBusinessStartHours());
addSignFranchiseResponse.setBusinessEndHours(signFranchiseDO.getBusinessEndHours());
addSignFranchiseResponse.setIrregularReason(signFranchiseDO.getIrregularReason());
addSignFranchiseResponse.setRemark(signFranchiseDO.getRemark());
addSignFranchiseResponse.setResign(signFranchiseDO.getResign());
addSignFranchiseResponse.setMobile(signFranchiseDO.getMobile());
addSignFranchiseResponse.setContractCode(signFranchiseDO.getContractCode());
addSignFranchiseResponse.setContractAmount(signFranchiseDO.getContractAmount());
addSignFranchiseResponse.setPartnershipSignatoryFirst(signFranchiseDO.getPartnershipSignatoryFirst());
addSignFranchiseResponse.setPartnershipSignatorySecond(signFranchiseDO.getPartnershipSignatorySecond());
addSignFranchiseResponse.setBusinessModel(signFranchiseDO.getBusinessModel());
addSignFranchiseResponse.setPartnershipSignatorySecondIdNumber(signFranchiseDO.getPartnershipSignatorySecondIdNumber());
addSignFranchiseResponse.setPartnershipSignatorySecondMobile(signFranchiseDO.getPartnershipSignatorySecondMobile());
addSignFranchiseResponse.setProtectiveDistance(signFranchiseDO.getProtectiveDistance());
addSignFranchiseResponse.setIntroducer(signFranchiseDO.getIntroducer());
addSignFranchiseResponse.setIntroduceStore(signFranchiseDO.getIntroduceStore());
addSignFranchiseResponse.setIntroductionAward(signFranchiseDO.getIntroductionAward());
addSignFranchiseResponse.setPartnershipSignatoryFirstWhichStore(signFranchiseDO.getPartnershipSignatoryFirstWhichStore());
BeanUtils.copyProperties(signFranchiseDO, addSignFranchiseResponse);
} else {
if (Objects.nonNull(franchiseFeeDO)) {
BigDecimal total = convertToBig(franchiseFeeDO.getYearFranchiseFee())
@@ -685,6 +813,27 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
return true;
}
@Override
public Boolean backPayFeeStage(AuditApproveRequest request, LoginUserInfo user) {
//回退到对账中 此阶段账单可编辑 可再次对账
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72);
//缴费阶段回退到未开始
shopStageInfoDAO.updateShopStageToNotStarted(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_8);
ShopAuditInfoDO shopAuditInfoDO = new ShopAuditInfoDO();
shopAuditInfoDO.setShopId(request.getShopId());
shopAuditInfoDO.setAuditType(AuditTypeEnum.SIGN_FRANCHISE.getCode());
shopAuditInfoDO.setSubmittedUserId(user.getUserId());
shopAuditInfoDO.setSubmittedUserName(user.getName());
shopAuditInfoDO.setResultType(Constants.ONE_INTEGER);
shopAuditInfoDO.setRejectReason(request.getCause());
shopAuditInfoMapper.insertSelective(shopAuditInfoDO);
Long auditId = shopAuditInfoDO.getId();
//审批记录表记录
List<OperationLogDO> operationLogs = operationLogDAO.getBySubStageStatusEnumAndsStatus(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_83, OperationTypeEnum.OPERATION_TYPE_1.getCode());
operationLogService.batchUpdateProcessed(operationLogs, auditId, user.getUserId(), "回退到缴费阶段,"+request.getCause());
return true;
}
@Override
public Integer dateHandle() {
return signFranchiseMapper.dateHandle();

View File

@@ -0,0 +1,59 @@
package com.cool.store.controller.webb;
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.response.ResponseResult;
import com.cool.store.service.ContractConfigService;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.xml.ws.Response;
/**
* @Author suzhuhong
* @Date 2025/9/9 10:03
* @Version 1.0
*/
@RestController
@RequestMapping("pc/contract")
@Api(tags = "PC-合同配置")
@Slf4j
public class ContractConfigController {
@Resource
private ContractConfigService contractConfigService;
@PostMapping("/addContractConfig")
@ApiOperation("添加合同配置")
public ResponseResult<Boolean> addContractConfig(@RequestBody @Validated ContractConfigDTO addContractConfigDTO) {
return ResponseResult.success(contractConfigService.addContractConfig(addContractConfigDTO));
}
@PostMapping("/updateContractConfig")
@ApiOperation("更新合同配置")
public ResponseResult<Boolean> updateContractConfig(@RequestBody @Validated ContractConfigDTO addContractConfigDTO) {
return ResponseResult.success(contractConfigService.updateContractConfig(addContractConfigDTO));
}
@PostMapping("/queryContractConfigList")
@ApiOperation("合同配置列表")
public ResponseResult<PageInfo<ContractListDTO>> queryContractConfigList(@RequestBody QueryContractListDTO queryContractListDTO) {
return ResponseResult.success(contractConfigService.queryContractConfigList(queryContractListDTO));
}
@GetMapping("/deleteContractConfig")
@ApiOperation("删除配置")
public ResponseResult<Boolean> deleteContractConfig(Long id) {
return ResponseResult.success(contractConfigService.deleteContractConfig(id));
}
}

View File

@@ -55,6 +55,12 @@ public class PCSignFranchiseController {
return ResponseResult.success(signFranchiseService.rePay(shopId));
}
@ApiOperation("回到缴费阶段")
@PostMapping("/backPayFeeStage")
public ResponseResult<Boolean> backPayFeeStage(@RequestBody @Validated AuditApproveRequest request) {
return ResponseResult.success(signFranchiseService.backPayFeeStage(request, CurrentUserHolder.getUser()));
}
@ApiOperation("数据处理,全部设置为新签")
@GetMapping("/dateHandle")
public ResponseResult<Integer> dateHandle() {

View File

@@ -4,10 +4,13 @@ import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*;
import com.cool.store.dto.*;
import com.cool.store.dto.contract.ContractCallbackDTO;
import com.cool.store.dto.*;
import com.cool.store.dto.huoma.*;
import com.cool.store.dto.wallet.*;
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;
@@ -16,6 +19,7 @@ import com.cool.store.handler.WeChatHandler;
import com.cool.store.job.XxlJobHandler;
import com.cool.store.mapper.FranchiseFeeMapper;
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;
@@ -103,6 +107,9 @@ public class PCTestController {
LinePayService linePayService;
@Resource
LinePayDAO linePayDAO;
@Resource
SignFranchiseMapper signFranchiseMapper;
@Autowired
WeChatHandler weChatHandler;
@GetMapping("/syncStore")
@@ -398,6 +405,44 @@ public class PCTestController {
return ResponseResult.success(Boolean.TRUE);
}
@GetMapping("/pushContract")
@ApiOperation("推送合同信息")
public ResponseResult<Boolean> 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;