diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index 2e8d97816..9226b87ca 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -45,7 +45,6 @@ public enum ErrorCodeEnum { WX_SERVICE_ERROR(1021021, "调用微信服务异常", null), SESSION_KEY_ERROR(1021022, "sessionKey过期", null), GET_WECHAT_USER_INFO_FAIL(1021023,"获取小程序用户信息失败", null), - FEISHU_SERVICE_ERROR(1021024,"飞书服务调用异常", null), USER_GROUP_NAME_EXIST(1021076, "用户分组名称已存在", null), USER_GROUP_NOT_EXIST(1021077, "用户分组不存在", null), GET_INFO_ERROR(1021078, "获取信息异常", null), @@ -80,6 +79,10 @@ public enum ErrorCodeEnum { TIME_OCCUPIED(500018, "预约时间被占用", null), LINE_PAY_IS_NOT_EXIST(500019, "意向金信息不存在!", null), + POINT_NOT_COMPLETE(600000, "铺位信息未填写完全,请完善后生成评估报告", null), + POINT_NOT_EXIST(600001, "铺位信息不存在", null), + POINT_SIGNED(600002, "操作失败,铺位已签约", null), + NOT_ALLOW_OPERATE(600003, "当前状态不允许该操作", null), INTERVIEW_ENTER_FAIL(1021101, "进入面审间失败", null), DINGDING_USER_NOT_EXIST(1021102, "用户钉钉信息不存在,无法发起资质审核!", null), @@ -119,23 +122,11 @@ public enum ErrorCodeEnum { OPEN_AREA_NULL(600006,"归属地区不能为空",null), NOT_IN_PUBLIC_SEA(600007,"当前线索不在公海 不支持分配招商经理",null), - OUTBOUND_NUMBER_EXIST(110001, "该呼出号码已被绑定,请更改后重试", null), - LABEL_GROUP_IN_USE(120001, "该标签组下存在标签,不可删除;请确保该标签组下标签数量为0后再进行删除", null), LABEL_GROUP_EXIST(120002, "该标签组已存在,请重新输入", null), LABEL_EXIST(120003, "该标签已存在,请重新输入", null), - - //会销相关异常 106*** 106开头 - EXHIBITION_GROUP_NOT_NULL(106001, "会销组中必须添加至少一个会销", null), - EXHIBITION_GROUP_NOT_EXIST(106002, "会销组不存在或被删除", null), - EXHIBITION_NOT_EXIST(106003, "会销不存在或被删除", null), - EXHIBITION_NOT_SIGNED(106004, "线索未进行会销签到", null), - EXHIBITION_NOT_SUBMIT_INTENTION(106005, "线索未提交意向申请", null), - EXHIBITION_LINE_INTERVIEWED(106006, "线索已预约面审", null), - - OPEN_AREA_IS_NOT_EXISTS(107006, "意向区域城市不存在", null), REGION_NOT_EXIST(108001, "区域不存在",null), diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/FlowRateCalculateEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/FlowRateCalculateEnum.java index f4c2e4305..77210dffa 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/FlowRateCalculateEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/FlowRateCalculateEnum.java @@ -53,4 +53,47 @@ public enum FlowRateCalculateEnum { return null; } + /** + * 获取人流测算 + * @param nineFlowRate + * @param tenFlowRate + * @param eighteenFlowRate + * @param nineteenFlowRate + * @return + */ + public static FlowRateCalculateEnum getByFlowRate(Integer nineFlowRate, Integer tenFlowRate, Integer eighteenFlowRate, Integer nineteenFlowRate){ + System.out.println("@@@@@@@@@@"); + Integer flowRate = 0, count = 0; + if(Objects.nonNull(nineFlowRate)){ + flowRate += nineFlowRate; + count++; + } + if(Objects.nonNull(tenFlowRate)){ + flowRate += tenFlowRate; + count++; + } + if(Objects.nonNull(eighteenFlowRate)){ + flowRate += eighteenFlowRate; + count++; + } + if(Objects.nonNull(nineteenFlowRate)){ + flowRate += nineteenFlowRate; + count++; + } + if(count == 0){ + count = 1; + } + flowRate = flowRate / count; + if(flowRate > 400){ + return FLOW_RATE_CALCULATE_1; + } + if(flowRate > 300 && flowRate <= 400){ + return FLOW_RATE_CALCULATE_2; + } + if(flowRate > 200 && flowRate <= 300){ + return FLOW_RATE_CALCULATE_3; + } + return FLOW_RATE_CALCULATE_4; + } + } diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointRecommendStatus.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointRecommendStatus.java new file mode 100644 index 000000000..a409092e3 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointRecommendStatus.java @@ -0,0 +1,47 @@ +package com.cool.store.enums.point; + +/** + * @author zhangchenbiao + * @FileName: PointRecommendStatus + * @Description: + * @date 2024-04-01 14:38 + */ +public enum PointRecommendStatus { + + //状态 1.待选择 2.已选择 3.已被他人选择 4.已签约 5.已拒绝 6.已失效 + POINT_RECOMMEND_STATUS_1(1, "待选择"), + POINT_RECOMMEND_STATUS_2(2, "已选择"), + POINT_RECOMMEND_STATUS_3(3, "已被他人选择"), + POINT_RECOMMEND_STATUS_4(4, "已签约"), + POINT_RECOMMEND_STATUS_5(5, "已拒绝"), + POINT_RECOMMEND_STATUS_6(6, "已失效"), + ; + + private Integer code; + + private String desc; + + PointRecommendStatus(Integer code, String desc) { + this.code = code; + this.desc = desc; + } + + public Integer getCode() { + return code; + } + + public String getDesc() { + return desc; + } + + public static PointRecommendStatus getByCode(Integer code) { + for (PointRecommendStatus pointRecommendStatus : PointRecommendStatus.values()) { + if (pointRecommendStatus.getCode().equals(code)) { + return pointRecommendStatus; + } + } + return null; + } + + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointStatusEnum.java new file mode 100644 index 000000000..a18022e49 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PointStatusEnum.java @@ -0,0 +1,37 @@ +package com.cool.store.enums.point; + +/** + * @author zhangchenbiao + * @FileName: PointStatusEnum + * @Description: + * @date 2024-04-01 10:37 + */ +public enum PointStatusEnum { + + //1.采集中、2.已评估、3.待审核、4.待审核可推荐、5.已审核、6.已签约、7.已失效 + POINT_STATUS_1(1, "采集中"), + POINT_STATUS_2(2, "已评估"), + POINT_STATUS_3(3, "待审核"), + POINT_STATUS_4(4, "待审核可推荐"), + POINT_STATUS_5(5, "已审核"), + POINT_STATUS_6(6, "已签约"), + POINT_STATUS_7(7, "已失效") + ; + + private Integer code; + + private String desc; + + PointStatusEnum(Integer code, String desc) { + this.code = code; + this.desc = desc; + } + + public Integer getCode() { + return code; + } + + public String getDesc() { + return desc; + } +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/SelectStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/SelectStatusEnum.java new file mode 100644 index 000000000..0c8d91814 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/SelectStatusEnum.java @@ -0,0 +1,32 @@ +package com.cool.store.enums.point; + +/** + * @author zhangchenbiao + * @FileName: SelectStatusEnum + * @Description: + * @date 2024-04-01 10:37 + */ +public enum SelectStatusEnum { + + //选择状态0.未选择, 1.已被选择 + SELECT_STATUS_0(0, "未选择"), + SELECT_STATUS_1(1, "已被选择"), + ; + + private Integer code; + + private String desc; + + SelectStatusEnum(Integer code, String desc) { + this.code = code; + this.desc = desc; + } + + public Integer getCode() { + return code; + } + + public String getDesc() { + return desc; + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopPointDetailInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopPointDetailInfoDAO.java index d5c0ee236..ad394f2ea 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopPointDetailInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopPointDetailInfoDAO.java @@ -5,6 +5,7 @@ import com.cool.store.mapper.ShopPointDetailInfoMapper; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.Objects; /** * @author zhangchenbiao @@ -34,8 +35,10 @@ public class ShopPointDetailInfoDAO { * @return */ public Integer updateShopPointDetailInfo(ShopPointDetailInfoDO shopPointDetailInfo) { - Long pointDetailId = getPointDetailIdByPointId(shopPointDetailInfo.getPointId()); - shopPointDetailInfo.setId(pointDetailId); + if(Objects.isNull(shopPointDetailInfo.getId()) && Objects.nonNull(shopPointDetailInfo.getPointId())){ + Long pointDetailId = getPointDetailIdByPointId(shopPointDetailInfo.getPointId()); + shopPointDetailInfo.setId(pointDetailId); + } return shopPointDetailInfoMapper.updateByPrimaryKeySelective(shopPointDetailInfo); } @@ -43,5 +46,9 @@ public class ShopPointDetailInfoDAO { return shopPointDetailInfoMapper.getPointDetailIdByPointId(pointId); } + public ShopPointDetailInfoDO getShopPointDetailInfoByPointId(Long pointId) { + return shopPointDetailInfoMapper.getShopPointDetailInfoByPointId(pointId); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopPointInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopPointInfoDAO.java index faaa55468..76329f722 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopPointInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopPointInfoDAO.java @@ -5,6 +5,7 @@ import com.cool.store.mapper.ShopPointInfoMapper; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.Objects; /** * @author zhangchenbiao @@ -18,6 +19,14 @@ public class ShopPointInfoDAO { @Resource private ShopPointInfoMapper shopPointInfoMapper; + public ShopPointInfoDO getShopPointInfoById(Long id) { + ShopPointInfoDO shopPointInfo = shopPointInfoMapper.selectByPrimaryKey(id); + if(Objects.isNull(shopPointInfo) || shopPointInfo.getDeleted()){ + return null; + } + return shopPointInfo; + } + public Long addShopPointInfo(ShopPointInfoDO shopPointInfo) { shopPointInfoMapper.insertSelective(shopPointInfo); return shopPointInfo.getId(); diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopPointRecommendDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopPointRecommendDAO.java new file mode 100644 index 000000000..7d6df7d91 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopPointRecommendDAO.java @@ -0,0 +1,40 @@ +package com.cool.store.dao; + +import com.cool.store.enums.point.PointRecommendStatus; +import com.cool.store.mapper.ShopPointRecommendMapper; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @author zhangchenbiao + * @FileName: ShopPointRecommendDAO + * @Description:点位推荐 + * @date 2024-04-01 14:36 + */ +@Repository +public class ShopPointRecommendDAO { + + @Resource + private ShopPointRecommendMapper shopPointRecommendMapper; + + public Integer updateRecommendStatus(Long pointId, PointRecommendStatus status) { + if(Objects.isNull(status)){ + return 0; + } + return shopPointRecommendMapper.updateShopPointRecommendStatus(pointId, status.getCode()); + } + + public Integer updateRecommendStatusByStatusAndPointId(Long pointId, PointRecommendStatus status, List statusList) { + if(Objects.isNull(status) || CollectionUtils.isEmpty(statusList)){ + return 0; + } + List statusCodeList = statusList.stream().map(PointRecommendStatus::getCode).collect(Collectors.toList()); + return shopPointRecommendMapper.updateRecommendStatusByStatusAndPointId(pointId, status.getCode(), statusCodeList); + } + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopPointDetailInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopPointDetailInfoMapper.java index c6b7e0e7e..8f6ef4935 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopPointDetailInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopPointDetailInfoMapper.java @@ -12,4 +12,11 @@ public interface ShopPointDetailInfoMapper extends Mapper * @return */ Long getPointDetailIdByPointId(@Param("pointId") Long pointId); + + /** + * 获取详情 + * @param pointId + * @return + */ + ShopPointDetailInfoDO getShopPointDetailInfoByPointId(@Param("pointId") Long pointId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopPointRecommendMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopPointRecommendMapper.java new file mode 100644 index 000000000..b4b6b046a --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopPointRecommendMapper.java @@ -0,0 +1,26 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.ShopPointRecommendDO; +import org.apache.ibatis.annotations.Param; +import tk.mybatis.mapper.common.Mapper; + +import java.util.List; + +public interface ShopPointRecommendMapper extends Mapper { + + /** + * 更新铺位推荐状态 + * @param pointId + * @param status + * @return + */ + Integer updateShopPointRecommendStatus(@Param("pointId") Long pointId, @Param("status") Integer status); + + /** + * 跟进点位 和 推荐状态 更新推荐状态 + * @param pointId + * @param code + * @return + */ + Integer updateRecommendStatusByStatusAndPointId(@Param("pointId") Long pointId, @Param("status") Integer status, @Param("statusList") List statusList); +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopPointDetailInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopPointDetailInfoMapper.xml index 27ac943c6..33e12ff0f 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopPointDetailInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopPointDetailInfoMapper.xml @@ -5,16 +5,15 @@ - - - - + + + + - @@ -74,4 +73,8 @@ + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopPointInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopPointInfoMapper.xml index f12654386..dce0289ee 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopPointInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopPointInfoMapper.xml @@ -9,7 +9,6 @@ - @@ -18,6 +17,7 @@ + diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopPointRecommendMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopPointRecommendMapper.xml new file mode 100644 index 000000000..2777748e7 --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopPointRecommendMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + update xfsg_shop_point_recommend set status = #{status} where point_id = #{pointId} + + + + update xfsg_shop_point_recommend set status = #{status} where point_id = #{pointId} and status in + + #{status} + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/test/resources/mybatis-generator.properties b/coolstore-partner-dao/src/test/resources/mybatis-generator.properties index 325eeec58..3d004f357 100644 --- a/coolstore-partner-dao/src/test/resources/mybatis-generator.properties +++ b/coolstore-partner-dao/src/test/resources/mybatis-generator.properties @@ -3,6 +3,6 @@ jdbc.url = jdbc:mysql://dingpushcoolcollege.mysql.rds.aliyuncs.com:3306/coolcoll jdbc.user= coolstore jdbc.password = CSCErYcXniNYm7bT -table.name = xfsg_shop_point_info -table.object.class = ShopPointInfoDO -table.mapper = ShopPointInfoMapper \ No newline at end of file +table.name = xfsg_shop_point_recommend +table.object.class = ShopPointRecommendDO +table.mapper = ShopPointRecommendMapper \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopPointDetailInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopPointDetailInfoDO.java index ca26221fc..4fd5cfba5 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopPointDetailInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopPointDetailInfoDO.java @@ -52,7 +52,7 @@ public class ShopPointDetailInfoDO { private Integer nineteenFlowRate; /** - * 店铺方位 0主要路线, 1次要路线 + * 店铺方位 1.主要动线 2.次要动线 */ @Column(name = "point_direction") private Integer pointDirection; @@ -81,12 +81,6 @@ public class ShopPointDetailInfoDO { @Column(name = "landlord_mobile") private String landlordMobile; - /** - * 门店月租金 - */ - @Column(name = "store_rent") - private String storeRent; - /** * 支付方式 参考PaymentMethodEnum */ @@ -527,6 +521,10 @@ public class ShopPointDetailInfoDO { return getMarketSizeScore() + getShopAreaScore() + getConvenientScore() + getEnvironmentScore(); } + public Integer getFlowRateCalculate() { + return FlowRateCalculateEnum.getByFlowRate(this.nineFlowRate, this.tenFlowRate, this.eighteenFlowRate, this.nineteenFlowRate).getCode(); + } + public boolean isCanSubmitEvaluable(){ if(Objects.isNull(this.bussinessStatus)){ return false; @@ -553,9 +551,6 @@ public class ShopPointDetailInfoDO { if(Objects.isNull(this.landlordUsername) || StringUtils.isBlank(this.landlordUsername.trim()) || Objects.isNull(this.landlordMobile) || StringUtils.isBlank(this.landlordMobile.trim())){ return false; } - if(Objects.isNull(this.storeRent)){ - return false; - } if(Objects.isNull(this.paymentMethod) || Objects.isNull(this.propertyStatus)){ return false; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopPointInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopPointInfoDO.java index df0e3f3f1..b3a8073dd 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopPointInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopPointInfoDO.java @@ -48,12 +48,6 @@ public class ShopPointInfoDO { @Column(name = "point_area") private String pointArea; - /** - * 商圈类型 - */ - @Column(name = "shop_area_type") - private String shopAreaType; - /** * 经度 */ @@ -99,6 +93,12 @@ public class ShopPointInfoDO { @Column(name = "point_score") private Integer pointScore; + /** + * 选择状态0.未选择, 1.已被选择 + */ + @Column(name = "select_status") + private Integer selectStatus; + /** * 审批次数 */ diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopPointRecommendDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopPointRecommendDO.java new file mode 100644 index 000000000..e51822807 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopPointRecommendDO.java @@ -0,0 +1,60 @@ +package com.cool.store.entity; + +import lombok.Data; + +import java.util.Date; +import javax.persistence.*; + +@Data +@Table(name = "xfsg_shop_point_recommend") +public class ShopPointRecommendDO { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + /** + * 线索id + */ + @Column(name = "line_id") + private Long lineId; + + /** + * 点位id + */ + @Column(name = "point_id") + private Long pointId; + + /** + * 拓展专员 + */ + @Column(name = "development_manager") + private String developmentManager; + + /** + * 状态 1.待选择 2.已选择 3.已被他人选择 4.已签约 5.已拒绝 6.已失效 + */ + private Integer status; + + /** + * 原因 + */ + private String reason; + + /** + * 删除标识 + */ + private Boolean deleted; + + /** + * 创建时间 + */ + @Column(name = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @Column(name = "update_time") + private Date updateTime; + +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AddMapEvaluationReportRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AddMapEvaluationReportRequest.java new file mode 100644 index 000000000..8e4007080 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AddMapEvaluationReportRequest.java @@ -0,0 +1,20 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: AddMapEvaluationReportRequest + * @Description: + * @date 2024-04-01 17:49 + */ +@Data +public class AddMapEvaluationReportRequest { + + @ApiModelProperty("店铺id") + private Long pointId; + + @ApiModelProperty("高德地图评估报告") + private String mapEvaluationReport; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AddShopPointDetailRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AddShopPointDetailRequest.java index ec45205c8..d267fbbed 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/AddShopPointDetailRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AddShopPointDetailRequest.java @@ -63,9 +63,6 @@ public class AddShopPointDetailRequest { @ApiModelProperty("房东电话") private String landlordMobile; - @ApiModelProperty("门店月租金") - private String storeRent; - @Min(1) @Max(4) @ApiModelProperty("支付方式 1.月付 2.季付 3.半年付 4.年付") @@ -89,11 +86,6 @@ public class AddShopPointDetailRequest { @ApiModelProperty("消费能力 1.高端 2.中高端 3.中端 4.低端") private Integer consumerAbility; - @Min(1) - @Max(4) - @ApiModelProperty("人流测算 1.>400人/时以上, 2.300~400人/时, 3.200~300人/时, 4.100~200人/时") - private Integer flowRateCalculate; - @Min(1) @Max(2) @ApiModelProperty("聚客点农贸市场 1.是 2.否") @@ -226,9 +218,6 @@ public class AddShopPointDetailRequest { @ApiModelProperty("租赁合同") private String rentContract; - @ApiModelProperty("高德地图评估报告") - private String mapEvaluationReport; - @ApiModelProperty("图片对象") private String pictureObj; @@ -237,6 +226,7 @@ public class AddShopPointDetailRequest { ShopPointDetailInfoDO result = new ShopPointDetailInfoDO(); result.setBussinessStatus(request.getBussinessStatus()); result.setNineFlowRate(request.getNineFlowRate()); + result.setTenFlowRate(request.getTenFlowRate()); result.setEighteenFlowRate(request.getEighteenFlowRate()); result.setNineteenFlowRate(request.getNineteenFlowRate()); result.setPointDirection(request.getPointDirection()); @@ -244,13 +234,11 @@ public class AddShopPointDetailRequest { result.setStoreWidth(request.getStoreWidth()); result.setLandlordUsername(request.getLandlordUsername()); result.setLandlordMobile(request.getLandlordMobile()); - result.setStoreRent(request.getStoreRent()); result.setPaymentMethod(request.getPaymentMethod()); result.setPropertyStatus(request.getPropertyStatus()); result.setTransferFee(request.getTransferFee()); result.setCoverCommunity(request.getCoverCommunity()); result.setConsumerAbility(request.getConsumerAbility()); - result.setFlowRateCalculate(request.getFlowRateCalculate()); result.setGatherGuestFarmerMarket(request.getGatherGuestFarmerMarket()); result.setGatherGuestHospital(request.getGatherGuestHospital()); result.setGatherGuestSchool(request.getGatherGuestSchool()); @@ -285,7 +273,6 @@ public class AddShopPointDetailRequest { result.setNetProfit(request.getNetProfit()); result.setMonthRateReturn(request.getMonthRateReturn()); result.setRentContract(request.getRentContract()); - result.setMapEvaluationReport(request.getMapEvaluationReport()); result.setPictureObj(request.getPictureObj()); return result; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/UpdateShopPointDetailRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/UpdateShopPointDetailRequest.java index 300b9b942..a61ac9d41 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/UpdateShopPointDetailRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/UpdateShopPointDetailRequest.java @@ -5,11 +5,13 @@ import com.cool.store.entity.ShopPointInfoDO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; import java.util.Date; @Data public class UpdateShopPointDetailRequest extends AddShopPointDetailRequest{ + @NotNull @ApiModelProperty("点位id") private Long pointId; @@ -28,13 +30,11 @@ public class UpdateShopPointDetailRequest extends AddShopPointDetailRequest{ result.setStoreWidth(request.getStoreWidth()); result.setLandlordUsername(request.getLandlordUsername()); result.setLandlordMobile(request.getLandlordMobile()); - result.setStoreRent(request.getStoreRent()); result.setPaymentMethod(request.getPaymentMethod()); result.setPropertyStatus(request.getPropertyStatus()); result.setTransferFee(request.getTransferFee()); result.setCoverCommunity(request.getCoverCommunity()); result.setConsumerAbility(request.getConsumerAbility()); - result.setFlowRateCalculate(request.getFlowRateCalculate()); result.setGatherGuestFarmerMarket(request.getGatherGuestFarmerMarket()); result.setGatherGuestHospital(request.getGatherGuestHospital()); result.setGatherGuestSchool(request.getGatherGuestSchool()); @@ -69,7 +69,6 @@ public class UpdateShopPointDetailRequest extends AddShopPointDetailRequest{ result.setNetProfit(request.getNetProfit()); result.setMonthRateReturn(request.getMonthRateReturn()); result.setRentContract(request.getRentContract()); - result.setMapEvaluationReport(request.getMapEvaluationReport()); result.setPictureObj(request.getPictureObj()); return result; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/point/ShopPointDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/point/ShopPointDetailVO.java index 8d5be5016..81394118b 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/point/ShopPointDetailVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/point/ShopPointDetailVO.java @@ -1,6 +1,7 @@ package com.cool.store.vo.point; import com.cool.store.entity.ShopPointDetailInfoDO; +import com.cool.store.entity.ShopPointInfoDO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +10,15 @@ import java.util.Date; @Data public class ShopPointDetailVO { + @ApiModelProperty("店铺id") + private Long pointId; + @ApiModelProperty("铺位名称") private String pointName; + @ApiModelProperty("铺位编号") + private String pointCode; + @ApiModelProperty("所属大区") private Long regionId; @@ -24,7 +31,13 @@ public class ShopPointDetailVO { @ApiModelProperty("详细地址") private String address; - @ApiModelProperty("经营状况") + @ApiModelProperty("铺位状态 1.采集中、2.已评估、3.待审核、4.待审核可推荐、5.已审核、6.已签约、7.已失效") + private Integer pointStatus; + + @ApiModelProperty("铺位得分") + private Integer pointScore; + + @ApiModelProperty("经营状况 1营业中 2空铺") private Integer bussinessStatus; @ApiModelProperty("09:00-10:00人流量") @@ -39,7 +52,7 @@ public class ShopPointDetailVO { @ApiModelProperty("19:00-20:00人流量") private Integer nineteenFlowRate; - @ApiModelProperty("店铺方位 0主要路线, 1次要路线") + @ApiModelProperty("店铺方位 1.主要动线 2.次要动线") private Integer pointDirection; @ApiModelProperty("立地条件0单门面, 1双门面, 2多门面, 3转角") @@ -57,9 +70,6 @@ public class ShopPointDetailVO { @ApiModelProperty("房东电话") private String landlordMobile; - @ApiModelProperty("门店月租金") - private String storeRent; - @ApiModelProperty("支付方式 1.月付 2.季付 3.半年付 4.年付") private Integer paymentMethod; @@ -217,71 +227,78 @@ public class ShopPointDetailVO { private String pictureObj; - public static ShopPointDetailInfoDO convertDO(ShopPointDetailVO request) { - ShopPointDetailInfoDO result = new ShopPointDetailInfoDO(); - result.setBussinessStatus(request.getBussinessStatus()); - result.setNineFlowRate(request.getNineFlowRate()); - result.setTenFlowRate(request.getTenFlowRate()); - result.setEighteenFlowRate(request.getEighteenFlowRate()); - result.setNineteenFlowRate(request.getNineteenFlowRate()); - result.setPointDirection(request.getPointDirection()); - result.setSiteConditions(request.getSiteConditions()); - result.setStoreWidth(request.getStoreWidth()); - result.setLandlordUsername(request.getLandlordUsername()); - result.setLandlordMobile(request.getLandlordMobile()); - result.setStoreRent(request.getStoreRent()); - result.setPaymentMethod(request.getPaymentMethod()); - result.setPropertyStatus(request.getPropertyStatus()); - result.setTransferFee(request.getTransferFee()); - result.setCoverCommunity(request.getCoverCommunity()); - result.setConsumerAbility(request.getConsumerAbility()); - result.setFlowRateCalculate(request.getFlowRateCalculate()); - result.setGatherGuestFarmerMarket(request.getGatherGuestFarmerMarket()); - result.setGatherGuestHospital(request.getGatherGuestHospital()); - result.setGatherGuestSchool(request.getGatherGuestSchool()); - result.setStoreFlowTrend(request.getStoreFlowTrend()); - result.setNearRepast(request.getNearRepast()); - result.setNearNeighbor(request.getNearNeighbor()); - result.setNearCompete(request.getNearCompete()); - result.setNearBusinessCondition(request.getNearBusinessCondition()); - result.setIntendPosition(request.getIntendPosition()); - result.setGreenBelt(request.getGreenBelt()); - result.setStoreOutlook(request.getStoreOutlook()); - result.setGuestConvenience(request.getGuestConvenience()); - result.setWantShopSize(request.getWantShopSize()); - result.setCompeteType(request.getCompeteType()); - result.setCompeteBusinessCapacity(request.getCompeteBusinessCapacity()); - result.setInvestAmount(request.getInvestAmount()); - result.setDayTrader(request.getDayTrader()); - result.setProfitRate(request.getProfitRate()); - result.setMonthProfitRate(request.getMonthProfitRate()); - result.setDeliveryRate(request.getDeliveryRate()); - result.setDeliveryFee(request.getDeliveryFee()); - result.setBrandUseRate(request.getBrandUseRate()); - result.setBrandUseFee(request.getBrandUseFee()); - result.setStaffFee(request.getStaffFee()); - result.setShopManagerNum(request.getShopManagerNum()); - result.setShopManagerFee(request.getShopManagerFee()); - result.setClerkNum(request.getClerkNum()); - result.setClerkFee(request.getClerkFee()); - result.setBonus(request.getBonus()); - result.setMonthRent(request.getMonthRent()); - result.setOtherFee(request.getOtherFee()); - result.setNetProfit(request.getNetProfit()); - result.setMonthRateReturn(request.getMonthRateReturn()); - result.setDevelopmentManagerSign(request.getDevelopmentManagerSign()); - result.setDevelopmentManagerSignTime(request.getDevelopmentManagerSignTime()); - result.setOperationUserSign(request.getOperationUserSign()); - result.setOperationUserSignTime(request.getOperationUserSignTime()); - result.setLineSign(request.getLineSign()); - result.setLineSignTime(request.getLineSignTime()); - result.setMarketSizeScore(request.getMarketSizeScore()); - result.setShopAreaScore(request.getShopAreaScore()); - result.setConvenientScore(request.getConvenientScore()); - result.setEnvironmentScore(request.getEnvironmentScore()); - result.setRentContract(request.getRentContract()); - result.setMapEvaluationReport(request.getMapEvaluationReport()); - result.setPictureObj(request.getPictureObj()); + public static ShopPointDetailVO convertVO(ShopPointInfoDO pointInfo, ShopPointDetailInfoDO pointDetailInfo) { + ShopPointDetailVO result = new ShopPointDetailVO(); + result.setPointId(pointInfo.getId()); + result.setPointName(pointInfo.getPointName()); + result.setPointCode(pointInfo.getPointCode()); + result.setLongitude(pointInfo.getLongitude()); + result.setLatitude(pointInfo.getLatitude()); + result.setAddress(pointInfo.getAddress()); + result.setPointStatus(pointInfo.getPointStatus()); + result.setPointScore(pointInfo.getPointScore()); + result.setBussinessStatus(pointDetailInfo.getBussinessStatus()); + result.setNineFlowRate(pointDetailInfo.getNineFlowRate()); + result.setTenFlowRate(pointDetailInfo.getTenFlowRate()); + result.setEighteenFlowRate(pointDetailInfo.getEighteenFlowRate()); + result.setNineteenFlowRate(pointDetailInfo.getNineteenFlowRate()); + result.setPointDirection(pointDetailInfo.getPointDirection()); + result.setSiteConditions(pointDetailInfo.getSiteConditions()); + result.setStoreWidth(pointDetailInfo.getStoreWidth()); + result.setLandlordUsername(pointDetailInfo.getLandlordUsername()); + result.setLandlordMobile(pointDetailInfo.getLandlordMobile()); + result.setPaymentMethod(pointDetailInfo.getPaymentMethod()); + result.setPropertyStatus(pointDetailInfo.getPropertyStatus()); + result.setTransferFee(pointDetailInfo.getTransferFee()); + result.setCoverCommunity(pointDetailInfo.getCoverCommunity()); + result.setConsumerAbility(pointDetailInfo.getConsumerAbility()); + result.setFlowRateCalculate(pointDetailInfo.getFlowRateCalculate()); + result.setGatherGuestFarmerMarket(pointDetailInfo.getGatherGuestFarmerMarket()); + result.setGatherGuestHospital(pointDetailInfo.getGatherGuestHospital()); + result.setGatherGuestSchool(pointDetailInfo.getGatherGuestSchool()); + result.setStoreFlowTrend(pointDetailInfo.getStoreFlowTrend()); + result.setNearRepast(pointDetailInfo.getNearRepast()); + result.setNearNeighbor(pointDetailInfo.getNearNeighbor()); + result.setNearCompete(pointDetailInfo.getNearCompete()); + result.setNearBusinessCondition(pointDetailInfo.getNearBusinessCondition()); + result.setIntendPosition(pointDetailInfo.getIntendPosition()); + result.setGreenBelt(pointDetailInfo.getGreenBelt()); + result.setStoreOutlook(pointDetailInfo.getStoreOutlook()); + result.setGuestConvenience(pointDetailInfo.getGuestConvenience()); + result.setWantShopSize(pointDetailInfo.getWantShopSize()); + result.setCompeteType(pointDetailInfo.getCompeteType()); + result.setCompeteBusinessCapacity(pointDetailInfo.getCompeteBusinessCapacity()); + result.setInvestAmount(pointDetailInfo.getInvestAmount()); + result.setDayTrader(pointDetailInfo.getDayTrader()); + result.setProfitRate(pointDetailInfo.getProfitRate()); + result.setMonthProfitRate(pointDetailInfo.getMonthProfitRate()); + result.setDeliveryRate(pointDetailInfo.getDeliveryRate()); + result.setDeliveryFee(pointDetailInfo.getDeliveryFee()); + result.setBrandUseRate(pointDetailInfo.getBrandUseRate()); + result.setBrandUseFee(pointDetailInfo.getBrandUseFee()); + result.setStaffFee(pointDetailInfo.getStaffFee()); + result.setShopManagerNum(pointDetailInfo.getShopManagerNum()); + result.setShopManagerFee(pointDetailInfo.getShopManagerFee()); + result.setClerkNum(pointDetailInfo.getClerkNum()); + result.setClerkFee(pointDetailInfo.getClerkFee()); + result.setBonus(pointDetailInfo.getBonus()); + result.setMonthRent(pointDetailInfo.getMonthRent()); + result.setOtherFee(pointDetailInfo.getOtherFee()); + result.setNetProfit(pointDetailInfo.getNetProfit()); + result.setMonthRateReturn(pointDetailInfo.getMonthRateReturn()); + result.setDevelopmentManagerSign(pointDetailInfo.getDevelopmentManagerSign()); + result.setDevelopmentManagerSignTime(pointDetailInfo.getDevelopmentManagerSignTime()); + result.setOperationUserSign(pointDetailInfo.getOperationUserSign()); + result.setOperationUserSignTime(pointDetailInfo.getOperationUserSignTime()); + result.setLineSign(pointDetailInfo.getLineSign()); + result.setLineSignTime(pointDetailInfo.getLineSignTime()); + result.setMarketSizeScore(pointDetailInfo.getMarketSizeScore()); + result.setShopAreaScore(pointDetailInfo.getShopAreaScore()); + result.setConvenientScore(pointDetailInfo.getConvenientScore()); + result.setEnvironmentScore(pointDetailInfo.getEnvironmentScore()); + result.setRentContract(pointDetailInfo.getRentContract()); + result.setMapEvaluationReport(pointDetailInfo.getMapEvaluationReport()); + result.setPictureObj(pointDetailInfo.getPictureObj()); return result; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopPointService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopPointService.java index f2777a777..a37962139 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopPointService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopPointService.java @@ -1,7 +1,9 @@ package com.cool.store.service; +import com.cool.store.request.AddMapEvaluationReportRequest; import com.cool.store.request.AddShopPointDetailRequest; import com.cool.store.request.UpdateShopPointDetailRequest; +import com.cool.store.vo.point.ShopPointDetailVO; /** * @author zhangchenbiao @@ -19,10 +21,53 @@ public interface ShopPointService { */ Long addShopPointDetailInfo(AddShopPointDetailRequest shopPointDetailRequest, String userId); + + /** + * 获取铺位详情 + * @param pointId + * @return + */ + ShopPointDetailVO getShopPointDetailInfo(Long pointId); + /** * 更新铺位 * @param shopPointDetailRequest * @return */ Integer updateShopPointDetailInfo(UpdateShopPointDetailRequest shopPointDetailRequest); + + /** + * 生成铺位评估报告 + * @param pointId + * @return + */ + Integer generateEvaluationReport(Long pointId); + + /** + * 铺位失效 + * @param pointId + * @return + */ + Integer pointInvalid(Long pointId); + + /** + * 解绑铺位 + * @param pointId + * @return + */ + Integer pointUnbind(Long pointId); + + /** + * 配置评估报告 + * @param request + * @return + */ + Integer addMapEvaluationReport(AddMapEvaluationReportRequest request); + + /** + * 提交审批 + * @param pointId + * @return + */ + Integer submitAudit(Long pointId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopPointServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopPointServiceImpl.java index 184e301ee..a6459f48c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopPointServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopPointServiceImpl.java @@ -1,19 +1,27 @@ package com.cool.store.service.impl; -import com.cool.store.dao.LineInfoDAO; -import com.cool.store.dao.ShopInfoDAO; -import com.cool.store.dao.ShopPointDetailInfoDAO; -import com.cool.store.dao.ShopPointInfoDAO; +import com.cool.store.dao.*; import com.cool.store.entity.ShopPointDetailInfoDO; import com.cool.store.entity.ShopPointInfoDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.point.PointRecommendStatus; +import com.cool.store.enums.point.PointStatusEnum; +import com.cool.store.enums.point.SelectStatusEnum; +import com.cool.store.exception.ServiceException; +import com.cool.store.request.AddMapEvaluationReportRequest; import com.cool.store.request.AddShopPointDetailRequest; import com.cool.store.request.UpdateShopPointDetailRequest; import com.cool.store.service.ShopPointService; +import com.cool.store.vo.point.ShopPointDetailVO; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Date; +import java.util.Objects; /** * @author zhangchenbiao @@ -21,6 +29,7 @@ import java.time.format.DateTimeFormatter; * @Description: * @date 2024-03-29 15:25 */ +@Slf4j @Service public class ShopPointServiceImpl implements ShopPointService { @@ -32,29 +41,130 @@ public class ShopPointServiceImpl implements ShopPointService { private ShopPointDetailInfoDAO shopPointDetailInfoDAO; @Resource private LineInfoDAO lineInfoDAO; + @Resource + private ShopPointRecommendDAO shopPointRecommendDAO; @Override public Long addShopPointDetailInfo(AddShopPointDetailRequest shopPointDetailRequest, String userId) { ShopPointInfoDO shopPointInfo = AddShopPointDetailRequest.convertPointDO(shopPointDetailRequest); shopPointInfo.setPointCode(generateCode()); shopPointInfo.setDevelopmentManager(userId); + shopPointInfo.setDevelopmentTime(new Date()); Long pointId = shopPointInfoDAO.addShopPointInfo(shopPointInfo); ShopPointDetailInfoDO shopPoint = AddShopPointDetailRequest.convertDO(shopPointDetailRequest); shopPoint.setPointId(pointId); return shopPointDetailInfoDAO.addShopPointDetailInfo(shopPoint); } + @Override + public ShopPointDetailVO getShopPointDetailInfo(Long pointId) { + ShopPointInfoDO pointInfo = shopPointInfoDAO.getShopPointInfoById(pointId); + if(Objects.isNull(pointInfo)){ + log.error("铺位基本信息不存在"); + throw new ServiceException(ErrorCodeEnum.POINT_NOT_EXIST); + } + ShopPointDetailInfoDO pointDetailInfo = shopPointDetailInfoDAO.getShopPointDetailInfoByPointId(pointId); + if(Objects.isNull(pointDetailInfo)){ + log.error("铺位详情信息不存在"); + throw new ServiceException(ErrorCodeEnum.POINT_NOT_EXIST); + } + return ShopPointDetailVO.convertVO(pointInfo, pointDetailInfo); + } + @Override public Integer updateShopPointDetailInfo(UpdateShopPointDetailRequest shopPointDetailRequest) { ShopPointInfoDO shopPointInfo = UpdateShopPointDetailRequest.convertPointDO(shopPointDetailRequest); ShopPointDetailInfoDO shopPoint = UpdateShopPointDetailRequest.convertDO(shopPointDetailRequest); - Long pointDetailId = shopPointDetailInfoDAO.getPointDetailIdByPointId(shopPointDetailRequest.getPointId()); - shopPoint.setId(pointDetailId); shopPointInfo.setPointScore(shopPoint.getTotalPointScore()); shopPointInfoDAO.updatePointInfo(shopPointInfo); return shopPointDetailInfoDAO.updateShopPointDetailInfo(shopPoint); } + @Override + public Integer generateEvaluationReport(Long pointId) { + ShopPointInfoDO pointInfo = shopPointInfoDAO.getShopPointInfoById(pointId); + ShopPointDetailInfoDO pointDetailInfo = shopPointDetailInfoDAO.getShopPointDetailInfoByPointId(pointId); + if(Objects.isNull(pointInfo) || Objects.isNull(pointDetailInfo)){ + throw new ServiceException(ErrorCodeEnum.POINT_NOT_EXIST); + } + if(!pointDetailInfo.isCanSubmitEvaluable()){ + throw new ServiceException(ErrorCodeEnum.POINT_NOT_COMPLETE); + } + Integer totalPointScore = pointDetailInfo.getTotalPointScore(); + ShopPointInfoDO updatePointInfo = new ShopPointInfoDO(); + updatePointInfo.setId(pointId); + updatePointInfo.setPointScore(totalPointScore); + updatePointInfo.setPointStatus(PointStatusEnum.POINT_STATUS_2.getCode()); + shopPointInfoDAO.updatePointInfo(updatePointInfo); + return totalPointScore; + } + + @Override + public Integer pointInvalid(Long pointId) { + ShopPointInfoDO pointInfo = shopPointInfoDAO.getShopPointInfoById(pointId); + if(Objects.isNull(pointInfo)){ + log.error("铺位基本信息不存在"); + throw new ServiceException(ErrorCodeEnum.POINT_NOT_EXIST); + } + if(PointStatusEnum.POINT_STATUS_6.getCode().equals(pointInfo.getPointStatus())){ + throw new ServiceException(ErrorCodeEnum.POINT_SIGNED); + } + ShopPointInfoDO updatePoint = new ShopPointInfoDO(); + updatePoint.setId(pointId); + updatePoint.setPointStatus(PointStatusEnum.POINT_STATUS_7.getCode()); + shopPointInfoDAO.updatePointInfo(updatePoint); + return shopPointRecommendDAO.updateRecommendStatus(pointId, PointRecommendStatus.POINT_RECOMMEND_STATUS_6); + } + + @Override + public Integer pointUnbind(Long pointId) { + ShopPointInfoDO pointInfo = shopPointInfoDAO.getShopPointInfoById(pointId); + if(Objects.isNull(pointInfo)){ + log.error("铺位基本信息不存在"); + throw new ServiceException(ErrorCodeEnum.POINT_NOT_EXIST); + } + if(PointStatusEnum.POINT_STATUS_6.getCode().equals(pointInfo.getPointStatus())){ + throw new ServiceException(ErrorCodeEnum.POINT_SIGNED); + } + ShopPointInfoDO updatePoint = new ShopPointInfoDO(); + updatePoint.setId(pointId); + updatePoint.setSelectStatus(SelectStatusEnum.SELECT_STATUS_0.getCode()); + shopPointInfoDAO.updatePointInfo(updatePoint); + //将已选择、已被他人选择的状态更新成待选泽 + return shopPointRecommendDAO.updateRecommendStatusByStatusAndPointId(pointId, PointRecommendStatus.POINT_RECOMMEND_STATUS_1, Arrays.asList(PointRecommendStatus.POINT_RECOMMEND_STATUS_2, PointRecommendStatus.POINT_RECOMMEND_STATUS_3)); + } + + @Override + public Integer addMapEvaluationReport(AddMapEvaluationReportRequest request) { + ShopPointDetailInfoDO pointDetailInfo = shopPointDetailInfoDAO.getShopPointDetailInfoByPointId(request.getPointId()); + if(Objects.isNull(pointDetailInfo)){ + log.error("铺位基本信息不存在"); + throw new ServiceException(ErrorCodeEnum.POINT_NOT_EXIST); + } + ShopPointDetailInfoDO updatePoint = new ShopPointDetailInfoDO(); + updatePoint.setId(pointDetailInfo.getId()); + updatePoint.setMapEvaluationReport(request.getMapEvaluationReport()); + return shopPointDetailInfoDAO.updateShopPointDetailInfo(updatePoint); + } + + @Override + public Integer submitAudit(Long pointId) { + ShopPointInfoDO pointInfo = shopPointInfoDAO.getShopPointInfoById(pointId); + if(Objects.isNull(pointInfo)){ + log.error("铺位基本信息不存在"); + throw new ServiceException(ErrorCodeEnum.POINT_NOT_EXIST); + } + if(!PointStatusEnum.POINT_STATUS_2.getCode().equals(pointInfo.getPointStatus())){ + throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE); + } + ShopPointInfoDO updatePoint = new ShopPointInfoDO(); + updatePoint.setId(pointId); + updatePoint.setPointStatus(PointStatusEnum.POINT_STATUS_3.getCode()); + updatePoint.setSubmitAuditCount(pointInfo.getSubmitAuditCount() + 1); + //处理子任务审核记录表 + return shopPointInfoDAO.updatePointInfo(updatePoint); + } + /** * 生成code * @return diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ShopPointController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ShopPointController.java index 2059005c9..81c24789b 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ShopPointController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ShopPointController.java @@ -1,15 +1,16 @@ package com.cool.store.controller.webb; import com.cool.store.context.CurrentUserHolder; +import com.cool.store.request.AddMapEvaluationReportRequest; import com.cool.store.request.AddShopPointDetailRequest; import com.cool.store.request.UpdateShopPointDetailRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.ShopPointService; +import com.cool.store.vo.point.ShopPointDetailVO; import io.swagger.annotations.Api; -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 io.swagger.annotations.ApiOperation; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -27,14 +28,54 @@ public class ShopPointController { @Resource private ShopPointService shopPointService; + @ApiOperation("新增铺位") @PostMapping("/add") - public ResponseResult addShopPointDetailInfo(@RequestBody AddShopPointDetailRequest shopPointDetailRequest) { + public ResponseResult addShopPointDetailInfo(@RequestBody @Validated AddShopPointDetailRequest shopPointDetailRequest) { return ResponseResult.success(shopPointService.addShopPointDetailInfo(shopPointDetailRequest, CurrentUserHolder.getUserId())); } + @ApiOperation("铺位详情") + @GetMapping("/detail") + public ResponseResult getShopPointDetailInfo(@RequestParam("pointId")Long pointId) { + return ResponseResult.success(shopPointService.getShopPointDetailInfo(pointId)); + } + + @ApiOperation("完善铺位") @PostMapping("/update") - public ResponseResult updateShopPointDetailInfo(@RequestBody UpdateShopPointDetailRequest shopPointDetailRequest) { + public ResponseResult updateShopPointDetailInfo(@RequestBody @Validated UpdateShopPointDetailRequest shopPointDetailRequest) { return ResponseResult.success(shopPointService.updateShopPointDetailInfo(shopPointDetailRequest)); } + @ApiOperation("生成评估报告") + @GetMapping("/generateEvaluationReport") + public ResponseResult generateEvaluationReport(@RequestParam("pointId")Long pointId) { + return ResponseResult.success(shopPointService.generateEvaluationReport(pointId)); + } + + @ApiOperation("铺位失效") + @GetMapping("/invalid") + public ResponseResult pointInvalid(@RequestParam("pointId")Long pointId) { + return ResponseResult.success(shopPointService.pointInvalid(pointId)); + } + + @ApiOperation("铺位解绑") + @GetMapping("/unbind") + public ResponseResult pointUnbind(@RequestParam("pointId")Long pointId) { + return ResponseResult.success(shopPointService.pointUnbind(pointId)); + } + + @ApiOperation("配置评估报告") + @PostMapping("/addMapEvaluationReport") + public ResponseResult addMapEvaluationReport(@RequestBody AddMapEvaluationReportRequest request) { + return ResponseResult.success(shopPointService.addMapEvaluationReport(request)); + } + + @ApiOperation("提交审批") + @GetMapping("/submitAudit") + public ResponseResult submitAudit(@RequestParam("pointId")Long pointId) { + return ResponseResult.success(shopPointService.submitAudit(pointId)); + } + + + }