选址阶段

This commit is contained in:
zhangchenbiao
2024-04-11 14:07:33 +08:00
parent dff0042b54
commit 8bf8de1cd9
19 changed files with 721 additions and 54 deletions

View File

@@ -0,0 +1,43 @@
package com.cool.store.enums.point;
/**
* @author zhangchenbiao
* @FileName: ShopStageEnum
* @Description:店铺阶段
* @date 2024-04-10 17:34
*/
public enum ShopStageEnum {
//1选址 2筹建 3开业
SHOP_STAGE_1(1, "选址"),
SHOP_STAGE_2(2, "筹建"),
SHOP_STAGE_3(3, "开业"),
;
private Integer shopStage;
private String stageName;
ShopStageEnum(Integer shopStage, String stageName) {
this.shopStage = shopStage;
this.stageName = stageName;
}
public static ShopStageEnum getShopStageEnum(Integer shopStage) {
for (ShopStageEnum shopStageEnum : ShopStageEnum.values()) {
if (shopStageEnum.getShopStage().equals(shopStage)) {
return shopStageEnum;
}
}
return null;
}
public Integer getShopStage() {
return shopStage;
}
public String getStageName() {
return stageName;
}
}

View File

@@ -0,0 +1,97 @@
package com.cool.store.enums.point;
import java.util.ArrayList;
import java.util.List;
/**
* @author zhangchenbiao
* @FileName: ShopStageEnum
* @Description:店铺阶段
* @date 2024-04-10 17:34
*/
public enum ShopSubStageEnum {
SHOP_STAGE_1(ShopStageEnum.SHOP_STAGE_1, 10, "选址"),
SHOP_STAGE_2(ShopStageEnum.SHOP_STAGE_1, 20, "上传租赁合同"),
SHOP_STAGE_3(ShopStageEnum.SHOP_STAGE_2, 30, "系统建店"),
SHOP_STAGE_4(ShopStageEnum.SHOP_STAGE_2, 40, "证照办理"),
SHOP_STAGE_5(ShopStageEnum.SHOP_STAGE_2, 50, "员工招聘"),
SHOP_STAGE_6(ShopStageEnum.SHOP_STAGE_2, 60, "加盟商/员工培训"),
SHOP_STAGE_7(ShopStageEnum.SHOP_STAGE_2, 70, "缴纳加盟费/保证金"),
SHOP_STAGE_8(ShopStageEnum.SHOP_STAGE_2, 80, "加盟合同签约"),
SHOP_STAGE_9(ShopStageEnum.SHOP_STAGE_2, 90, "设计阶段"),
SHOP_STAGE_10(ShopStageEnum.SHOP_STAGE_2, 100, "施工阶段"),
SHOP_STAGE_11(ShopStageEnum.SHOP_STAGE_2, 110, "三方验收"),
;
//阶段
private ShopStageEnum shopStageEnum;
//子阶段
private Integer shopSubStage;
//子阶段名称
private String shopSubStageName;
ShopSubStageEnum(ShopStageEnum shopStageEnum, Integer shopSubStage, String shopSubStageName) {
this.shopStageEnum = shopStageEnum;
this.shopSubStage = shopSubStage;
this.shopSubStageName = shopSubStageName;
}
public static List<ShopSubStageEnum> getShopStageEnum(Integer shopStage) {
List<ShopSubStageEnum> resultList = new ArrayList<>();
for (ShopSubStageEnum shopStageEnum : ShopSubStageEnum.values()) {
if (shopStageEnum.getShopStageEnum().getShopStage().equals(shopStage)) {
resultList.add(shopStageEnum);
}
}
return resultList;
}
public ShopStageEnum getShopStageEnum() {
return shopStageEnum;
}
public Integer getShopSubStage() {
return shopSubStage;
}
public String getShopSubStageName() {
return shopSubStageName;
}
/**
* 获取各阶段的初始状态
* @return
*/
public ShopSubStageStatusEnum getInitStatus() {
switch (this){
case SHOP_STAGE_1:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_0;
case SHOP_STAGE_2:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_2;
case SHOP_STAGE_3:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_6;
case SHOP_STAGE_4:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_10;
case SHOP_STAGE_5:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_14;
case SHOP_STAGE_6:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_16;
case SHOP_STAGE_7:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_18;
case SHOP_STAGE_8:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_21;
case SHOP_STAGE_9:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_27;
case SHOP_STAGE_10:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_32;
case SHOP_STAGE_11:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_35;
default:
return null;
}
}
}

View File

@@ -0,0 +1,114 @@
package com.cool.store.enums.point;
import java.util.ArrayList;
import java.util.List;
/**
* @author zhangchenbiao
* @FileName: ShopStageStatusEnum
* @Description:店铺阶段状态
* @date 2024-04-10 17:34
*/
public enum ShopSubStageStatusEnum {
//选址
SHOP_SUB_STAGE_STATUS_0(ShopSubStageEnum.SHOP_STAGE_1, 100, "待选址"),
SHOP_SUB_STAGE_STATUS_1(ShopSubStageEnum.SHOP_STAGE_1, 110, "已选址"),
//上传租赁合同
SHOP_SUB_STAGE_STATUS_2(ShopSubStageEnum.SHOP_STAGE_2, 200, "待上传"),
SHOP_SUB_STAGE_STATUS_3(ShopSubStageEnum.SHOP_STAGE_2, 210, "已上传"),
SHOP_SUB_STAGE_STATUS_4(ShopSubStageEnum.SHOP_STAGE_2, 220, "审核未通过"),
SHOP_SUB_STAGE_STATUS_5(ShopSubStageEnum.SHOP_STAGE_2, 230, "审核通过"),
//系统建店
SHOP_SUB_STAGE_STATUS_6(ShopSubStageEnum.SHOP_STAGE_3, 300, "待建店"),
SHOP_SUB_STAGE_STATUS_7(ShopSubStageEnum.SHOP_STAGE_3, 310, "审核中"),
SHOP_SUB_STAGE_STATUS_8(ShopSubStageEnum.SHOP_STAGE_3, 320, "未通过"),
SHOP_SUB_STAGE_STATUS_9(ShopSubStageEnum.SHOP_STAGE_3, 330, "已通过"),
//证照办理
SHOP_SUB_STAGE_STATUS_10(ShopSubStageEnum.SHOP_STAGE_4, 400, "待提交"),
SHOP_SUB_STAGE_STATUS_11(ShopSubStageEnum.SHOP_STAGE_4, 410, "待审核"),
SHOP_SUB_STAGE_STATUS_12(ShopSubStageEnum.SHOP_STAGE_4, 420, "审核未通过"),
SHOP_SUB_STAGE_STATUS_13(ShopSubStageEnum.SHOP_STAGE_4, 430, "审核通过"),
//员工招聘
SHOP_SUB_STAGE_STATUS_14(ShopSubStageEnum.SHOP_STAGE_5, 500, "招聘中"),
SHOP_SUB_STAGE_STATUS_15(ShopSubStageEnum.SHOP_STAGE_5, 510, "已完成"),
//加盟商/员工培训
SHOP_SUB_STAGE_STATUS_16(ShopSubStageEnum.SHOP_STAGE_6, 600, "培训中"),
SHOP_SUB_STAGE_STATUS_17(ShopSubStageEnum.SHOP_STAGE_6, 610, "已完成"),
//缴纳加盟费/保证金
SHOP_SUB_STAGE_STATUS_18(ShopSubStageEnum.SHOP_STAGE_7, 700, "待缴费"),
SHOP_SUB_STAGE_STATUS_19(ShopSubStageEnum.SHOP_STAGE_7, 710, "已缴费"),
SHOP_SUB_STAGE_STATUS_20(ShopSubStageEnum.SHOP_STAGE_7, 720, "缴费失败"),
//加盟合同签约
SHOP_SUB_STAGE_STATUS_21(ShopSubStageEnum.SHOP_STAGE_8, 800, "待提交"),
SHOP_SUB_STAGE_STATUS_22(ShopSubStageEnum.SHOP_STAGE_8, 810, "信息核对"),
SHOP_SUB_STAGE_STATUS_23(ShopSubStageEnum.SHOP_STAGE_8, 820, "待加盟商签约"),
SHOP_SUB_STAGE_STATUS_24(ShopSubStageEnum.SHOP_STAGE_8, 830, "审核中"),
SHOP_SUB_STAGE_STATUS_25(ShopSubStageEnum.SHOP_STAGE_8, 840, "已签约"),
SHOP_SUB_STAGE_STATUS_26(ShopSubStageEnum.SHOP_STAGE_8, 850, "退回"),
//设计阶段
SHOP_SUB_STAGE_STATUS_27(ShopSubStageEnum.SHOP_STAGE_9, 900, "进行中"),
SHOP_SUB_STAGE_STATUS_28(ShopSubStageEnum.SHOP_STAGE_9, 910, "已完成"),
//施工阶段
SHOP_SUB_STAGE_STATUS_32(ShopSubStageEnum.SHOP_STAGE_10, 1000, "待施工"),
SHOP_SUB_STAGE_STATUS_33(ShopSubStageEnum.SHOP_STAGE_10, 1010, "施工中"),
SHOP_SUB_STAGE_STATUS_34(ShopSubStageEnum.SHOP_STAGE_10, 1020, "已完成"),
//三方验收
SHOP_SUB_STAGE_STATUS_35(ShopSubStageEnum.SHOP_STAGE_11, 1100, "待预约"),
SHOP_SUB_STAGE_STATUS_36(ShopSubStageEnum.SHOP_STAGE_11, 1110, "待确认"),
SHOP_SUB_STAGE_STATUS_37(ShopSubStageEnum.SHOP_STAGE_11, 1120, "待验收"),
SHOP_SUB_STAGE_STATUS_38(ShopSubStageEnum.SHOP_STAGE_11, 1130, "验收中"),
SHOP_SUB_STAGE_STATUS_39(ShopSubStageEnum.SHOP_STAGE_11, 1140, "已验收"),
;
private ShopSubStageEnum shopSubStageEnum;
private Integer shopSubStageStatus;
private String shopSubStageStatusName;
ShopSubStageStatusEnum(ShopSubStageEnum shopSubStageEnum, Integer shopSubStageStatus, String shopSubStageStatusName) {
this.shopSubStageEnum = shopSubStageEnum;
this.shopSubStageStatus = shopSubStageStatus;
this.shopSubStageStatusName = shopSubStageStatusName;
}
public static List<ShopSubStageStatusEnum> getShopSubStageStatusEnum(ShopSubStageEnum shopSubStage) {
List<ShopSubStageStatusEnum> resultList = new ArrayList<>();
for (ShopSubStageStatusEnum stageStatusEnum : ShopSubStageStatusEnum.values()) {
if (stageStatusEnum.getShopSubStageEnum().equals(shopSubStage)) {
resultList.add(stageStatusEnum);
}
}
return resultList;
}
public ShopSubStageEnum getShopSubStageEnum() {
return shopSubStageEnum;
}
public Integer getShopSubStageStatus() {
return shopSubStageStatus;
}
public String getShopSubStageStatusName() {
return shopSubStageStatusName;
}
public String getShopSubStageName() {
return shopSubStageEnum.getShopSubStageName();
}
}

View File

@@ -1,9 +1,11 @@
package com.cool.store.dao; package com.cool.store.dao;
import com.cool.store.constants.CommonConstants;
import com.cool.store.entity.LineInfoDO; import com.cool.store.entity.LineInfoDO;
import com.cool.store.entity.ShopInfoDO; import com.cool.store.entity.ShopInfoDO;
import com.cool.store.mapper.ShopInfoMapper; import com.cool.store.mapper.ShopInfoMapper;
import com.cool.store.utils.NumberConverter; import com.cool.store.utils.NumberConverter;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -24,23 +26,11 @@ public class ShopInfoDAO {
private ShopInfoMapper shopInfoMapper; private ShopInfoMapper shopInfoMapper;
/** public Integer batchAddShop(List<ShopInfoDO> shopInfoList){
* 初始化店铺 if(CollectionUtils.isEmpty(shopInfoList)){
* @param lineInfo return CommonConstants.ZERO;
* @return
*/
public Integer initShop(LineInfoDO lineInfo){
Integer wantShopNum = lineInfo.getWantShopNum();
List<ShopInfoDO> shopList = new ArrayList<>();
for (int i = 0; i < wantShopNum; i++) {
ShopInfoDO shopInfo = new ShopInfoDO();
shopInfo.setRegionId(lineInfo.getRegionId());
shopInfo.setLineId(lineInfo.getId());
shopInfo.setPartnerId(lineInfo.getPartnerId());
shopInfo.setShopName("店铺" + NumberConverter.convertArabicToChinese(i + 1));
shopList.add(shopInfo);
} }
return shopInfoMapper.batchAddShop(shopList); return shopInfoMapper.batchAddShop(shopInfoList);
} }
/** /**
@@ -57,6 +47,9 @@ public class ShopInfoDAO {
} }
public List<ShopInfoDO> getShopList(Long lineId){ public List<ShopInfoDO> getShopList(Long lineId){
if(Objects.isNull(lineId)){
return new ArrayList<>();
}
return shopInfoMapper.getShopList(lineId); return shopInfoMapper.getShopList(lineId);
} }

View File

@@ -0,0 +1,85 @@
package com.cool.store.dao;
import com.cool.store.constants.CommonConstants;
import com.cool.store.entity.ShopStageInfoDO;
import com.cool.store.enums.point.ShopStageEnum;
import com.cool.store.enums.point.ShopSubStageEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.mapper.ShopStageInfoMapper;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* @author zhangchenbiao
* @FileName: ShopStageInfoDAO
* @Description:
* @date 2024-04-10 17:33
*/
@Repository
public class ShopStageInfoDAO {
@Resource
private ShopStageInfoMapper shopStageInfoMapper;
/**
* 初始化店铺阶段信息
* @param lineId
* @param shopIds
* @param shopStageEnum
* @return
*/
public Integer initShopStageInfo(Long lineId, List<Long> shopIds, ShopStageEnum shopStageEnum) {
if(CollectionUtils.isEmpty(shopIds) || Objects.isNull(shopStageEnum)){
return CommonConstants.ZERO;
}
Integer shopStage = shopStageEnum.getShopStage();
List<ShopSubStageEnum> shopStageEnumList = ShopSubStageEnum.getShopStageEnum(shopStage);
List<ShopStageInfoDO> addShopStageList = new ArrayList<>();
for (Long shopId : shopIds) {
for (ShopSubStageEnum shopSubStageEnum : shopStageEnumList) {
ShopStageInfoDO shopStageInfo = new ShopStageInfoDO();
shopStageInfo.setLineId(lineId);
shopStageInfo.setShopId(shopId);
shopStageInfo.setShopStage(shopStage);
shopStageInfo.setShopSubStage(shopSubStageEnum.getShopSubStage());
shopStageInfo.setShopSubStageStatus(shopSubStageEnum.getInitStatus().getShopSubStageStatus());
shopStageInfo.setRemark(shopSubStageEnum.getShopSubStageName() + CommonConstants.PATH_BAR +shopSubStageEnum.getInitStatus().getShopSubStageStatusName());
addShopStageList.add(shopStageInfo);
}
}
return shopStageInfoMapper.batchInsert(addShopStageList);
}
/**
* 获取店铺阶段信息
* @param shopId
* @return
*/
public List<ShopStageInfoDO> getShopStageInfo(Long shopId) {
if(Objects.isNull(shopId)){
return Lists.newArrayList();
}
return shopStageInfoMapper.getShopStageInfo(shopId);
}
/**
* 更新店铺阶段状态
* @param shopId
* @param shopStageInfo
* @return
*/
public Integer updateShopStageInfo(Long shopId, ShopSubStageStatusEnum shopStageInfo) {
if(Objects.isNull(shopId) || Objects.isNull(shopStageInfo)){
return CommonConstants.ZERO;
}
String remark = shopStageInfo.getShopSubStageName() + CommonConstants.PATH_BAR +shopStageInfo.getShopSubStageStatusName();
return shopStageInfoMapper.updateShopStageInfo(shopId, shopStageInfo.getShopSubStageEnum().getShopSubStage(), shopStageInfo.getShopSubStageStatus(), remark);
}
}

View File

@@ -0,0 +1,34 @@
package com.cool.store.mapper;
import com.cool.store.entity.ShopStageInfoDO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface ShopStageInfoMapper extends Mapper<ShopStageInfoDO> {
/**
* 批量插入店铺阶段信息
* @param addShopStageList
* @return
*/
Integer batchInsert(@Param("addShopStageList") List<ShopStageInfoDO> addShopStageList);
/**
* 获取店铺阶段信息
* @param shopId
* @return
*/
List<ShopStageInfoDO> getShopStageInfo(@Param("shopId") Long shopId);
/**
* 跟新店铺阶段信息
* @param shopId
* @param shopSubStage
* @param shopSubStageStatus
* @param remark
* @return
*/
Integer updateShopStageInfo(@Param("shopId") Long shopId, @Param("shopSubStage") Integer shopSubStage, @Param("shopSubStageStatus") Integer shopSubStageStatus, @Param("remark") String remark);
}

View File

@@ -0,0 +1,41 @@
<?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.ShopStageInfoMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.ShopStageInfoDO">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="line_id" jdbcType="BIGINT" property="lineId" />
<result column="shop_id" jdbcType="BIGINT" property="shopId" />
<result column="shop_stage" jdbcType="TINYINT" property="shopStage" />
<result column="shop_sub_stage" jdbcType="TINYINT" property="shopSubStage" />
<result column="shop_sub_stage_status" jdbcType="TINYINT" property="shopSubStageStatus" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="deleted" jdbcType="BIT" property="deleted" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="allColumn">
id, line_id, shop_id, shop_stage, shop_sub_stage, shop_sub_stage_status, remark, deleted, create_time, update_time
</sql>
<insert id="batchInsert">
<foreach collection="addShopStageList" separator=";" item="shop">
INSERT INTO xfsg_shop_stage_info(line_id, shop_id, shop_stage, shop_sub_stage, shop_sub_stage_status, remark)
VALUES(#{shop.lineId}, #{shop.shopId}, #{shop.shopStage}, #{shop.shopSubStage}, #{shop.shopSubStageStatus}, #{shop.remark})
</foreach>
</insert>
<select id="getShopStageInfo" resultMap="BaseResultMap">
select
<include refid="allColumn"/>
from
xfsg_shop_stage_info
where
shop_id = #{shopId} and deleted = 0
</select>
<update id="updateShopStageInfo">
update xfsg_shop_stage_info set shop_sub_stage_status = #{shopSubStageStatus}, remark = #{remark} where shop_id = #{shopId} and shop_sub_stage = #{shopSubStage}
</update>
</mapper>

View File

@@ -1,8 +1,8 @@
jdbc.driver = com.mysql.cj.jdbc.Driver jdbc.driver = com.mysql.cj.jdbc.Driver
jdbc.url = jdbc:mysql://dingpushcoolcollege.mysql.rds.aliyuncs.com:3306/coolcollege_intelligent_36?useSSL=false&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true jdbc.url = jdbc:mysql://dingpushcoolcollege.mysql.rds.aliyuncs.com:3306/coolcollege_intelligent_69?useSSL=false&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true
jdbc.user= coolstore jdbc.user= coolstore
jdbc.password = CSCErYcXniNYm7bT jdbc.password = CSCErYcXniNYm7bT
table.name = xfsg_point_deal_record table.name = xfsg_shop_stage_info
table.object.class = PointDealRecordDO table.object.class = ShopStageInfoDO
table.mapper = PointDealRecordMapper table.mapper = ShopStageInfoMapper

View File

@@ -0,0 +1,64 @@
package com.cool.store.entity;
import lombok.Data;
import java.util.Date;
import javax.persistence.*;
@Data
@Table(name = "xfsg_shop_stage_info")
public class ShopStageInfoDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "line_id")
private Long lineId;
/**
* 店铺id
*/
@Column(name = "shop_id")
private Long shopId;
/**
* 店铺阶段
*/
@Column(name = "shop_stage")
private Integer shopStage;
/**
* 店铺子阶段
*/
@Column(name = "shop_sub_stage")
private Integer shopSubStage;
/**
* 店铺子阶段状态
*/
@Column(name = "shop_sub_stage_status")
private Integer shopSubStageStatus;
/**
* 备注
*/
private String remark;
/**
* 删除标识
*/
private Boolean deleted;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
}

View File

@@ -0,0 +1,54 @@
package com.cool.store.vo.shop;
import com.cool.store.enums.point.ShopStageEnum;
import com.cool.store.enums.point.ShopSubStageEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author zhangchenbiao
* @FileName: ShopStageEnumVO
* @Description:
* @date 2024-04-11 11:13
*/
@Data
public class ShopStageVO {
@ApiModelProperty("大阶段")
private Integer shopStage;
@ApiModelProperty("阶段名称")
private String shopStageName;
@ApiModelProperty("子阶段")
private List<ShopSubStageVO> shopSubStageList;
public ShopStageVO(Integer shopStage, String shopStageName, List<ShopSubStageVO> shopSubStageList) {
this.shopStage = shopStage;
this.shopStageName = shopStageName;
this.shopSubStageList = shopSubStageList;
}
public static List<ShopStageVO> getShopStageList() {
List<ShopStageVO> shopStageList = new ArrayList<>();
for (ShopStageEnum shopStageEnum : ShopStageEnum.values()) {
List<ShopSubStageVO> shopSubStageList = new ArrayList<>();
List<ShopSubStageEnum> shopSubStageEnumList = ShopSubStageEnum.getShopStageEnum(shopStageEnum.getShopStage());
for (ShopSubStageEnum shopSubStageEnum : shopSubStageEnumList) {
List<ShopSubStageStatusVO> subStageStatusList = new ArrayList<>();
List<ShopSubStageStatusEnum> shopSubStageStatusEnum = ShopSubStageStatusEnum.getShopSubStageStatusEnum(shopSubStageEnum);
for (ShopSubStageStatusEnum subStageStatusEnum : shopSubStageStatusEnum) {
subStageStatusList.add(new ShopSubStageStatusVO(subStageStatusEnum.getShopSubStageStatus(), subStageStatusEnum.getShopSubStageStatusName()));
}
shopSubStageList.add(new ShopSubStageVO(shopSubStageEnum.getShopSubStage(), shopSubStageEnum.getShopSubStageName(), subStageStatusList));
}
shopStageList.add(new ShopStageVO(shopStageEnum.getShopStage(), shopStageEnum.getStageName(), shopSubStageList));
}
return shopStageList;
}
}

View File

@@ -0,0 +1,25 @@
package com.cool.store.vo.shop;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author zhangchenbiao
* @FileName: ShopSubStageStatusVO
* @Description:
* @date 2024-04-11 11:16
*/
@Data
public class ShopSubStageStatusVO {
@ApiModelProperty("店铺子阶段状态code")
private Integer shopSubStageStatus;
@ApiModelProperty("店铺子阶段状态name")
private String shopSubStageStatusName;
public ShopSubStageStatusVO(Integer shopSubStageStatus, String shopSubStageStatusName) {
this.shopSubStageStatus = shopSubStageStatus;
this.shopSubStageStatusName = shopSubStageStatusName;
}
}

View File

@@ -0,0 +1,32 @@
package com.cool.store.vo.shop;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author zhangchenbiao
* @FileName: ShopSubStageStatusVO
* @Description:
* @date 2024-04-11 11:12
*/
@Data
public class ShopSubStageVO {
@ApiModelProperty("子阶段code")
private Integer shopSubStage;
@ApiModelProperty("子阶段名称")
private String shopSubStageName;
@ApiModelProperty("子阶段状态")
private List<ShopSubStageStatusVO> subStageStatusList;
public ShopSubStageVO(Integer shopSubStage, String shopSubStageName, List<ShopSubStageStatusVO> subStageStatusList) {
this.shopSubStage = shopSubStage;
this.shopSubStageName = shopSubStageName;
this.subStageStatusList = subStageStatusList;
}
}

View File

@@ -13,7 +13,7 @@ import java.util.List;
* @Description: * @Description:
* @date 2024-03-29 15:25 * @date 2024-03-29 15:25
*/ */
public interface ShopPointService { public interface PointService {
/** /**
* 新增铺位 * 新增铺位

View File

@@ -0,0 +1,20 @@
package com.cool.store.service;
import com.cool.store.entity.LineInfoDO;
/**
* @author zhangchenbiao
* @FileName: ShopService
* @Description:店铺
* @date 2024-04-11 10:25
*/
public interface ShopService {
/**
* 初始化店铺数据
* @param lineInfo
* @return
*/
Integer initShop(LineInfoDO lineInfo);
}

View File

@@ -0,0 +1,55 @@
package com.cool.store.service;
import com.cool.store.dao.ShopInfoDAO;
import com.cool.store.dao.ShopStageInfoDAO;
import com.cool.store.entity.LineInfoDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.point.ShopStageEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.utils.NumberConverter;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author zhangchenbiao
* @FileName: ShopServiceImpl
* @Description:
* @date 2024-04-11 10:26
*/
@Service
public class ShopServiceImpl implements ShopService{
@Resource
private ShopInfoDAO shopInfoDAO;
@Resource
private ShopStageInfoDAO shopStageInfoDAO;
@Override
@Transactional(rollbackFor = Exception.class)
public Integer initShop(LineInfoDO lineInfo) {
if(Objects.isNull(lineInfo)){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
Integer wantShopNum = lineInfo.getWantShopNum();
List<ShopInfoDO> addShopList = new ArrayList<>();
for (int i = 0; i < wantShopNum; i++) {
ShopInfoDO shopInfo = new ShopInfoDO();
shopInfo.setRegionId(lineInfo.getRegionId());
shopInfo.setLineId(lineInfo.getId());
shopInfo.setPartnerId(lineInfo.getPartnerId());
shopInfo.setShopName("店铺" + NumberConverter.convertArabicToChinese(i + 1));
addShopList.add(shopInfo);
}
shopInfoDAO.batchAddShop(addShopList);
List<ShopInfoDO> shopList = shopInfoDAO.getShopList(lineInfo.getId());
List<Long> shopIds = shopList.stream().map(ShopInfoDO::getId).collect(Collectors.toList());
return shopStageInfoDAO.initShopStageInfo(lineInfo.getId(), shopIds, ShopStageEnum.SHOP_STAGE_1);
}
}

View File

@@ -72,7 +72,7 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
@Resource @Resource
private HyPartnerUserChannelDAO hyPartnerUserChannelDAO; private HyPartnerUserChannelDAO hyPartnerUserChannelDAO;
@Resource @Resource
private ShopInfoDAO shopInfoDAO; private ShopService shopService;
@Override @Override
public List<AppointmentTimeVO> getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentDate) { public List<AppointmentTimeVO> getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentDate) {
@@ -414,7 +414,7 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
updateLine.setDevelopmentManager(developmentManager); updateLine.setDevelopmentManager(developmentManager);
lineInfoDAO.updateLineInfo(updateLine); lineInfoDAO.updateLineInfo(updateLine);
//初始化店铺 //初始化店铺
shopInfoDAO.initShop(lineInfo); shopService.initShop(lineInfo);
} }
return lineInterviewDAO.updateInterviewInfo(updateInterviewInfo) > 0; return lineInterviewDAO.updateInterviewInfo(updateInterviewInfo) > 0;
} }

View File

@@ -16,7 +16,7 @@ import com.cool.store.exception.ServiceException;
import com.cool.store.request.*; import com.cool.store.request.*;
import com.cool.store.service.LabelService; import com.cool.store.service.LabelService;
import com.cool.store.service.RegionService; import com.cool.store.service.RegionService;
import com.cool.store.service.ShopPointService; import com.cool.store.service.PointService;
import com.cool.store.service.UserAuthMappingService; import com.cool.store.service.UserAuthMappingService;
import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.poi.StringUtils; import com.cool.store.utils.poi.StringUtils;
@@ -46,7 +46,7 @@ import java.util.stream.Collectors;
*/ */
@Slf4j @Slf4j
@Service @Service
public class ShopPointServiceImpl implements ShopPointService { public class PointServiceImpl implements PointService {
@Resource @Resource
private ShopInfoDAO shopInfoDAO; private ShopInfoDAO shopInfoDAO;

View File

@@ -7,6 +7,7 @@ import com.cool.store.entity.*;
import com.cool.store.enums.MessageEnum; import com.cool.store.enums.MessageEnum;
import com.cool.store.mapper.HyOpenAreaInfoMapper; import com.cool.store.mapper.HyOpenAreaInfoMapper;
import com.cool.store.response.ResponseResult; import com.cool.store.response.ResponseResult;
import com.cool.store.service.ShopService;
import com.cool.store.service.impl.CommonService; import com.cool.store.service.impl.CommonService;
import com.cool.store.utils.poi.ExcelUtil; import com.cool.store.utils.poi.ExcelUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -29,7 +30,7 @@ public class PCTestController {
@Resource @Resource
private LineInfoDAO lineInfoDAO; private LineInfoDAO lineInfoDAO;
@Resource @Resource
private ShopInfoDAO shopInfoDAO; private ShopService shopService;
@GetMapping("/sendMessage") @GetMapping("/sendMessage")
@@ -41,7 +42,7 @@ public class PCTestController {
@GetMapping("/initShop") @GetMapping("/initShop")
public ResponseResult<Boolean> initShop(@RequestParam("lineId")Long lineId){ public ResponseResult<Boolean> initShop(@RequestParam("lineId")Long lineId){
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId); LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
shopInfoDAO.initShop(lineInfo); shopService.initShop(lineInfo);
return ResponseResult.success(Boolean.FALSE); return ResponseResult.success(Boolean.FALSE);
} }
} }

View File

@@ -1,11 +1,14 @@
package com.cool.store.controller.webb; package com.cool.store.controller.webb;
import com.cool.store.context.CurrentUserHolder; import com.cool.store.context.CurrentUserHolder;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.request.*; import com.cool.store.request.*;
import com.cool.store.response.ResponseResult; import com.cool.store.response.ResponseResult;
import com.cool.store.service.ShopPointService; import com.cool.store.service.PointService;
import com.cool.store.vo.LinePointBaseInfoVO; import com.cool.store.vo.LinePointBaseInfoVO;
import com.cool.store.vo.point.*; import com.cool.store.vo.point.*;
import com.cool.store.vo.shop.ShopStageVO;
import com.cool.store.vo.shop.ShopSubStageVO;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -24,158 +27,164 @@ import java.util.List;
@Api(tags = "铺位") @Api(tags = "铺位")
@RestController @RestController
@RequestMapping("/pc/point") @RequestMapping("/pc/point")
public class ShopPointController { public class PointController {
@Resource @Resource
private ShopPointService shopPointService; private PointService pointService;
@ApiOperation("新增铺位") @ApiOperation("新增铺位")
@PostMapping("/add") @PostMapping("/add")
public ResponseResult<Long> addPointDetailInfo(@RequestBody @Validated AddPointDetailRequest shopPointDetailRequest) { public ResponseResult<Long> addPointDetailInfo(@RequestBody @Validated AddPointDetailRequest shopPointDetailRequest) {
return ResponseResult.success(shopPointService.addPointDetailInfo(shopPointDetailRequest, CurrentUserHolder.getUserId())); return ResponseResult.success(pointService.addPointDetailInfo(shopPointDetailRequest, CurrentUserHolder.getUserId()));
} }
@ApiOperation("铺位详情") @ApiOperation("铺位详情")
@GetMapping("/detail") @GetMapping("/detail")
public ResponseResult<PointDetailVO> getPointDetailInfo(@RequestParam("pointId")Long pointId) { public ResponseResult<PointDetailVO> getPointDetailInfo(@RequestParam("pointId")Long pointId) {
return ResponseResult.success(shopPointService.getPointDetailInfo(pointId)); return ResponseResult.success(pointService.getPointDetailInfo(pointId));
} }
@ApiOperation("完善铺位") @ApiOperation("完善铺位")
@PostMapping("/update") @PostMapping("/update")
public ResponseResult<Integer> updatePointDetailInfo(@RequestBody @Validated UpdatePointDetailRequest shopPointDetailRequest) { public ResponseResult<Integer> updatePointDetailInfo(@RequestBody @Validated UpdatePointDetailRequest shopPointDetailRequest) {
return ResponseResult.success(shopPointService.updatePointDetailInfo(shopPointDetailRequest)); return ResponseResult.success(pointService.updatePointDetailInfo(shopPointDetailRequest));
} }
@ApiOperation("生成评估报告") @ApiOperation("生成评估报告")
@GetMapping("/generateEvaluationReport") @GetMapping("/generateEvaluationReport")
public ResponseResult<Integer> generateEvaluationReport(@RequestBody PointIdRequest request) { public ResponseResult<Integer> generateEvaluationReport(@RequestBody PointIdRequest request) {
return ResponseResult.success(shopPointService.generateEvaluationReport(request.getPointId())); return ResponseResult.success(pointService.generateEvaluationReport(request.getPointId()));
} }
@ApiOperation("铺位失效") @ApiOperation("铺位失效")
@PostMapping("/invalid") @PostMapping("/invalid")
public ResponseResult<Integer> pointInvalid(@RequestBody PointIdRequest request) { public ResponseResult<Integer> pointInvalid(@RequestBody PointIdRequest request) {
return ResponseResult.success(shopPointService.pointInvalid(request.getPointId())); return ResponseResult.success(pointService.pointInvalid(request.getPointId()));
} }
@ApiOperation("铺位解绑") @ApiOperation("铺位解绑")
@PostMapping("/unbind") @PostMapping("/unbind")
public ResponseResult<Integer> pointUnbind(@RequestBody PointIdRequest request) { public ResponseResult<Integer> pointUnbind(@RequestBody PointIdRequest request) {
return ResponseResult.success(shopPointService.pointUnbind(request.getPointId())); return ResponseResult.success(pointService.pointUnbind(request.getPointId()));
} }
@ApiOperation("配置评估报告") @ApiOperation("配置评估报告")
@PostMapping("/addMapEvaluationReport") @PostMapping("/addMapEvaluationReport")
public ResponseResult<Integer> addMapEvaluationReport(@RequestBody AddMapEvaluationReportRequest request) { public ResponseResult<Integer> addMapEvaluationReport(@RequestBody AddMapEvaluationReportRequest request) {
return ResponseResult.success(shopPointService.addMapEvaluationReport(request)); return ResponseResult.success(pointService.addMapEvaluationReport(request));
} }
@ApiOperation("提交审批") @ApiOperation("提交审批")
@PostMapping("/submitAudit") @PostMapping("/submitAudit")
public ResponseResult<Integer> submitAudit(@RequestBody @Validated SubmitPointAuditRequest request) { public ResponseResult<Integer> submitAudit(@RequestBody @Validated SubmitPointAuditRequest request) {
return ResponseResult.success(shopPointService.submitAudit(request)); return ResponseResult.success(pointService.submitAudit(request));
} }
@ApiOperation("选址审批设置") @ApiOperation("选址审批设置")
@PostMapping("/auditSetting") @PostMapping("/auditSetting")
public ResponseResult<Integer> auditSetting(@RequestBody AuditSettingRequest request) { public ResponseResult<Integer> auditSetting(@RequestBody AuditSettingRequest request) {
return ResponseResult.success(shopPointService.auditSetting(request)); return ResponseResult.success(pointService.auditSetting(request));
} }
@ApiOperation("获取选址审批设置") @ApiOperation("获取选址审批设置")
@GetMapping("/getAuditSetting") @GetMapping("/getAuditSetting")
public ResponseResult<AuditSettingVO> getAuditSetting() { public ResponseResult<AuditSettingVO> getAuditSetting() {
return ResponseResult.success(shopPointService.getAuditSetting()); return ResponseResult.success(pointService.getAuditSetting());
} }
@ApiOperation("获取催办用户列表") @ApiOperation("获取催办用户列表")
@GetMapping("/getTodoUserList") @GetMapping("/getTodoUserList")
public ResponseResult<List<String>> getTodoUserList(@RequestParam("pointId")Long pointId) { public ResponseResult<List<String>> getTodoUserList(@RequestParam("pointId")Long pointId) {
return ResponseResult.success(shopPointService.getTodoUserList(pointId)); return ResponseResult.success(pointService.getTodoUserList(pointId));
} }
@ApiOperation("营运人员审批") @ApiOperation("营运人员审批")
@PostMapping("/operationUserAudit") @PostMapping("/operationUserAudit")
public ResponseResult<Integer> operationUserAudit(@RequestBody @Validated OperationAuditRequest request) { public ResponseResult<Integer> operationUserAudit(@RequestBody @Validated OperationAuditRequest request) {
return ResponseResult.success(shopPointService.operationUserAudit(CurrentUserHolder.getUserId(), request)); return ResponseResult.success(pointService.operationUserAudit(CurrentUserHolder.getUserId(), request));
} }
@ApiOperation("审批(排除第二级审批)") @ApiOperation("审批(排除第二级审批)")
@PostMapping("/audit") @PostMapping("/audit")
public ResponseResult<Integer> audit(@RequestBody PointAuditRequest request) { public ResponseResult<Integer> audit(@RequestBody PointAuditRequest request) {
return ResponseResult.success(shopPointService.audit(CurrentUserHolder.getUserId(), request)); return ResponseResult.success(pointService.audit(CurrentUserHolder.getUserId(), request));
} }
@ApiOperation("铺位转让") @ApiOperation("铺位转让")
@PostMapping("/turnDevelopmentManager") @PostMapping("/turnDevelopmentManager")
public ResponseResult<Integer> turnDevelopmentManager(@RequestBody @Validated TurnDevelopmentManagerRequest request) { public ResponseResult<Integer> turnDevelopmentManager(@RequestBody @Validated TurnDevelopmentManagerRequest request) {
return ResponseResult.success(shopPointService.turnDevelopmentManager(request)); return ResponseResult.success(pointService.turnDevelopmentManager(request));
} }
@ApiOperation("获取我负责的加盟商列表") @ApiOperation("获取我负责的加盟商列表")
@PostMapping("/getLinePage") @PostMapping("/getLinePage")
public ResponseResult<PageInfo<LinePointBaseInfoVO>> getLinePage(@RequestBody PointLinePageRequest request) { public ResponseResult<PageInfo<LinePointBaseInfoVO>> getLinePage(@RequestBody PointLinePageRequest request) {
request.setDevelopmentManager(CurrentUserHolder.getUserId()); request.setDevelopmentManager(CurrentUserHolder.getUserId());
return ResponseResult.success(shopPointService.getLinePage(request)); return ResponseResult.success(pointService.getLinePage(request));
} }
@ApiOperation("首页我的数据") @ApiOperation("首页我的数据")
@GetMapping("/getMyData") @GetMapping("/getMyData")
public ResponseResult<PointHomePageDataVO> getMyPointData() { public ResponseResult<PointHomePageDataVO> getMyPointData() {
return ResponseResult.success(shopPointService.getMyPointData(CurrentUserHolder.getUserId())); return ResponseResult.success(pointService.getMyPointData(CurrentUserHolder.getUserId()));
} }
@ApiOperation("我的铺位-已入库/暂未入库") @ApiOperation("我的铺位-已入库/暂未入库")
@PostMapping("/getMyPointPage") @PostMapping("/getMyPointPage")
public ResponseResult<PageInfo<PointPageVO>> getMyPointPage(@RequestBody @Validated PointPageRequest request) { public ResponseResult<PageInfo<PointPageVO>> getMyPointPage(@RequestBody @Validated PointPageRequest request) {
request.setDevelopmentManager(CurrentUserHolder.getUserId()); request.setDevelopmentManager(CurrentUserHolder.getUserId());
return ResponseResult.success(shopPointService.getMyPointPage(request)); return ResponseResult.success(pointService.getMyPointPage(request));
} }
@ApiOperation("获取单个铺位审批记录") @ApiOperation("获取单个铺位审批记录")
@GetMapping("/getAuditRecord") @GetMapping("/getAuditRecord")
public ResponseResult<List<PointAuditRecordVO>> getPointAllAuditRecord(@RequestParam("pointId")Long pointId) { public ResponseResult<List<PointAuditRecordVO>> getPointAllAuditRecord(@RequestParam("pointId")Long pointId) {
return ResponseResult.success(shopPointService.getPointAllAuditRecord(pointId)); return ResponseResult.success(pointService.getPointAllAuditRecord(pointId));
} }
@ApiOperation("获取加盟商的推荐铺位列表") @ApiOperation("获取加盟商的推荐铺位列表")
@GetMapping("/getLineRecommendPointList") @GetMapping("/getLineRecommendPointList")
public ResponseResult<List<PointRecommendPageVO>> getLineRecommendPointList(@RequestParam("lineId")Long lineId) { public ResponseResult<List<PointRecommendPageVO>> getLineRecommendPointList(@RequestParam("lineId")Long lineId) {
return ResponseResult.success(shopPointService.getLineRecommendPointList(lineId)); return ResponseResult.success(pointService.getLineRecommendPointList(lineId));
} }
@ApiOperation("选址人员获取可推荐铺位列表") @ApiOperation("选址人员获取可推荐铺位列表")
@PostMapping("/getRecommendPointList") @PostMapping("/getRecommendPointList")
public ResponseResult<PageInfo<PointPageVO>> getRecommendPointList(@RequestBody @Validated RecommendPointPageRequest request) { public ResponseResult<PageInfo<PointPageVO>> getRecommendPointList(@RequestBody @Validated RecommendPointPageRequest request) {
request.setDevelopmentManager(CurrentUserHolder.getUserId()); request.setDevelopmentManager(CurrentUserHolder.getUserId());
return ResponseResult.success(shopPointService.getRecommendPointList(request)); return ResponseResult.success(pointService.getRecommendPointList(request));
} }
@ApiOperation("加盟商详情推送铺位") @ApiOperation("加盟商详情推送铺位")
@PostMapping("/lineRecommendPoint") @PostMapping("/lineRecommendPoint")
public ResponseResult<Integer> lineRecommendPoint(@RequestBody @Validated LineRecommendPointRequest request) { public ResponseResult<Integer> lineRecommendPoint(@RequestBody @Validated LineRecommendPointRequest request) {
request.setDevelopmentManager(CurrentUserHolder.getUserId()); request.setDevelopmentManager(CurrentUserHolder.getUserId());
return ResponseResult.success(shopPointService.lineRecommendPoint(request)); return ResponseResult.success(pointService.lineRecommendPoint(request));
} }
@ApiOperation("铺位详情推送加盟商") @ApiOperation("铺位详情推送加盟商")
@PostMapping("/pointRecommendLine") @PostMapping("/pointRecommendLine")
public ResponseResult<Integer> pointRecommendLine(@RequestBody @Validated PointRecommendLineRequest request) { public ResponseResult<Integer> pointRecommendLine(@RequestBody @Validated PointRecommendLineRequest request) {
request.setDevelopmentManager(CurrentUserHolder.getUserId()); request.setDevelopmentManager(CurrentUserHolder.getUserId());
return ResponseResult.success(shopPointService.pointRecommendLine(request)); return ResponseResult.success(pointService.pointRecommendLine(request));
} }
@ApiOperation("选址人员转让加盟商") @ApiOperation("选址人员转让加盟商")
@PostMapping("/turnLine") @PostMapping("/turnLine")
public ResponseResult<Integer> turnLine(@RequestBody @Validated TurnLineRequest request) { public ResponseResult<Integer> turnLine(@RequestBody @Validated TurnLineRequest request) {
return ResponseResult.success(shopPointService.turnLine(request)); return ResponseResult.success(pointService.turnLine(request));
} }
@ApiOperation("修改意向开店数量") @ApiOperation("修改意向开店数量")
@PostMapping("/updateWantShopNum") @PostMapping("/updateWantShopNum")
public ResponseResult<Integer> updateWantShopNum(@RequestBody @Validated UpdateWantShopNumRequest request) { public ResponseResult<Integer> updateWantShopNum(@RequestBody @Validated UpdateWantShopNumRequest request) {
return ResponseResult.success(shopPointService.updateWantShopNum(request)); return ResponseResult.success(pointService.updateWantShopNum(request));
}
@ApiOperation("获取阶段/子阶段/子阶段状态枚举")
@GetMapping("/getShopSubStageStatusEnum")
public ResponseResult<List<ShopStageVO>> getShopSubStageStatusEnum() {
return ResponseResult.success(ShopStageVO.getShopStageList());
} }