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 a106dfde5..f94f79df3 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 @@ -229,7 +229,8 @@ public enum ErrorCodeEnum { UPDATE_FAIL(131000,"修改失败,表单不存在!",null), LICENSE_LEGAL_STAGE_FAIL(131001,"营业执照阶段未上传!",null), - GET_JURIDICAL_ID_CARD_NO_FAIL(131002,"获取法人身份证信息失败!",null) + GET_JURIDICAL_ID_CARD_NO_FAIL(131002,"获取法人身份证信息失败!",null), + UPDATE_INVESTMENT_MANAGER_FAIL(131005,"当前用户已经为该门店招商经理",null) ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/OperationLogTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperationLogTypeEnum.java index 54ed24023..6ea38211a 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/OperationLogTypeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperationLogTypeEnum.java @@ -9,7 +9,8 @@ public enum OperationLogTypeEnum { TRANSFER_INVESTMENT_MANAGER(1, "转让招商经理_线索"), ENTRUST_INTERVIEW(2, "委托面试"), - TRANSFER_INVESTMENT_MANAGER_3(3, "转让招商经理_加盟商"); + TRANSFER_INVESTMENT_MANAGER_3(3, "转让招商经理_加盟商"), + TRANSFER_INVESTMENT_MANAGER_4(4, "转让招商经理_门店"); private final int code; private final String description; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/TransferLogDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/TransferLogDAO.java index 2d1bab738..53e73913d 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/TransferLogDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/TransferLogDAO.java @@ -24,11 +24,11 @@ public class TransferLogDAO { } - public List getTransferLogList(Long lindId){ + public List getTransferLogList(Long lindId,Integer lineShopType){ if (lindId == null){ return null; } - return transferLogMapper.getTransferLogList(lindId); + return transferLogMapper.getTransferLogList(lindId,lineShopType); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/TransferLogMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/TransferLogMapper.java index de3a8ec1f..a054fac2e 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/TransferLogMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/TransferLogMapper.java @@ -14,7 +14,7 @@ public interface TransferLogMapper extends Mapper { * @param lindId * @return */ - List getTransferLogList(@Param("lindId") Long lindId); + List getTransferLogList(@Param("lindId") Long lindId,@Param("lineShopType")Integer lineShopType); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml index 37da2d2b4..3d94081a1 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml @@ -26,13 +26,15 @@ + + id, region_id, line_id, partner_id, point_id, shop_name, shop_code, store_num, shop_manager_user_id, supervisor_user_id, plan_open_time, cur_progress, shop_type, shop_stage, deleted, create_time, update_time, - join_mode,detail_address,franchise_brand,development_manager,want_shop_area_id,investment_manager,shop_status + join_mode,detail_address,franchise_brand,development_manager,want_shop_area_id,investment_manager,shop_status,create_user_id,update_user_id diff --git a/coolstore-partner-dao/src/main/resources/mapper/TransferLogMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/TransferLogMapper.xml index 6bbc61a58..1770d2032 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/TransferLogMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/TransferLogMapper.xml @@ -1,36 +1,37 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/TransferLogDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/TransferLogDTO.java index 61bb5bddf..93f5aba50 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/TransferLogDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/TransferLogDTO.java @@ -1,5 +1,6 @@ package com.cool.store.dto; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -9,19 +10,20 @@ import lombok.Data; */ @Data public class TransferLogDTO { - + @ApiModelProperty("操作人id") private String fromUserId; - + @ApiModelProperty("被分配人ID") private String toUserId; - + @ApiModelProperty("操作人") private String fromUserName; - + @ApiModelProperty("被分配人") private String toUserName; - + @ApiModelProperty("") private String fromUserMobile; - + @ApiModelProperty("") private String toUserMobile; - + @ApiModelProperty("") private Integer type; - + @ApiModelProperty("'1-线索,2-门店'") + private Integer lineShopType; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java index b13935b2f..9ea93ba8a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java @@ -104,7 +104,10 @@ public class ShopInfoDO { */ @Column(name = "create_time") private Date createTime; - + @Column(name = "create_user_id") + private String createUserId; + @Column(name = "update_user_id") + private String updateUserId; /** * 更新时间 */ @@ -115,7 +118,7 @@ public class ShopInfoDO { private Integer joinMode; @Column(name = "franchise_brand") - private String franchiseBrand; + private Integer franchiseBrand; @Column(name = "development_manager") private String developmentManager; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/TransferLogDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/TransferLogDO.java index a308fba3e..9b1c38a49 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/TransferLogDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/TransferLogDO.java @@ -11,7 +11,7 @@ public class TransferLogDO { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - + // line_info.id/shop_id', @Column(name = "line_id") private Long lineId; @@ -58,6 +58,9 @@ public class TransferLogDO { */ @Column(name = "update_user_id") private String updateUserId; + //'1-线索,2-门店' + @Column(name = "line_shop_type") + private String lineShopType; /** * @return id @@ -110,7 +113,6 @@ public class TransferLogDO { } - /** * 获取创建时间 * diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AddBranchShopRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AddBranchShopRequest.java index 5acf7f974..cb63798f9 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/AddBranchShopRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AddBranchShopRequest.java @@ -32,9 +32,13 @@ public class AddBranchShopRequest { @NotNull @Min(1) @Max(3) - @ApiModelProperty(" //'1-社会加盟模式/加盟部加盟店 2-强加盟模式/加盟公司加盟店 3-加盟公司自有店',") + @ApiModelProperty(" 加盟模式//'1-社会加盟模式/加盟部加盟店 2-强加盟模式/加盟公司加盟店 3-加盟公司自有店',") private Integer joinMode; - + @NotNull + @Min(1) + @Max(6) + @ApiModelProperty("'加盟品牌1,\"正新鸡排\",2,\"正新三明治\",3,\"正烧记\"4,\"大鼓米线\"5,\"串小妹\"6,\"茂掌柜\"'") + private Integer franchiseBrand; @ApiModelProperty("督导") private String investmentManagerUserId; @NotNull @@ -56,6 +60,7 @@ public class AddBranchShopRequest { shopInfoDO.setShopStatus(ShopStatusEnum.ING.getCode()); shopInfoDO.setShopStage(ShopStageEnum.SHOP_STAGE_1.getShopStage()); shopInfoDO.setPartnerId(partnerId); + shopInfoDO.setFranchiseBrand(request.getFranchiseBrand()); return shopInfoDO; } } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/BranchShopDetailRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/BranchShopDetailRequest.java new file mode 100644 index 000000000..9e54f9b14 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/BranchShopDetailRequest.java @@ -0,0 +1,32 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; + +/** + * @Author: WangShuo + * @Date: 2025/01/08/下午4:49 + * @Version 1.0 + * @注释: + */ +@Data +public class BranchShopDetailRequest { + + private Long shopId; + @ApiModelProperty("加盟意向区域") + private Long wantShopAreaId; + @ApiModelProperty("所属区域") + private Long regionId; + @NotNull + @Min(1) + @Max(3) + @ApiModelProperty("加盟模式 1-社会加盟模式/加盟部加盟店 2-强加盟模式/加盟公司加盟店 3-加盟公司自有店") + private Integer joinMode; + @NotNull + @ApiModelProperty("加盟品牌") + private Integer franchiseBrand; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/UpdateLineRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/UpdateLineRequest.java index 684e4535f..50b2f994d 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/UpdateLineRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/UpdateLineRequest.java @@ -26,8 +26,8 @@ public class UpdateLineRequest { private Long regionId; @NotNull @Min(1) - @Max(2) - @ApiModelProperty("加盟模式 1-社会加盟 2-强加盟") + @Max(3) + @ApiModelProperty("加盟模式 1-社会加盟模式/加盟部加盟店 2-强加盟模式/加盟公司加盟店 3-加盟公司自有店") private Integer joinMode; @NotNull @ApiModelProperty("加盟品牌") diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/BranchShopDetailResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/BranchShopDetailResponse.java new file mode 100644 index 000000000..7e37273e6 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/BranchShopDetailResponse.java @@ -0,0 +1,59 @@ +package com.cool.store.response; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.temporal.ChronoUnit; +import java.util.Date; + +/** + * @Author: WangShuo + * @Date: 2025/01/08/下午4:11 + * @Version 1.0 + * @注释: + */ +@Data +public class BranchShopDetailResponse { + + @ApiModelProperty("加盟商名称") + private String username; + + @ApiModelProperty("加盟手机号") + private String mobile; + @ApiModelProperty(" 加盟模式//'1-社会加盟模式/加盟部加盟店 2-强加盟模式/加盟公司加盟店 3-加盟公司自有店'") + private Integer joinMode; + + private Long shopId; + + @ApiModelProperty("门店编号") + private String shopCode; + + @ApiModelProperty("门店名称") + private String shopName; + + @ApiModelProperty("总项数") + private Integer totalColumn; + + @ApiModelProperty("完成项") + private Integer completionColumn; + + @ApiModelProperty("所属品牌 1,\"正新鸡排\",2,\"正新三明治\",3,\"正烧记\"4,\"大鼓米线\"5,\"串小妹\"6,\"茂掌柜\"") + private Integer franchiseBrand; + + @ApiModelProperty("预估完成时间") + private Date planCompletionTime; + + @ApiModelProperty("招商经理名称") + private String investmentManagerName; + + @ApiModelProperty("招商经理userId") + private String investmentManagerId; + + @ApiModelProperty("所属大区") + private String regionName; + + @ApiModelProperty("意向开店区域") + private String wantRegionName; + + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java index ba6c9a1ce..0d827476d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java @@ -2,10 +2,8 @@ package com.cool.store.service; import com.cool.store.entity.LineInfoDO; import com.cool.store.entity.ShopInfoDO; -import com.cool.store.request.AddBranchShopRequest; -import com.cool.store.request.AddShopRequest; -import com.cool.store.request.DeleteShopRequest; -import com.cool.store.request.UpdateShopCodeRequest; +import com.cool.store.request.*; +import com.cool.store.response.BranchShopDetailResponse; import com.cool.store.vo.shop.MiniShopPageVO; import com.cool.store.vo.shop.RentInfoToDoVO; import com.cool.store.vo.shop.ShopStageInfoVO; @@ -75,4 +73,10 @@ public interface ShopService { //新建分店 Long addBranchShop(AddBranchShopRequest request,String userId); + //开店详情/左边小窗 + BranchShopDetailResponse getBranchShopDetail(Long shopId); + //修改开店详情/左边小窗 + Integer updateBranchShopDetail(BranchShopDetailRequest request,String userId); + //修改门店招商专员/督导 + Integer updateShopInvestment(Long shopId,String updateUserId,String userId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/TransferLogService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/TransferLogService.java index 71e08e3e9..5bcaf84b7 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/TransferLogService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/TransferLogService.java @@ -2,6 +2,7 @@ package com.cool.store.service; import com.cool.store.dto.TransferLogDTO; import com.cool.store.entity.LineInfoDO; +import com.cool.store.entity.ShopInfoDO; import com.cool.store.enums.OperationLogTypeEnum; import com.github.pagehelper.PageInfo; @@ -21,6 +22,7 @@ public interface TransferLogService { */ void addLog(LineInfoDO lineInfoDO, String formUserId, String toUserId, OperationLogTypeEnum operationLogTypeEnum); + void addLog(ShopInfoDO shopInfoDO, String formUserId, String toUserId, OperationLogTypeEnum operationLogTypeEnum); - PageInfo getTransferLogPage(Integer pageNum, Integer pageSize, Long lineId); + PageInfo getTransferLogPage(Integer pageNum, Integer pageSize, Long lineId,Integer lineShopType); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java index 3ef139b09..50f3144e5 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java @@ -1,25 +1,25 @@ package com.cool.store.service.impl; +import com.cool.store.constants.CommonConstants; import com.cool.store.dao.*; +import com.cool.store.dto.Preparation.ScheduleDTO; +import com.cool.store.dto.RegionNode; import com.cool.store.entity.*; -import com.cool.store.enums.ErrorCodeEnum; -import com.cool.store.enums.MessageEnum; -import com.cool.store.enums.SMSMsgEnum; -import com.cool.store.enums.UserRoleEnum; +import com.cool.store.enums.*; import com.cool.store.enums.point.*; import com.cool.store.exception.ServiceException; -import com.cool.store.request.AddBranchShopRequest; -import com.cool.store.request.AddShopRequest; -import com.cool.store.request.DeleteShopRequest; -import com.cool.store.request.UpdateShopCodeRequest; -import com.cool.store.service.ShopService; -import com.cool.store.service.UserAuthMappingService; +import com.cool.store.mapper.RegionMapper; +import com.cool.store.request.*; +import com.cool.store.response.BranchShopDetailResponse; +import com.cool.store.service.*; import com.cool.store.utils.NumberConverter; import com.cool.store.utils.RandomEightCharCodeUtils; import com.cool.store.utils.poi.StringUtils; +import com.cool.store.vo.BaseInfoVO; import com.cool.store.vo.shop.MiniShopPageVO; import com.cool.store.vo.shop.ShopStageInfoVO; import com.cool.store.vo.shop.StageShopCountVO; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -29,6 +29,8 @@ import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; +import static com.cool.store.enums.ErrorCodeEnum.UPDATE_INVESTMENT_MANAGER_FAIL; + /** * @author zhangchenbiao * @FileName: ShopServiceImpl @@ -56,17 +58,25 @@ public class ShopServiceImpl implements ShopService { UserAuthMappingService userAuthMappingService; @Autowired private RegionDao regionDao; + @Autowired + private EnterpriseUserDAO enterpriseUserDAO; + @Resource + private HyOpenAreaInfoDAO hyOpenAreaInfoDAO; + @Autowired + private RegionMapper regionMapper; + @Autowired + private TransferLogService transferLogService; @Override @Transactional(rollbackFor = Exception.class) public Integer initShop(LineInfoDO lineInfo) { - if(Objects.isNull(lineInfo)){ + if (Objects.isNull(lineInfo)) { throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST); } Integer wantShopNum = lineInfo.getWantShopNum(); List shopList = shopInfoDAO.getShopList(lineInfo.getId()); int shopSize = shopList.size(); - if(shopSize >= wantShopNum){ + if (shopSize >= wantShopNum) { return 0; } List addShopList = new ArrayList<>(); @@ -103,19 +113,19 @@ public class ShopServiceImpl implements ShopService { Map stageMap = subStageList.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopId, Function.identity())); List regionIds = shopList.stream().map(ShopInfoDO::getRegionId).collect(Collectors.toList()); Map regionNameMap = regionDao.getRegionNameMap(regionIds); - return MiniShopPageVO.convertList(shopList,stageMap,regionNameMap); + return MiniShopPageVO.convertList(shopList, stageMap, regionNameMap); } @Override public List getShopStageInfo(Long shopId, Integer shopStage) { - if(Objects.nonNull(shopStage)){ + if (Objects.nonNull(shopStage)) { ShopStageEnum shopStageEnum = ShopStageEnum.getShopStageEnum(shopStage); - if(Objects.isNull(shopStageEnum)){ + if (Objects.isNull(shopStageEnum)) { throw new ServiceException(ErrorCodeEnum.SHOP_STAGE_ERROR); } } List shopStageInfo = shopStageInfoDAO.getShopStageInfo(shopId, shopStage); - List auditIds = shopStageInfo.stream().filter(o->Objects.nonNull(o.getAuditId())).map(ShopStageInfoDO::getAuditId).distinct().collect(Collectors.toList()); + List auditIds = shopStageInfo.stream().filter(o -> Objects.nonNull(o.getAuditId())).map(ShopStageInfoDO::getAuditId).distinct().collect(Collectors.toList()); List auditList = shopAuditInfoDAO.getAuditInfoList(auditIds); return ShopStageInfoVO.convertList(shopStageInfo, auditList); } @@ -128,7 +138,7 @@ public class ShopServiceImpl implements ShopService { @Override public Integer deleteShop(DeleteShopRequest request) { ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId()); - if(Objects.nonNull(shopInfo)){ + if (Objects.nonNull(shopInfo)) { //进入选址不允许删除操作 throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE); } @@ -136,9 +146,9 @@ public class ShopServiceImpl implements ShopService { // if(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_33.getShopSubStageStatus().equals(shopSubStageInfo.getShopSubStageStatus())){ // throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE); // } - if(Objects.nonNull(shopInfo.getPointId())){ + if (Objects.nonNull(shopInfo.getPointId())) { PointInfoDO pointInfo = pointInfoDAO.getPointInfoById(shopInfo.getPointId()); - if(Objects.nonNull(pointInfo) && SelectStatusEnum.SELECT_STATUS_1.getCode().equals(pointInfo.getSelectStatus())){ + if (Objects.nonNull(pointInfo) && SelectStatusEnum.SELECT_STATUS_1.getCode().equals(pointInfo.getSelectStatus())) { pointInfoDAO.recyclePoint(pointInfo.getId()); } pointRecommendDAO.updateRecommendStatus(shopInfo.getPointId(), PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_1, Arrays.asList(PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_5)); @@ -153,7 +163,7 @@ public class ShopServiceImpl implements ShopService { @Transactional(rollbackFor = Exception.class) public Long addShop(AddShopRequest request) { LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); - if(Objects.isNull(lineInfo)){ + if (Objects.isNull(lineInfo)) { throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST); } List shopNameList = request.getShopNameList(); @@ -181,35 +191,96 @@ public class ShopServiceImpl implements ShopService { @Override public ShopInfoDO getShopInfo(Long shopId) { - return shopInfoDAO.getShopInfo(shopId); + return shopInfoDAO.getShopInfo(shopId); } @Override public Integer updateShopCode(UpdateShopCodeRequest request) { ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId()); - if(Objects.isNull(shopInfo)){ + if (Objects.isNull(shopInfo)) { throw new ServiceException(ErrorCodeEnum.POINT_NOT_EXIST); } shopInfo.setShopCode(request.getShopCode()); shopInfo.setShopName(request.getShopName()); shopInfo.setUpdateTime(new Date()); shopInfo.setRegionId(request.getRegionId()); - return shopInfoDAO.updateShopInfo(shopInfo); + return shopInfoDAO.updateShopInfo(shopInfo); } @Override - @Transactional(rollbackFor = Exception.class ) - public Long addBranchShop(AddBranchShopRequest request,String userId) { - if (StringUtils.isBlank(request.getInvestmentManagerUserId())){ + @Transactional(rollbackFor = Exception.class) + public Long addBranchShop(AddBranchShopRequest request, String userId) { + if (StringUtils.isBlank(request.getInvestmentManagerUserId())) { request.setInvestmentManagerUserId(userId); } LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); - Integer wantShopNum = lineInfo.getWantShopNum()+1; + Integer wantShopNum = lineInfo.getWantShopNum() + 1; lineInfo.setWantShopNum(wantShopNum); lineInfoDAO.updateLineInfo(lineInfo); ShopInfoDO shopInfoDO = request.toDO(request, lineInfo.getPartnerId()); + shopInfoDO.setCreateUserId(userId); Long shopId = shopInfoDAO.addShopInfo(shopInfoDO); shopStageInfoDAO.initShopStageInfo(request.getLineId(), Collections.singletonList(shopId)); return shopId; } + + @Override + public BranchShopDetailResponse getBranchShopDetail(Long shopId) { + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); + LineInfoDO lineInfo = lineInfoDAO.getLineInfo(shopInfo.getLineId()); + if (Objects.isNull(lineInfo)) { + throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST); + } + EnterpriseUserDO invest = enterpriseUserDAO.getUserInfoById(shopInfo.getInvestmentManager()); + List shopContractActualCompletionTime = shopStageInfoDAO.getScheduleList(Collections.singletonList(shopId)); + RegionNode shopRegion = regionMapper.getRegionByRegionId(shopInfo.getRegionId().toString()); + String wantShopArea = hyOpenAreaInfoDAO.selectNameMapById(shopInfo.getWantShopAreaId()); + BranchShopDetailResponse response = new BranchShopDetailResponse(); + response.setUsername(lineInfo.getUsername()); + response.setMobile(lineInfo.getMobile()); + response.setShopId(shopId); + response.setShopName(shopInfo.getShopName()); + response.setJoinMode(shopInfo.getJoinMode()); + response.setShopCode(shopInfo.getShopCode()); + response.setFranchiseBrand(shopInfo.getFranchiseBrand()); + if (CollectionUtils.isNotEmpty(shopContractActualCompletionTime)) { + ScheduleDTO scheduleDTO = shopContractActualCompletionTime.get(CommonConstants.ZERO); + response.setCompletionColumn(scheduleDTO.getCompletionColumn()); + response.setTotalColumn(scheduleDTO.getTotalColumn()); + response.setPlanCompletionTime(scheduleDTO.getPlanCompleteTime()); + } + response.setInvestmentManagerId(shopInfo.getInvestmentManager()); + response.setInvestmentManagerName(invest.getName()); + response.setRegionName(shopRegion.getName()); + response.setWantRegionName(wantShopArea); + return response; + } + + @Override + public Integer updateBranchShopDetail(BranchShopDetailRequest request, String userId) { + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId()); + shopInfo.setUpdateUserId(userId); + shopInfo.setUpdateTime(new Date()); + shopInfo.setWantShopAreaId(request.getWantShopAreaId()); + shopInfo.setRegionId(request.getRegionId()); + shopInfo.setJoinMode(request.getJoinMode()); + shopInfo.setFranchiseBrand(request.getFranchiseBrand()); + return shopInfoDAO.updateShopInfo(shopInfo); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Integer updateShopInvestment(Long shopId, String updateUserId, String userId) { + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); + if(updateUserId.equals(shopInfo.getInvestmentManager())){ + throw new ServiceException(UPDATE_INVESTMENT_MANAGER_FAIL); + } + transferLogService.addLog(shopInfo,shopInfo.getInvestmentManager(),updateUserId,OperationLogTypeEnum.TRANSFER_INVESTMENT_MANAGER_4); + shopInfo.setUpdateTime(new Date()); + shopInfo.setUpdateUserId(userId); + shopInfo.setInvestmentManager(updateUserId); + shopInfo.setDevelopmentManager(updateUserId); + shopInfo.setSupervisorUserId(updateUserId); + return shopInfoDAO.updateShopInfo(shopInfo); + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TransferLogServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TransferLogServiceImpl.java index 8835bed36..ecf587db1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TransferLogServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TransferLogServiceImpl.java @@ -3,6 +3,7 @@ package com.cool.store.service.impl; import com.cool.store.dao.TransferLogDAO; import com.cool.store.dto.TransferLogDTO; import com.cool.store.entity.LineInfoDO; +import com.cool.store.entity.ShopInfoDO; import com.cool.store.entity.TransferLogDO; import com.cool.store.enums.OperationLogTypeEnum; import com.cool.store.service.TransferLogService; @@ -39,9 +40,23 @@ public class TransferLogServiceImpl implements TransferLogService { } @Override - public PageInfo getTransferLogPage(Integer pageNum, Integer pageSize, Long lineId) { + public void addLog(ShopInfoDO shopInfoDO, String formUserId, String toUserId, OperationLogTypeEnum operationLogTypeEnum) { + TransferLogDO transferLogDO = new TransferLogDO(); + transferLogDO.setLineId(shopInfoDO.getId()); + transferLogDO.setPartnerId(shopInfoDO.getPartnerId()); + transferLogDO.setFromUserId(formUserId); + transferLogDO.setToUserId(toUserId); + transferLogDO.setType(operationLogTypeEnum.getCode()); + transferLogDO.setCreateUserId("create"); + transferLogDO.setUpdateUserId("update"); + // 添加操作日志 + transferLogDAO.add(transferLogDO); + } + + @Override + public PageInfo getTransferLogPage(Integer pageNum, Integer pageSize, Long lineId,Integer lineShopType) { PageHelper.startPage(pageNum, pageSize); - List transferLogList = transferLogDAO.getTransferLogList(lineId); + List transferLogList = transferLogDAO.getTransferLogList(lineId,lineShopType); PageInfo transferLogDTOPageInfo = new PageInfo<>(transferLogList); return transferLogDTOPageInfo; } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineInfoController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineInfoController.java index 8ef8327ce..1f3f51055 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineInfoController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineInfoController.java @@ -118,12 +118,14 @@ public class LineInfoController { @ApiImplicitParams({ @ApiImplicitParam(name = "lineId", value = "线索id", required = true), @ApiImplicitParam(name = "pageNum", value = "页码", required = true), - @ApiImplicitParam(name = "pageSize", value = "大小", required = true) + @ApiImplicitParam(name = "pageSize", value = "大小", required = true), + @ApiImplicitParam(name = "lineShopType", value = "1-线索,2-门店", required = false) }) public ResponseResult> getTransferLogPage(@RequestParam("lineId")Long lineId, - @RequestParam(value = "pageNum" ,defaultValue = "1")Integer pageNum, - @RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize) { - return ResponseResult.success(transferLogService.getTransferLogPage(pageNum,pageSize,lineId)); + @RequestParam(value = "pageNum" ,defaultValue = "1")Integer pageNum, + @RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize, + @RequestParam(value = "lineShopType",defaultValue = "1") Integer lineShopType) { + return ResponseResult.success(transferLogService.getTransferLogPage(pageNum,pageSize,lineId,lineShopType)); } @ApiOperation("查询意向金详情") diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java index cd9de8678..e89d47434 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java @@ -1,16 +1,19 @@ package com.cool.store.controller.webb; import com.cool.store.context.CurrentUserHolder; -import com.cool.store.request.AddBranchShopRequest; -import com.cool.store.request.AddShopRequest; -import com.cool.store.request.DeleteShopRequest; -import com.cool.store.request.UpdateShopCodeRequest; +import com.cool.store.dto.TransferLogDTO; +import com.cool.store.request.*; +import com.cool.store.response.BranchShopDetailResponse; import com.cool.store.response.ResponseResult; import com.cool.store.service.ShopService; +import com.cool.store.service.TransferLogService; import com.cool.store.vo.shop.MiniShopPageVO; import com.cool.store.vo.shop.ShopStageInfoVO; import com.cool.store.vo.shop.StageShopCountVO; +import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -31,7 +34,8 @@ public class PCShopController { @Resource private ShopService shopService; - + @Resource + private TransferLogService transferLogService; @ApiOperation("获取店铺列表") @GetMapping("/getShopList") public ResponseResult> getShopList(@RequestParam("lineId")Long lineId) { @@ -74,4 +78,36 @@ public class PCShopController { return ResponseResult.success(shopService.addBranchShop(request,userId)); } + @ApiOperation("开店详情/左边小窗") + @GetMapping("/getBranchShopDetail") + public ResponseResult getBranchShopDetail(@RequestParam("shopId") Long shopId) { + return ResponseResult.success(shopService.getBranchShopDetail(shopId)); + } + @ApiOperation("修改开店详情/左边小窗") + @PostMapping("/updateBranchShopDetail") + public ResponseResult updateBranchShopDetail(@RequestBody @Validated BranchShopDetailRequest request) { + String userId = CurrentUserHolder.getUserId(); + return ResponseResult.success(shopService.updateBranchShopDetail(request,userId)); + } + @ApiOperation("修改门店招商专员/督导") + @GetMapping("/updateShopInvestment") + public ResponseResult updateShopInvestment(@RequestParam("shopId") Long shopId,@RequestParam("updateUserId") String updateUserId) { + String userId = CurrentUserHolder.getUserId(); + return ResponseResult.success(shopService.updateShopInvestment(shopId,updateUserId,userId)); + } + + @ApiOperation("门店转让记录") + @GetMapping("/getTransferLogPage") + @ApiImplicitParams({ + @ApiImplicitParam(name = "lineId", value = "线索id", required = true), + @ApiImplicitParam(name = "pageNum", value = "页码", required = true), + @ApiImplicitParam(name = "pageSize", value = "大小", required = true), + @ApiImplicitParam(name = "lineShopType", value = "1-线索,2-门店", required = true) + }) + public ResponseResult> getTransferLogPage(@RequestParam("lineId")Long lineId, + @RequestParam(value = "pageNum" ,defaultValue = "1")Integer pageNum, + @RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize, + @RequestParam(value = "lineShopType",defaultValue = "1") Integer lineShopType) { + return ResponseResult.success(transferLogService.getTransferLogPage(pageNum,pageSize,lineId,lineShopType)); + } }