开新店

This commit is contained in:
zhangchenbiao
2024-05-10 15:49:07 +08:00
parent 1b7e30c501
commit ad0c1e7b4e
19 changed files with 872 additions and 8 deletions

View File

@@ -106,6 +106,10 @@ public enum ErrorCodeEnum {
NOT_EXIST_UNSELECT_POINT(600017, "当前没有未选择的铺位", null),
SELECT_POINT_ERROR(600018, "铺位选中失败", null),
OPEN_NEW_SHOP_RECORD_NOT_EXIST(700001, "开店申请记录不存在", null),
OPEN_NEW_SHOP_RECORD_AUDITED(700002, "开店申请已审核", null),
OPEN_NEW_SHOP_RECORD_WAIT_AUDIT(700003, "提交失败,您有开店申请正在审核中", null),
INTERVIEW_ENTER_FAIL(1021101, "进入面审间失败", null),
DINGDING_USER_NOT_EXIST(1021102, "用户钉钉信息不存在,无法发起资质审核!", null),
INTERVIEW_NOT_EXIST(1021103, "面审信息不存在!", null),

View File

@@ -0,0 +1,96 @@
package com.cool.store.dao;
import com.cool.store.dto.partner.PartnerOpenNewShopPageDTO;
import com.cool.store.entity.OpenNewShopRecordDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.OpenNewShopRecordMapper;
import com.cool.store.request.PartnerOpenNewShopPageRequest;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
/**
* @author zhangchenbiao
* @FileName: OpenNewShopRecordDAO
* @Description:
* @date 2024-05-09 15:09
*/
@Repository
public class OpenNewShopRecordDAO {
@Resource
private OpenNewShopRecordMapper openNewShopRecordMapper;
/**
* 获取开新店数据
* @param request
* @return
*/
public Page<PartnerOpenNewShopPageDTO> getPartnerOpenNewShopPage(PartnerOpenNewShopPageRequest request){
PageHelper.startPage(request.getPageNum(),request.getPageSize());
return openNewShopRecordMapper.getPartnerOpenNewShopPage(request);
}
/**
* 获取详情
* @param id
* @return
*/
public OpenNewShopRecordDO getOpenNewShopRecordById(Long id){
return openNewShopRecordMapper.selectByPrimaryKey(id);
}
public Integer updateOpenNewShopRecord(OpenNewShopRecordDO openNewShopRecordDO){
return openNewShopRecordMapper.updateByPrimaryKeySelective(openNewShopRecordDO);
}
/**
* 获取待审核的开新店记录
* @param lineId
* @return
*/
public OpenNewShopRecordDO getWaitAuditOpenNewShopRecord(Long lineId){
if(Objects.isNull(lineId)){
return null;
}
return openNewShopRecordMapper.getWaitAuditOpenNewShopRecord(lineId);
}
public Long insertOpenNewShopRecord(OpenNewShopRecordDO openNewShopRecordDO){
if(Objects.isNull(openNewShopRecordDO.getLineId())){
throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR);
}
openNewShopRecordMapper.insertSelective(openNewShopRecordDO);
return openNewShopRecordDO.getId();
}
/**
* 根据lineId获取开新店记录
* @param lineId
* @return
*/
public List<OpenNewShopRecordDO> getOpenNewShopRecordList(Long lineId){
if(Objects.isNull(lineId)){
return Lists.newArrayList();
}
return openNewShopRecordMapper.getOpenNewShopRecordList(lineId);
}
/**
* 删除开新店记录
* @param deleteIds
*/
public void deleteOpenNewShopRecord(List<Long> deleteIds) {
if(CollectionUtils.isEmpty(deleteIds)){
return;
}
openNewShopRecordMapper.deleteOpenNewShopRecord(deleteIds);
}
}

View File

@@ -0,0 +1,41 @@
package com.cool.store.mapper;
import com.cool.store.dto.partner.PartnerOpenNewShopPageDTO;
import com.cool.store.entity.OpenNewShopRecordDO;
import com.cool.store.request.PartnerOpenNewShopPageRequest;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface OpenNewShopRecordMapper extends Mapper<OpenNewShopRecordDO> {
/**
* 获取老加盟商开新店列表
* @param request
* @return
*/
Page<PartnerOpenNewShopPageDTO> getPartnerOpenNewShopPage(@Param("request") PartnerOpenNewShopPageRequest request);
/**
* 获取待审核的记录
* @param lineId
* @return
*/
OpenNewShopRecordDO getWaitAuditOpenNewShopRecord(@Param("lineId") Long lineId);
/**
* 获取老加盟商开新店列表
* @param lineId
* @return
*/
List<OpenNewShopRecordDO> getOpenNewShopRecordList(@Param("lineId") Long lineId);
/**
* 删除老加盟商开新店
* @param deleteIds
* @return
*/
Integer deleteOpenNewShopRecord(@Param("deleteIds") List<Long> deleteIds);
}

View File

@@ -0,0 +1,67 @@
<?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.OpenNewShopRecordMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.OpenNewShopRecordDO">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="line_id" jdbcType="BIGINT" property="lineId" />
<result column="new_want_shop_num" jdbcType="INTEGER" property="newWantShopNum" />
<result column="fund" jdbcType="INTEGER" property="fund" />
<result column="audit_result" jdbcType="TINYINT" property="auditResult" />
<result column="deleted" jdbcType="BIT" property="deleted" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<select id="getPartnerOpenNewShopPage" resultType="com.cool.store.dto.partner.PartnerOpenNewShopPageDTO">
select
a.id as recordId,
b.id as lineId,
b.partner_num as partnerNum,
b.username,
b.mobile,
b.want_shop_area_id as wantShopAreaId,
b.user_portrait as userPortrait,
b.want_shop_num as wantShopNum,
b.development_manager as developmentManager,
b.line_source as lineSource,
a.audit_result as auditResult
from xfsg_open_new_shop_record a inner join xfsg_line_info b on a.line_id = b.id
where
a.deleted = 0 and b.deleted = 0 and b.investment_manager = #{request.investmentManager}
<if test="request.keyword != null and request.keyword != ''">
and (b.username like concat('%',#{request.keyword},'%') or b.mobile like concat('%',#{request.keyword},'%'))
</if>
<if test="request.areaPath != null and request.areaPath != '' ">
and b.want_shop_area_id in (select id from xfsg_open_area_info where area_path like concat(#{areaPath}, '%'))
</if>
<if test="request.auditResult != null">
and a.audit_result = #{request.auditResult}
</if>
</select>
<select id="getWaitAuditOpenNewShopRecord" resultMap="BaseResultMap">
select
id,
line_id,
new_want_shop_num,
fund,
audit_result,
deleted,
create_time,
update_time
from xfsg_open_new_shop_record
where
deleted = 0 and audit_result = 0 limit 1
</select>
<select id="getOpenNewShopRecordList" resultMap="BaseResultMap">
select id, audit_result from xfsg_open_new_shop_record where line_id = #{lineId} and deleted = 0
</select>
<update id="deleteOpenNewShopRecord">
update xfsg_open_new_shop_record set deleted = 1, update_time = now() where id in
<foreach collection="deleteIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update>
</mapper>

View File

@@ -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_rent_info
table.object.class = ShopRentInfoDO
table.mapper = ShopRentInfoMapper
table.name = xfsg_open_new_shop_record
table.object.class = OpenNewShopRecordDO
table.mapper = OpenNewShopRecordMapper

View File

@@ -0,0 +1,49 @@
package com.cool.store.dto.partner;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2024/4/1 11:30
* @Version 1.0
*/
@Data
public class PartnerOpenNewShopPageDTO {
@ApiModelProperty("记录id")
private Long recordId;
@ApiModelProperty("线索ID")
private Long lineId;
@ApiModelProperty("加盟商编号")
private String partnerNum;
@ApiModelProperty("线索名称")
private String username;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("意向加盟区域")
private Long wantShopAreaId;
@ApiModelProperty("线索标签")
private String userPortrait;
@ApiModelProperty("意向开店数量")
private Integer wantShopNum;
@ApiModelProperty("扩展经理名称")
private String developmentManager;
@ApiModelProperty("线索来源名称")
private Integer lineSource;
@ApiModelProperty("审核状态 0待审核 1通过 2不通过")
private Integer auditResult;
}

View File

@@ -0,0 +1,55 @@
package com.cool.store.entity;
import lombok.Data;
import java.util.Date;
import javax.persistence.*;
@Data
@Table(name = "xfsg_open_new_shop_record")
public class OpenNewShopRecordDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 线索id
*/
@Column(name = "line_id")
private Long lineId;
/**
* 新开意向店铺数量
*/
@Column(name = "new_want_shop_num")
private Integer newWantShopNum;
/**
* 现有资金
*/
private Integer fund;
/**
* 审核状态 0待审核 1通过 2不通过
*/
@Column(name = "audit_result")
private Integer auditResult;
/**
* 删除标识
*/
private Boolean deleted;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
}

View File

@@ -24,4 +24,11 @@ public class AddShopRequest {
@ApiModelProperty("店铺名称")
private List<String> shopNameList;
public AddShopRequest() {
}
public AddShopRequest(Long lineId, List<String> shopNameList) {
this.lineId = lineId;
this.shopNameList = shopNameList;
}
}

View File

@@ -0,0 +1,41 @@
package com.cool.store.request;
import com.cool.store.constants.CommonConstants;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author zhangchenbiao
* @FileName: AuditOpenNewShopRequest
* @Description:
* @date 2024-05-09 17:28
*/
@Data
public class AuditOpenNewShopRequest {
@NotNull
@ApiModelProperty("记录id")
private Long recordId;
@NotNull
@Min(1)@Max(2)
@ApiModelProperty("审核状态 0待审核 1通过 2不通过")
private Integer auditResult;
@ApiModelProperty("店铺名称")
private List<String> shopNameList;
public boolean check(){
if(CommonConstants.ONE == this.auditResult && CollectionUtils.isEmpty(this.shopNameList)){
return false;
}
return true;
}
}

View File

@@ -0,0 +1,30 @@
package com.cool.store.request;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2024/4/1 11:21
* @Version 1.0
*/
@Data
public class PartnerOpenNewShopPageRequest extends PageBasicInfo {
@ApiModelProperty("加盟上姓名或者手机号")
private String keyword;
@ApiModelProperty("意向区域ID")
private Long wantShopAreaId;
@ApiModelProperty("审核状态 0待审核 1通过 2不通过")
private Integer auditResult;
@ApiModelProperty(value = "招商经理", hidden = true)
private String investmentManager;
@ApiModelProperty(value = "区域路径", hidden = true)
private String areaPath;
}

View File

@@ -0,0 +1,41 @@
package com.cool.store.request;
import com.cool.store.entity.OpenNewShopRecordDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @author zhangchenbiao
* @FileName: SubmitOpenNewShopRequest
* @Description:
* @date 2024-05-10 10:17
*/
@Data
public class SubmitOpenNewShopRequest {
@ApiModelProperty(value = "线索id", required = true)
private Long lineId;
@NotNull
@Min(1)@Max(10)
@ApiModelProperty("新开意向店铺数量")
private Integer newWantShopNum;
@Max(99999)
@ApiModelProperty("现有资金")
private Integer fund;
public OpenNewShopRecordDO convertDO(){
OpenNewShopRecordDO result = new OpenNewShopRecordDO();
result.setLineId(this.lineId);
result.setNewWantShopNum(this.newWantShopNum);
result.setFund(this.fund);
return result;
}
}

View File

@@ -0,0 +1,45 @@
package com.cool.store.vo;
import com.cool.store.entity.OpenNewShopRecordDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Objects;
/**
* @author zhangchenbiao
* @FileName: PartnerOpenNewShopDetailVO
* @Description:加盟商开新店申请详情
* @date 2024-05-10 10:04
*/
@Data
public class PartnerOpenNewShopDetailVO {
@ApiModelProperty("记录id")
private Long recordId;
@ApiModelProperty("线索id")
private Long lineId;
@ApiModelProperty("新开意向店铺数量")
private Integer newWantShopNum;
@ApiModelProperty("现有资金")
private Integer fund;
@ApiModelProperty("审核结果 0通过,1拒绝")
private Integer auditResult;
public static PartnerOpenNewShopDetailVO convert(OpenNewShopRecordDO openNewShopRecord) {
if(Objects.isNull(openNewShopRecord)){
return null;
}
PartnerOpenNewShopDetailVO result = new PartnerOpenNewShopDetailVO();
result.setRecordId(openNewShopRecord.getId());
result.setLineId(openNewShopRecord.getLineId());
result.setNewWantShopNum(openNewShopRecord.getNewWantShopNum());
result.setFund(openNewShopRecord.getFund());
result.setAuditResult(openNewShopRecord.getAuditResult());
return result;
}
}

View File

@@ -0,0 +1,99 @@
package com.cool.store.vo;
import com.cool.store.dto.partner.PartnerOpenNewShopPageDTO;
import com.google.common.collect.Lists;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Author suzhuhong
* @Date 2024/4/1 11:30
* @Version 1.0
*/
@Data
public class PartnerOpenNewShopPageVO {
@ApiModelProperty("记录id")
private Long recordId;
@ApiModelProperty("线索ID")
private Long lineId;
@ApiModelProperty("加盟商编号")
private String partnerNum;
@ApiModelProperty("线索名称")
private String username;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("意向加盟区域")
private String wantShopAreaName;
@ApiModelProperty("线索标签")
private List<String> userPortraitList;
@ApiModelProperty("意向开店数量")
private Integer wantShopNum;
@ApiModelProperty("扩展经理名称")
private String developmentManagerUserName;
@ApiModelProperty("线索来源名称")
private String lineSourceName;
@ApiModelProperty("加盟时间")
private Date joinTime;
@ApiModelProperty("审核状态 0待审核 1通过 2不通过")
private Integer auditResult;
public static List<PartnerOpenNewShopPageVO> convertList(List<PartnerOpenNewShopPageDTO> list, Map<Long, Date> joinTimeMap, Map<Long, String> wantShopAreaMap,
Map<String, String> userNameMap, Map<Integer, String> channelMap, Map<Long, String> userPortraitMap){
if(CollectionUtils.isEmpty(list)){
return Lists.newArrayList();
}
List<PartnerOpenNewShopPageVO> resultList = new ArrayList<>();
for (PartnerOpenNewShopPageDTO page : list) {
PartnerOpenNewShopPageVO result = new PartnerOpenNewShopPageVO();
result.setRecordId(page.getRecordId());
result.setLineId(page.getLineId());
result.setPartnerNum(page.getPartnerNum());
result.setUsername(page.getUsername());
result.setMobile(page.getMobile());
result.setWantShopAreaName(wantShopAreaMap.get(page.getWantShopAreaId()));
result.setWantShopNum(page.getWantShopNum());
result.setDevelopmentManagerUserName(userNameMap.get(page.getDevelopmentManager()));
result.setLineSourceName(channelMap.get(page.getLineSource()));
result.setJoinTime(joinTimeMap.get(page.getLineId()));
result.setAuditResult(page.getAuditResult());
List<String> userPortraitList = new ArrayList<>();
if(StringUtils.isNotBlank(page.getUserPortrait())){
String[] parts = page.getUserPortrait().split(",");
for (String part : parts) {
String trimmedPart = part.trim();
if (StringUtils.isNotBlank(trimmedPart)) {
String s = userPortraitMap.get(Long.valueOf(part));
if(StringUtils.isNotBlank(s)){
userPortraitList.add(s);
}
}
}
result.setUserPortraitList(userPortraitList);
}
resultList.add(result);
}
return resultList;
}
}

View File

@@ -51,7 +51,7 @@ public class SimpleMessageServiceImpl implements SimpleMessageService {
properties.setProperty(CommonConstants.REQUEST_ID, requestId);
msg.setUserProperties(properties);
SendResult send = producer.send(msg);
log.info("消息发送send response:{}", JSONObject.toJSONString(send));
log.info("消息发送send mqTag:{}, response:{}", tag.getTag(), JSONObject.toJSONString(send));
return send;
} catch (Exception e) {
log.error("send#######", e);

View File

@@ -0,0 +1,48 @@
package com.cool.store.service;
import com.cool.store.request.AuditOpenNewShopRequest;
import com.cool.store.request.PartnerOpenNewShopPageRequest;
import com.cool.store.request.SubmitOpenNewShopRequest;
import com.cool.store.vo.PartnerOpenNewShopDetailVO;
import com.cool.store.vo.PartnerOpenNewShopPageVO;
import com.github.pagehelper.PageInfo;
/**
* @author zhangchenbiao
* @FileName: OpenNewShopService
* @Description:
* @date 2024-05-09 15:12
*/
public interface OpenNewShopService {
/**
* 获取老加盟商开新店
* @param request
* @return
*/
PageInfo<PartnerOpenNewShopPageVO> getPartnerOpenNewShopPage(PartnerOpenNewShopPageRequest request);
PartnerOpenNewShopDetailVO getOpenNewShopRecordDetail(Long recordId);
/**
* 审核开新店
* @param request
* @return
*/
Integer auditOpenNewShop(AuditOpenNewShopRequest request);
/**
* 提交开店申请
* @param request
* @return
*/
Long submitOpenNewShop(SubmitOpenNewShopRequest request);
/**
* 获取待审核记录
* @param lineId
* @return
*/
PartnerOpenNewShopDetailVO getWaitAuditOpenNewShopRecord(Long lineId);
}

View File

@@ -0,0 +1,143 @@
package com.cool.store.service.impl;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dao.HyOpenAreaInfoDAO;
import com.cool.store.dao.HyPartnerUserChannelDAO;
import com.cool.store.dao.OpenNewShopRecordDAO;
import com.cool.store.dto.partner.PartnerOpenNewShopPageDTO;
import com.cool.store.entity.HyOpenAreaInfoDO;
import com.cool.store.entity.OpenNewShopRecordDO;
import com.cool.store.entity.SigningBaseInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.IntentAgreementMapper;
import com.cool.store.request.AddShopRequest;
import com.cool.store.request.AuditOpenNewShopRequest;
import com.cool.store.request.PartnerOpenNewShopPageRequest;
import com.cool.store.request.SubmitOpenNewShopRequest;
import com.cool.store.service.LabelService;
import com.cool.store.service.OpenNewShopService;
import com.cool.store.service.ShopService;
import com.cool.store.vo.PartnerOpenNewShopDetailVO;
import com.cool.store.vo.PartnerOpenNewShopPageVO;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author zhangchenbiao
* @FileName: OpenNewShopServiceImpl
* @Description:
* @date 2024-05-09 15:12
*/
@Service
public class OpenNewShopServiceImpl implements OpenNewShopService {
@Resource
private HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
@Resource
private OpenNewShopRecordDAO openNewShopRecordDAO;
@Resource
private IntentAgreementMapper intentAgreementMapper;
@Resource
private EnterpriseUserDAO enterpriseUserDAO;
@Resource
private HyPartnerUserChannelDAO hyPartnerUserChannelDAO;
@Resource
private LabelService labelService;
@Resource
private ShopService shopService;
@Override
public PageInfo<PartnerOpenNewShopPageVO> getPartnerOpenNewShopPage(PartnerOpenNewShopPageRequest request) {
if(Objects.nonNull(request.getWantShopAreaId())){
HyOpenAreaInfoDO areaInfo = hyOpenAreaInfoDAO.selectById(request.getWantShopAreaId());
if(Objects.nonNull(areaInfo)){
request.setAreaPath(areaInfo.getAreaPath());
}
}
Page<PartnerOpenNewShopPageDTO> page = openNewShopRecordDAO.getPartnerOpenNewShopPage(request);
List<PartnerOpenNewShopPageVO> resultList = Lists.newArrayList();
if(Objects.nonNull(page) && CollectionUtils.isNotEmpty(page.getResult())){
List<PartnerOpenNewShopPageDTO> result = page.getResult();
List<Long> lineIds = result.stream().filter(o -> Objects.nonNull(o.getLineId())).map(PartnerOpenNewShopPageDTO::getLineId).distinct().collect(Collectors.toList());
List<Long> wantShopAreaIds = result.stream().filter(o -> Objects.nonNull(o.getWantShopAreaId())).map(PartnerOpenNewShopPageDTO::getWantShopAreaId).distinct().collect(Collectors.toList());
List<String> developmentManagerUserIds = result.stream().filter(o -> Objects.nonNull(o.getDevelopmentManager())).map(PartnerOpenNewShopPageDTO::getDevelopmentManager).distinct().collect(Collectors.toList());
List<Integer> lineSourceIds = result.stream().filter(o -> Objects.nonNull(o.getLineSource())).map(PartnerOpenNewShopPageDTO::getLineSource).distinct().collect(Collectors.toList());
List<String> userPortraitList = result.stream().filter(x -> StringUtils.isNotEmpty(x.getUserPortrait() )).map(PartnerOpenNewShopPageDTO::getUserPortrait).collect(Collectors.toList());
List<SigningBaseInfoDO> signingBaseInfoDOS = intentAgreementMapper.selectByLineIds(lineIds);
Map<Long, String> wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds);
Map<String, String> userNameMap = enterpriseUserDAO.getUserNameMap(developmentManagerUserIds);
Map<Integer, String> channelMap = hyPartnerUserChannelDAO.getChannelMapByIds(lineSourceIds);
Map<Long, String> userPortraitMap = labelService.getUserPortraitMap(userPortraitList);
Map<Long, Date> dateMap = signingBaseInfoDOS.stream().collect(Collectors.toMap(SigningBaseInfoDO::getLineId, SigningBaseInfoDO::getCreateTime));
resultList = PartnerOpenNewShopPageVO.convertList(result, dateMap, wantShopAreaMap, userNameMap, channelMap, userPortraitMap);
}
PageInfo resultPage = new PageInfo(page);
resultPage.setList(resultList);
return resultPage;
}
@Override
public PartnerOpenNewShopDetailVO getOpenNewShopRecordDetail(Long recordId) {
OpenNewShopRecordDO openNewShopRecord = openNewShopRecordDAO.getOpenNewShopRecordById(recordId);
if(Objects.isNull(openNewShopRecord)){
throw new ServiceException(ErrorCodeEnum.OPEN_NEW_SHOP_RECORD_NOT_EXIST);
}
return PartnerOpenNewShopDetailVO.convert(openNewShopRecord);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer auditOpenNewShop(AuditOpenNewShopRequest request) {
OpenNewShopRecordDO openNewShopRecord = openNewShopRecordDAO.getOpenNewShopRecordById(request.getRecordId());
if(Objects.isNull(openNewShopRecord) || openNewShopRecord.getDeleted()){
throw new ServiceException(ErrorCodeEnum.OPEN_NEW_SHOP_RECORD_NOT_EXIST);
}
if(CommonConstants.ZERO != openNewShopRecord.getAuditResult()){
throw new ServiceException(ErrorCodeEnum.OPEN_NEW_SHOP_RECORD_AUDITED);
}
if(request.getAuditResult() == CommonConstants.ONE){
shopService.addShop(new AddShopRequest(openNewShopRecord.getLineId(), request.getShopNameList()));
}
OpenNewShopRecordDO update = new OpenNewShopRecordDO();
update.setId(request.getRecordId());
update.setAuditResult(request.getAuditResult());
return openNewShopRecordDAO.updateOpenNewShopRecord(update);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Long submitOpenNewShop(SubmitOpenNewShopRequest request) {
List<OpenNewShopRecordDO> recordList = openNewShopRecordDAO.getOpenNewShopRecordList(request.getLineId());
if(CollectionUtils.isNotEmpty(recordList)){
List<OpenNewShopRecordDO> waitAuditRecordList = recordList.stream().filter(o -> CommonConstants.ZERO == o.getAuditResult()).collect(Collectors.toList());
//过滤待审核的
if(CollectionUtils.isNotEmpty(waitAuditRecordList)){
throw new ServiceException(ErrorCodeEnum.OPEN_NEW_SHOP_RECORD_WAIT_AUDIT);
}
List<Long> deleteIds = recordList.stream().map(OpenNewShopRecordDO::getId).collect(Collectors.toList());
openNewShopRecordDAO.deleteOpenNewShopRecord(deleteIds);
}
return openNewShopRecordDAO.insertOpenNewShopRecord(request.convertDO());
}
@Override
public PartnerOpenNewShopDetailVO getWaitAuditOpenNewShopRecord(Long lineId) {
OpenNewShopRecordDO openNewShopRecord = openNewShopRecordDAO.getWaitAuditOpenNewShopRecord(lineId);
return PartnerOpenNewShopDetailVO.convert(openNewShopRecord);
}
}

View File

@@ -1,21 +1,17 @@
package com.cool.store.service.impl;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*;
import com.cool.store.entity.*;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.point.*;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.ShopAuditInfoMapper;
import com.cool.store.request.AddShopRequest;
import com.cool.store.request.DeleteShopRequest;
import com.cool.store.service.ShopService;
import com.cool.store.utils.NumberConverter;
import com.cool.store.vo.shop.MiniShopPageVO;
import com.cool.store.vo.shop.RentInfoToDoVO;
import com.cool.store.vo.shop.ShopStageInfoVO;
import com.cool.store.vo.shop.StageShopCountVO;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

View File

@@ -0,0 +1,53 @@
package com.cool.store.controller.webb;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.request.AuditOpenNewShopRequest;
import com.cool.store.request.PartnerOpenNewShopPageRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.OpenNewShopService;
import com.cool.store.vo.PartnerOpenNewShopDetailVO;
import com.cool.store.vo.PartnerOpenNewShopPageVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* @author zhangchenbiao
* @FileName: PCOpenNewShopController
* @Description:
* @date 2024-05-09 15:08
*/
@RestController
@RequestMapping("/pc/open/new/shop")
@Api(tags = "PC端-老加盟商开新店")
@Slf4j
public class PCOpenNewShopController {
@Resource
private OpenNewShopService openNewShopService;
@ApiOperation("获取老加盟商开新店列表")
@PostMapping("/getPartnerOpenNewShopPage")
public ResponseResult<PageInfo<PartnerOpenNewShopPageVO>> getPartnerOpenNewShopPage(@RequestBody PartnerOpenNewShopPageRequest request) {
request.setInvestmentManager(CurrentUserHolder.getUserId());
return ResponseResult.success(openNewShopService.getPartnerOpenNewShopPage(request));
}
@ApiOperation("获取详情")
@PostMapping("/getOpenNewShopRecordDetail")
public ResponseResult<PartnerOpenNewShopDetailVO> getOpenNewShopRecordDetail(@RequestParam("recordId") Long recordId) {
return ResponseResult.success(openNewShopService.getOpenNewShopRecordDetail(recordId));
}
@ApiOperation("审核")
@PostMapping("/auditOpenNewShop")
public ResponseResult<Integer> auditOpenNewShop(@RequestBody @Validated AuditOpenNewShopRequest request) {
return ResponseResult.success(openNewShopService.auditOpenNewShop(request));
}
}

View File

@@ -0,0 +1,49 @@
package com.cool.store.controller.webc;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.request.AuditOpenNewShopRequest;
import com.cool.store.request.PartnerOpenNewShopPageRequest;
import com.cool.store.request.SubmitOpenNewShopRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.OpenNewShopService;
import com.cool.store.vo.PartnerOpenNewShopDetailVO;
import com.cool.store.vo.PartnerOpenNewShopPageVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* @author zhangchenbiao
* @FileName: PCOpenNewShopController
* @Description:
* @date 2024-05-09 15:08
*/
@RestController
@RequestMapping("/mini/open/new/shop")
@Api(tags = "小程序-老加盟商开新店")
@Slf4j
public class MiniOpenNewShopController {
@Resource
private OpenNewShopService openNewShopService;
@ApiOperation("开新店")
@PostMapping("/submitOpenNewShop")
public ResponseResult<Long> submitOpenNewShop(@RequestBody SubmitOpenNewShopRequest request) {
request.setLineId(PartnerUserHolder.getUser().getLineId());
return ResponseResult.success(openNewShopService.submitOpenNewShop(request));
}
@ApiOperation("获取待审核的状态")
@GetMapping("/getWaitAuditOpenNewShopRecord")
public ResponseResult<PartnerOpenNewShopDetailVO> getWaitAuditOpenNewShopRecord() {
return ResponseResult.success(openNewShopService.getWaitAuditOpenNewShopRecord(PartnerUserHolder.getUser().getLineId()));
}
}