签约相关

This commit is contained in:
guohb
2024-04-29 16:46:27 +08:00
parent 4690fccb4f
commit a46629e022
8 changed files with 334 additions and 23 deletions

View File

@@ -0,0 +1,50 @@
package com.cool.store.enums;
/**
* 加盟商类型" +
* "0-新加盟商开单店;1-老加盟商开单店;" +
* "2-新加盟商开新区域单店;" +
* "3-新加盟商开老区域单店;" +
* "4-老加盟商开新区域单店;" +
* "5-老加盟商开老区域单店;" +
* "6-直营门店;" +
* "7-同异业转化;" +
* "8-老加盟商迁址开新店
*/
public enum FranchiseeTypeEnum {
ONE(0,"新加盟商开单店"),
TWO(1,"老加盟商开单店"),
THREE(2,"新加盟商开新区域单店"),
FOUR(4,"新加盟商开老区域单店"),
FIVE(5,"老加盟商开老区域单店"),
SIX(6,"直营门店"),
SEVEN(7,"同异业转化"),
EIGHT(8,"老加盟商迁址开新店"),
;
private Integer code;
private String message;
FranchiseeTypeEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
public Integer getCode() {
return code;
}
public String getMessage() {
return message;
}
public static FranchiseeTypeEnum getByCode(Integer code) {
for (FranchiseeTypeEnum franchiseeTypeEnum : FranchiseeTypeEnum.values()) {
if (franchiseeTypeEnum.getCode().equals(code)) {
return franchiseeTypeEnum;
}
}
return null;
}
}

View File

@@ -1,8 +1,10 @@
package com.cool.store.mapper;
import com.cool.store.entity.SignFranchiseDO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
public interface SignFranchiseMapper extends Mapper<SignFranchiseDO> {
SignFranchiseDO selectByShopId(@Param("shopId") Long shopId);
}

View File

@@ -99,8 +99,8 @@
<where>
<if test="keyWord != null and keyWord != ''">
AND (
l.username = #{keyWord}
OR l.mobile = #{keyWord}
l.username like CONCAT('%',#{keyWord},'%')
OR l.mobile like CONCAT('%',#{keyWord},'%')
)
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">

View File

@@ -1,4 +1,9 @@
<?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.SignFranchiseMapper">
<select id="selectByShopId" resultType="com.cool.store.entity.SignFranchiseDO">
select *
from xfsg_sign_franchise
where shop_id = #{shopId}
</select>
</mapper>

View File

@@ -0,0 +1,147 @@
package com.cool.store.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("提交加盟合同签约请求体")
public class AddSignFranchiseResponse {
@ApiModelProperty("主键,更新时才存在")
private Long id;
private Long shopId;
/**
* SignTypeEnum
*/
@ApiModelProperty("签约类型,0.转让 1.新签 2.续签 3.迁址 5.新签同异业转化")
private Integer signType;
@ApiModelProperty("品牌使用费比例")
private String brandFee;
@ApiModelProperty("是否有营业执照 0-是 1-否")
private Integer isBusinessLicense;
@ApiModelProperty("是否有食营 0-是 1-否")
private Integer isFoodLicense;
@ApiModelProperty("合同开始日期")
private Date contractStartTime;
@ApiModelProperty("合同结束日期")
private Date contractStartEndTime;
@ApiModelProperty("用印次数")
private String impressionNum;
@ApiModelProperty("营业开始时间(日期不重要传分秒即可)")
private Date businessStartHours;
@ApiModelProperty("营业结束时间(日期不重要传分秒即可)")
private Date businessEndHours;
@ApiModelProperty("非常规营业时间原因")
private String irregularReason;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("是否补签")
private Integer resign;
@ApiModelProperty("加盟商联系方式")
private String mobile;
@ApiModelProperty("门店名称")
private String storeName;
@ApiModelProperty("门店地址")
private String storeAddress;
@ApiModelProperty("所属大区")
private String bigRegion;
@ApiModelProperty("大区分总")
private String bigRegionManager;
@ApiModelProperty("加盟商类型")
private String franchiseeType;
@ApiModelProperty("交款人")
private String payName;
@ApiModelProperty("营业执照名称")
private String licenseName;
@ApiModelProperty("经营者")
private String operator;
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("社会信用代码")
private String licenseCode;
@ApiModelProperty("经营场所")
private String opeAddress;
@ApiModelProperty("加盟商姓名")
private String partnerName;
@ApiModelProperty("加盟商身份证号")
private String idCardNo;
@ApiModelProperty("加盟商结算账户")
private String bankCardNo;
@ApiModelProperty("开户行")
private String bank;
@ApiModelProperty("支行")
private String subBank;
@ApiModelProperty("身份证地址")
private String idCardAddress;
@ApiModelProperty("交款日期")
private Date payDate;
@ApiModelProperty("每年加盟费")
private String yearFranchiseFee;
@ApiModelProperty("每年加盟费大写")
private String bigYearFranchiseFee;
@ApiModelProperty("贷款保证金")
private String loanMargin;
@ApiModelProperty("贷款保证金大写")
private String bigLoanMargin;
@ApiModelProperty("1开")
private Date firstYearStartTime;
@ApiModelProperty("1结")
private Date firstYearEndTime;
@ApiModelProperty("1费")
private String firstYearFee;
@ApiModelProperty("2开")
private Date secondYearStartTime;
@ApiModelProperty("2结")
private Date secondYearEndTime;
@ApiModelProperty("2费")
private String secondYearFee;
@ApiModelProperty("3开")
private Date thirdYearStartTime;
@ApiModelProperty("3结")
private Date thirdYearEndTime;
@ApiModelProperty("3费")
private String thirdYearFee;
@ApiModelProperty("履约保证金")
private String performanceBond;
@ApiModelProperty("履约保证金大写")
private String bigPerformanceBond;
@ApiModelProperty("享受加盟费和保证金优惠原因")
private String reasons;
}

View File

@@ -1,13 +1,19 @@
package com.cool.store.service;
import com.cool.store.request.AddSignFranchiseRequest;
import com.cool.store.response.AddSignFranchiseResponse;
import com.cool.store.response.ResponseResult;
public interface SignFranchiseService {
/**
* 提交加盟合同签约
*
* @param request
* @return
*/
ResponseResult submitSignFranchise(AddSignFranchiseRequest request);
AddSignFranchiseResponse getSignFranchise(Long shopId);
}

View File

@@ -2,7 +2,6 @@ package com.cool.store.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.context.LoginUserInfo;
@@ -10,6 +9,7 @@ import com.cool.store.dao.ShopStageInfoDAO;
import com.cool.store.entity.*;
import com.cool.store.enums.AuditEnum;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.FranchiseeTypeEnum;
import com.cool.store.enums.SignTypeEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.exception.ServiceException;
@@ -17,11 +17,12 @@ import com.cool.store.mapper.*;
import com.cool.store.request.AddSignFranchiseRequest;
import com.cool.store.request.AuditResultRequest;
import com.cool.store.request.FranchiseAgreementRequest;
import com.cool.store.response.AddSignFranchiseResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.CoolStoreStartFlowService;
import com.cool.store.service.SignFranchiseService;
import com.cool.store.service.SysStoreAppService;
import com.cool.store.utils.poi.DateUtils;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -34,7 +35,7 @@ import java.util.Objects;
@Service
@Slf4j
public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResultService{
public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResultService {
@Resource
SignFranchiseMapper signFranchiseMapper;
@@ -76,15 +77,15 @@ public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResu
@Override
public Boolean auditResult(AuditResultRequest request) {
log.info("SignFranchiseServiceImpl auditResult request{}",JSONObject.toJSONString(request));
log.info("SignFranchiseServiceImpl auditResult request{}", JSONObject.toJSONString(request));
Long shopId = getShopId(request.getKdzBusinessId());
ShopSubStageStatusEnum shopSubStageStatusEnum = null;
if (request.getAuditResult() == 1){
if (request.getAuditResult() == 1) {
shopSubStageStatusEnum = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_84;
}else if (request.getAuditResult() == 0){
} else if (request.getAuditResult() == 0) {
shopSubStageStatusEnum = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_85;
}
shopStageInfoDAO.updateShopStageInfo(shopId,shopSubStageStatusEnum);
shopStageInfoDAO.updateShopStageInfo(shopId, shopSubStageStatusEnum);
return null;
}
@@ -111,7 +112,7 @@ public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResu
}
//店铺信息
ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId());
FranchiseAgreementRequest franchiseAgreementRequest = convertFranchiseAgreement(request,shopInfoDO);
FranchiseAgreementRequest franchiseAgreementRequest = convertFranchiseAgreement(request, shopInfoDO);
MemberQuestionDO memberQuestionDO = joinIntentionMapper.getByLineId(shopInfoDO.getLineId());
ResponseResult responseResult = coolStoreStartFlowService.franchiseAgreement(franchiseAgreementRequest, memberQuestionDO.getJoinType());
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_83);
@@ -120,7 +121,7 @@ public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResu
public FranchiseAgreementRequest convertFranchiseAgreement(AddSignFranchiseRequest request,
ShopInfoDO shopInfoDO){
ShopInfoDO shopInfoDO) {
LoginUserInfo user = CurrentUserHolder.getUser();
//shopId
@@ -142,9 +143,10 @@ public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResu
//证照办理
LicenseTransactDO licenseTransactDO = applyLicenseMapper.selectOne(LicenseTransactDO.builder().shopId(shopId).build());
//三方部门表
ThirdDepartmentDO thirdDepartmentDO= thirdDepartmentMapper.getByName(systemBuildingShopDO.getBigName());
ThirdDepartmentDO thirdDepartmentDO = thirdDepartmentMapper.getByName(systemBuildingShopDO.getBigName());
//找不到的url统一用这个
List<String> temp = new ArrayList<>();temp.add("object");
List<String> temp = new ArrayList<>();
temp.add("object");
Convert.digitToChinese(123);
FranchiseAgreementRequest buildResult = FranchiseAgreementRequest.builder()
.apply_user(user.getJobNumber())
@@ -214,7 +216,7 @@ public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResu
.jmsxm1(lineInfoDO.getUsername())
.jsrq(DateUtils.dateTime(request.getContractStartEndTime()))
.jszhhz(linePayDO.getPayAccount())
.kdzBusinessId(AuditEnum.SIGN_FRANCHISE+"_"+shopId+"_"+lineId)
.kdzBusinessId(AuditEnum.SIGN_FRANCHISE + "_" + shopId + "_" + lineId)
.khhjzh(linePayDO.getBankName())
.lvbzj(Integer.valueOf(franchiseFeeDO.getPerformanceBond()))
.lybzjdx(Integer.valueOf(franchiseFeeDO.getPerformanceBond()))
@@ -237,13 +239,13 @@ public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResu
.remark(request.getRemark())
.remark2(systemBuildingShopDO.getReasons())
.sfbq__add(request.getResign())
.sj1(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,request.getBusinessStartHours()))
.sj2(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,request.getBusinessEndHours()))
.sj1(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END, request.getBusinessStartHours()))
.sj2(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END, request.getBusinessEndHours()))
.social_credit_code(licenseTransactDO.getCreditCode())
.spltxkz(temp)
.sqr_name(user.getName())
.sqrq(DateUtils.getDate())
.title("特许经营合同审批申请2023-"+ lineInfoDO.getUsername() +"-" + DateUtils.getDate())
.title("特许经营合同审批申请2023-" + lineInfoDO.getUsername() + "-" + DateUtils.getDate())
.wlyzbm("201905081151092R")
.yycs(Integer.valueOf(request.getImpressionNum()))
.yyzzblsqs(temp)
@@ -254,4 +256,100 @@ public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResu
return buildResult;
}
@Override
public AddSignFranchiseResponse getSignFranchise(Long shopId) {
SignFranchiseDO signFranchiseDO = signFranchiseMapper.selectByShopId(shopId);
AddSignFranchiseResponse response = from(signFranchiseDO, shopId);
return response;
}
public AddSignFranchiseResponse from(SignFranchiseDO signFranchiseDO,
Long shopId) {
AddSignFranchiseResponse addSignFranchiseResponse = new AddSignFranchiseResponse();
//店铺信息
ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(shopId);
//线索信息
LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(shopInfoDO.getLineId());
//缴费信息
FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectOne(FranchiseFeeDO.builder().shopId(shopId).build());
//线索id
Long lineId = shopInfoDO.getLineId();
//签约信息
SigningBaseInfoDO signingBaseInfoDO = intentAgreementMapper.selectByPartnerIdOrLineId(null, lineId);
//缴款信息
LinePayDO linePayDO = linePayMapper.getLinePayByLineIdAndPayType(lineId, 1);
//铺位信息
PointInfoDO pointInfoDO = pointInfoMapper.getDataByShopIdAndLineId(lineId, shopId);
//建店数据
SystemBuildingShopDO systemBuildingShopDO = systemBuildingShopMapper.selectOne(SystemBuildingShopDO.builder().shopId(shopId).lineId(lineId).build());
//证照办理
LicenseTransactDO licenseTransactDO = applyLicenseMapper.selectOne(LicenseTransactDO.builder().shopId(shopId).build());
if (Objects.nonNull(signFranchiseDO)) {
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.getContractStartEndTime());
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());
} else {
addSignFranchiseResponse.setMobile(lineInfoDO.getMobile());
}
if(Objects.nonNull(systemBuildingShopDO)){
addSignFranchiseResponse.setStoreName(systemBuildingShopDO.getStoreName());
addSignFranchiseResponse.setBigRegion(systemBuildingShopDO.getBigName());
addSignFranchiseResponse.setBigRegionManager(systemBuildingShopDO.getRegioGeneral());
addSignFranchiseResponse.setFranchiseeType(FranchiseeTypeEnum.getByCode(systemBuildingShopDO.getFranchiseeType()).getMessage());
addSignFranchiseResponse.setReasons(systemBuildingShopDO.getReasons());
}
if (Objects.nonNull(pointInfoDO)){
addSignFranchiseResponse.setStoreAddress(pointInfoDO.getAddress());
}
if (Objects.nonNull(linePayDO)){
addSignFranchiseResponse.setPayName(linePayDO.getPayUserName());
addSignFranchiseResponse.setBankCardNo(linePayDO.getPayAccount());
addSignFranchiseResponse.setBank(linePayDO.getBankName());
addSignFranchiseResponse.setSubBank(linePayDO.getBranchBankName());
addSignFranchiseResponse.setPayDate(linePayDO.getPayTime());
}
if (Objects.nonNull(licenseTransactDO)){
addSignFranchiseResponse.setLicenseName(licenseTransactDO.getBusinessLicense());
addSignFranchiseResponse.setOpeAddress(licenseTransactDO.getLicenseAddress());
addSignFranchiseResponse.setOperator(licenseTransactDO.getOperator());
}
if (Objects.nonNull(lineInfoDO)){
addSignFranchiseResponse.setPartnerName(lineInfoDO.getUsername());
}
if (Objects.nonNull(signingBaseInfoDO)){
addSignFranchiseResponse.setIdCardNo(signingBaseInfoDO.getIdCardNo());
addSignFranchiseResponse.setIdCardAddress(signingBaseInfoDO.getIdCardAddress());
}
if (Objects.nonNull(franchiseFeeDO)){
addSignFranchiseResponse.setYearFranchiseFee(franchiseFeeDO.getYearFranchiseFee());
addSignFranchiseResponse.setBigYearFranchiseFee(Convert.digitToChinese(Integer.valueOf(franchiseFeeDO.getYearFranchiseFee())));
addSignFranchiseResponse.setLoanMargin(franchiseFeeDO.getLoanMargin());
addSignFranchiseResponse.setBigLoanMargin(Convert.digitToChinese(Integer.valueOf(franchiseFeeDO.getLoanMargin())));
addSignFranchiseResponse.setFirstYearStartTime(franchiseFeeDO.getFirstYearStartTime());
addSignFranchiseResponse.setFirstYearEndTime(franchiseFeeDO.getFirstYearEndTime());
addSignFranchiseResponse.setFirstYearFee(franchiseFeeDO.getFirstYearFee());
addSignFranchiseResponse.setSecondYearStartTime(franchiseFeeDO.getSecondYearStartTime());
addSignFranchiseResponse.setSecondYearEndTime(franchiseFeeDO.getSecondYearEndTime());
addSignFranchiseResponse.setSecondYearFee(franchiseFeeDO.getSecondYearFee());
addSignFranchiseResponse.setThirdYearStartTime(franchiseFeeDO.getThirdYearStartTime());
addSignFranchiseResponse.setThirdYearEndTime(franchiseFeeDO.getThirdYearEndTime());
addSignFranchiseResponse.setThirdYearFee(franchiseFeeDO.getThirdYearFee());
addSignFranchiseResponse.setPerformanceBond(franchiseFeeDO.getPerformanceBond());
addSignFranchiseResponse.setBigPerformanceBond(Convert.digitToChinese(Integer.valueOf(franchiseFeeDO.getPerformanceBond())));
}
return addSignFranchiseResponse;
}
}

View File

@@ -2,16 +2,12 @@ package com.cool.store.controller.webb;
import com.cool.store.request.AddSignFranchiseRequest;
import com.cool.store.request.DeleteShopRequest;
import com.cool.store.response.AddSignFranchiseResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.SignFranchiseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -27,4 +23,11 @@ public class PCSignFranchiseController {
public ResponseResult<Boolean> submitSignFranchise(@RequestBody AddSignFranchiseRequest request) {
return signFranchiseService.submitSignFranchise(request);
}
@ApiOperation("获取默认值")
@GetMapping("/default/get")
public ResponseResult<AddSignFranchiseResponse> getSignFranchise(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(signFranchiseService.getSignFranchise(shopId));
}
}