Merge branch 'cc_20250515_handle' into 'master'

Cc 20250515 handle

See merge request hangzhou/java/custom_zxjp!87
This commit is contained in:
苏竹红
2025-05-19 10:30:37 +00:00
8 changed files with 262 additions and 7 deletions

View File

@@ -62,6 +62,8 @@ public enum UserRoleEnum {
QUOTATION_OFFICE(470000000L,"报价员"), QUOTATION_OFFICE(470000000L,"报价员"),
OWN_SHOP_OFFICE(480000000L,"自有店财务"), OWN_SHOP_OFFICE(480000000L,"自有店财务"),
BRAND_HEAD(490000000L,"品牌负责人"),
; ;
private Long code; private Long code;

View File

@@ -17,4 +17,12 @@ public class UserDTO {
private String name; private String name;
@ApiModelProperty(value = "手机号") @ApiModelProperty(value = "手机号")
private String mobile; private String mobile;
public UserDTO() {
}
public UserDTO(String name, String mobile) {
this.name = name;
this.mobile = mobile;
}
} }

View File

@@ -1,5 +1,6 @@
package com.cool.store.service; package com.cool.store.service;
import com.cool.store.dto.UserDTO;
import com.cool.store.entity.LineInfoDO; import com.cool.store.entity.LineInfoDO;
import com.cool.store.entity.ShopInfoDO; import com.cool.store.entity.ShopInfoDO;
import com.cool.store.request.*; import com.cool.store.request.*;
@@ -113,4 +114,22 @@ public interface ShopService {
String getFranchiseBrandName(Long shopId); String getFranchiseBrandName(Long shopId);
//处理shop表省市区 //处理shop表省市区
Integer dateHandler(Integer pageNum, Integer pageSize); Integer dateHandler(Integer pageNum, Integer pageSize);
/**
* 获取意向阶段处理人
* @param lineId
* @param subStage
* @return
*/
List<UserDTO> getIntendSubStageHandle(Long lineId,Integer subStage);
/**
* 获取子阶段处理人数据
* @param shopId
* @param subStage
* @return
*/
List<UserDTO> getSubStageHandle(Long shopId,Integer subStage);
} }

View File

@@ -568,7 +568,7 @@ public class DeskServiceImpl implements DeskService {
if (userRoleIds.contains(UserRoleEnum.HEAD_OF_DIVISION.getCode()) || userRoleIds.contains(UserRoleEnum.REGIONAL_MANAGER.getCode())) { if (userRoleIds.contains(UserRoleEnum.HEAD_OF_DIVISION.getCode()) || userRoleIds.contains(UserRoleEnum.REGIONAL_MANAGER.getCode())) {
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_153.getShopSubStageStatus()); subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_153.getShopSubStageStatus());
} }
if (userRoleIds.contains(UserRoleEnum.VICE_PRESIDENT_IN_CHARGE.getCode())) { if (userRoleIds.contains(UserRoleEnum.VICE_PRESIDENT_IN_CHARGE.getCode()) || userRoleIds.contains(UserRoleEnum.BRAND_HEAD.getCode())) {
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_154.getShopSubStageStatus()); subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_154.getShopSubStageStatus());
} }
if (userRoleIds.contains(UserRoleEnum.PRESIDENT.getCode())) { if (userRoleIds.contains(UserRoleEnum.PRESIDENT.getCode())) {

View File

@@ -27,8 +27,7 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import static com.cool.store.enums.UserRoleEnum.PRESIDENT; import static com.cool.store.enums.UserRoleEnum.*;
import static com.cool.store.enums.UserRoleEnum.VICE_PRESIDENT_IN_CHARGE;
import static com.cool.store.enums.point.ShopSubStageStatusEnum.*; import static com.cool.store.enums.point.ShopSubStageStatusEnum.*;
/** /**
@@ -206,7 +205,7 @@ public class OrderSysInfoServiceImpl implements OrderSysInfoService {
switch (nowStatus) { switch (nowStatus) {
case SHOP_SUB_STAGE_STATUS_153: case SHOP_SUB_STAGE_STATUS_153:
nextStatus = SHOP_SUB_STAGE_STATUS_154; nextStatus = SHOP_SUB_STAGE_STATUS_154;
List<EnterpriseUserDO> users = userAuthMappingService.getAllUserByRoleEnumAndRegionId(VICE_PRESIDENT_IN_CHARGE, shopInfoDAO.getShopInfo(request.getShopId()).getRegionId()); List<EnterpriseUserDO> users = userAuthMappingService.getUserIdByRoleEnumAndRegionId(Arrays.asList(VICE_PRESIDENT_IN_CHARGE,BRAND_HEAD), shopInfoDAO.getShopInfo(request.getShopId()).getRegionId());
List<String> userIds = new ArrayList<>(); List<String> userIds = new ArrayList<>();
if(CollectionUtils.isNotEmpty(users)){ if(CollectionUtils.isNotEmpty(users)){
userIds = users.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList()); userIds = users.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList());

View File

@@ -103,7 +103,7 @@ public class PushServiceImpl implements PushService {
} }
private Boolean modifyXGJPassword(ModifyPasswordDTO dto) { private Boolean modifyXGJPassword(ModifyPasswordDTO dto) {
String apiUrl = xgjUrl + "XXX"; String apiUrl = xgjUrl + "/open/updateStorePassword";
return executeApiCall(apiUrl, dto, Boolean.class, xgjUsername, xgjSecret); return executeApiCall(apiUrl, dto, Boolean.class, xgjUsername, xgjSecret);
} }
@@ -116,7 +116,7 @@ public class PushServiceImpl implements PushService {
@Override @Override
public Boolean modifyDownstreamSystem(ModifyPasswordDTO modifyPasswordDTO) { public Boolean modifyDownstreamSystem(ModifyPasswordDTO modifyPasswordDTO) {
this.modifyPosPassword(modifyPasswordDTO); this.modifyPosPassword(modifyPasswordDTO);
//this.modifyXGJPassword(modifyPasswordDTO); this.modifyXGJPassword(modifyPasswordDTO);
return Boolean.TRUE; return Boolean.TRUE;
} }

View File

@@ -7,6 +7,7 @@ import com.cool.store.dto.Preparation.PreparationDTO;
import com.cool.store.dto.Preparation.ScheduleDTO; import com.cool.store.dto.Preparation.ScheduleDTO;
import com.cool.store.dto.RegionNode; import com.cool.store.dto.RegionNode;
import com.cool.store.dto.ShopNameAndCodeDTO; import com.cool.store.dto.ShopNameAndCodeDTO;
import com.cool.store.dto.UserDTO;
import com.cool.store.dto.openPreparation.PlanLineDTO; import com.cool.store.dto.openPreparation.PlanLineDTO;
import com.cool.store.entity.*; import com.cool.store.entity.*;
import com.cool.store.enums.*; import com.cool.store.enums.*;
@@ -44,7 +45,9 @@ import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.cool.store.enums.ErrorCodeEnum.UPDATE_INVESTMENT_MANAGER_FAIL; import static com.cool.store.enums.ErrorCodeEnum.*;
import static com.cool.store.enums.UserRoleEnum.*;
import static com.cool.store.enums.WorkflowSubStageStatusEnum.*;
/** /**
* @author zhangchenbiao * @author zhangchenbiao
@@ -98,6 +101,10 @@ public class ShopServiceImpl implements ShopService {
HyPartnerUserInfoDAO hyPartnerUserInfoDAO; HyPartnerUserInfoDAO hyPartnerUserInfoDAO;
@Resource @Resource
StoreDao storeDao; StoreDao storeDao;
@Resource
DecorationMeasureDAO decorationMeasureDAO;
@Resource
DecorationDesignInfoDAO decorationDesignInfoDAO;
@Override @Override
@@ -672,5 +679,208 @@ public class ShopServiceImpl implements ShopService {
return shopInfoDAO.updateShopCity(shopList); return shopInfoDAO.updateShopCity(shopList);
} }
@Override
public List<UserDTO> getIntendSubStageHandle(Long lineId,Integer subStage) {
//查询线索
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
List<UserDTO> userList = new ArrayList<>();
//如果阶段对应不上 直接返回空
if(!lineInfo.getWorkflowSubStage().equals(subStage)){
return userList;
}
//加盟商处理时子阶段状态
List<Integer> intendPartnerList = Arrays.asList(INTENT_0.getCode(), PAY_DEPOSIT_45.getCode());
if (intendPartnerList.contains(lineInfo.getWorkflowSubStageStatus())){
UserDTO userDTO = new UserDTO(lineInfo.getUsername(), lineInfo.getMobile());
userList.add(userDTO);
return userList;
}
//督导处理阶段
List<Integer> intendManagerList = Arrays.asList(INTENT_5.getCode(), PAY_DEPOSIT_50.getCode(),SIGN_INTENT_AGREEMENT_70.getCode());
if (intendManagerList.contains(lineInfo.getWorkflowSubStageStatus())){
EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(lineInfo.getInvestmentManager());
if (Objects.nonNull(userInfo)){
UserDTO userDTO = new UserDTO(userInfo.getName(), userInfo.getMobile());
userList.add(userDTO);
}
return userList;
}
return userList;
}
@Override
public List<UserDTO> getSubStageHandle(Long shopId, Integer subStage) {
// 参数校验
if (shopId == null || subStage == null) {
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
}
// 基础数据
ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId);
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(shopInfo.getLineId());
DecorationMeasureDO measureDO = decorationMeasureDAO.getByShopId(shopId);
DecorationDesignInfoDO decoration = decorationDesignInfoDAO.getByShopId(shopId);
ShopStageInfoDO stage = shopStageInfoDAO.getByShopIdAndSubStage(shopId, subStage);
ShopSubStageStatusEnum statusEnum = ShopSubStageStatusEnum.getShopSubStageStatusEnum(stage.getShopSubStageStatus());
// Handle each status case
switch (statusEnum) {
case SHOP_SUB_STAGE_STATUS_10:
case SHOP_SUB_STAGE_STATUS_20:
case SHOP_SUB_STAGE_STATUS_22:
case SHOP_SUB_STAGE_STATUS_30:
case SHOP_SUB_STAGE_STATUS_40:
case SHOP_SUB_STAGE_STATUS_71:
case SHOP_SUB_STAGE_STATUS_74:
case SHOP_SUB_STAGE_STATUS_905:
case SHOP_SUB_STAGE_STATUS_121:
case SHOP_SUB_STAGE_STATUS_150:
case SHOP_SUB_STAGE_STATUS_180:
case SHOP_SUB_STAGE_STATUS_182:
case SHOP_SUB_STAGE_STATUS_190:
case SHOP_SUB_STAGE_STATUS_194:
case SHOP_SUB_STAGE_STATUS_200:
case SHOP_SUB_STAGE_STATUS_202:
case SHOP_SUB_STAGE_STATUS_210:
case SHOP_SUB_STAGE_STATUS_214:
case SHOP_SUB_STAGE_STATUS_220:
case SHOP_SUB_STAGE_STATUS_222:
return Collections.singletonList(new UserDTO(lineInfo.getUsername(), lineInfo.getMobile()));
case SHOP_SUB_STAGE_STATUS_11:
case SHOP_SUB_STAGE_STATUS_21:
case SHOP_SUB_STAGE_STATUS_50:
case SHOP_SUB_STAGE_STATUS_110:
case SHOP_SUB_STAGE_STATUS_111:
case SHOP_SUB_STAGE_STATUS_122:
case SHOP_SUB_STAGE_STATUS_140:
case SHOP_SUB_STAGE_STATUS_141:
case SHOP_SUB_STAGE_STATUS_142:
return getUserFromInvestmentManager(shopInfo.getInvestmentManager());
case SHOP_SUB_STAGE_STATUS_70:
case SHOP_SUB_STAGE_STATUS_80:
case SHOP_SUB_STAGE_STATUS_85:
return getUsersByRolesAndRegion(Arrays.asList(REGION_OFFICE, JOIN_OFFICE), shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_72:
case SHOP_SUB_STAGE_STATUS_83:
return getUsersByRolesAndRegion(Arrays.asList(REGION_OFFICE, BRANCH_OFFICE), shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_85_1:
return getUsersByRole(FINANCE);
case SHOP_SUB_STAGE_STATUS_861:
return getUsersByRole(CONSTRUCTION_CUSTOMER);
case SHOP_SUB_STAGE_STATUS_862:
return getUserById(measureDO.getMeasureUserId());
case SHOP_SUB_STAGE_STATUS_90:
return getUserById(decoration.getDesignLeaderId());
case SHOP_SUB_STAGE_STATUS_901:
return getUserById(decoration.getDesignUserId());
case SHOP_SUB_STAGE_STATUS_902:
return getUsersByRole(QUOTATION_OFFICE);
case SHOP_SUB_STAGE_STATUS_903:
return getUserById(decoration.getQuotationUserId());
case SHOP_SUB_STAGE_STATUS_151:
return getUsersByRoleAndRegion(UserRoleEnum.LOGISTICS, shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_152:
UserRoleEnum financeRole = JoinModeEnum.OWN_STORE.equals(shopInfo.getJoinMode())
? UserRoleEnum.OWN_SHOP_OFFICE
: UserRoleEnum.FINANCE;
return getUsersByRole(financeRole);
case SHOP_SUB_STAGE_STATUS_153:
return getUsersByRolesAndRegion(Arrays.asList(HEAD_OF_DIVISION, REGIONAL_MANAGER), shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_154:
return getUsersByRoleAndRegion(UserRoleEnum.VICE_PRESIDENT_IN_CHARGE, shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_155:
return getUsersByRoleAndRegion(UserRoleEnum.PRESIDENT, shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_160:
case SHOP_SUB_STAGE_STATUS_170:
return getUsersByRoleAndRegion(UserRoleEnum.HUO_MA_EMPLOYEE, shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_230:
return getUsersByRoleAndRegion(UserRoleEnum.XIN_FA_SYS_CUSTOMER, shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_240:
return getUsersByRoleAndRegion(UserRoleEnum.TENT_PASS_CUSTOMER, shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_181:
return getUsersByRoleAndRegion(DOU_YIN_CUSTOMER, shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_191:
case SHOP_SUB_STAGE_STATUS_193:
return getUsersByRoleAndRegion(UserRoleEnum.MEI_TUAN_OPERATIONS_CUSTOMER, shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_201:
return getUsersByRoleAndRegion(UserRoleEnum.MEI_TUAN_BUY_CUSTOMER, shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_211:
case SHOP_SUB_STAGE_STATUS_213:
return getUsersByRoleAndRegion(UserRoleEnum.E_L_ME_TUAN_OPERATIONS_CUSTOMER, shopInfo.getRegionId());
case SHOP_SUB_STAGE_STATUS_221:
return getUsersByRoleAndRegion(UserRoleEnum.KUAI_SHOU_CUSTOMER, shopInfo.getRegionId());
default:
return Collections.emptyList();
}
}
/**
* 获取招商经理信息
* @param lineInfo
* @return
*/
private List<UserDTO> getUserFromInvestmentManager(String userId) {
EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId);
if (userInfo != null) {
return Collections.singletonList(new UserDTO(userInfo.getName(), userInfo.getMobile()));
}
return Collections.emptyList();
}
private List<UserDTO> getUserById(String userId) {
EnterpriseUserDO user = enterpriseUserDAO.getUserInfoById(userId);
if (user != null) {
return Collections.singletonList(new UserDTO(user.getName(), user.getMobile()));
}
return Collections.emptyList();
}
private List<UserDTO> getUsersByRole(UserRoleEnum role) {
SysRoleRequest request = new SysRoleRequest();
request.setRoleName(role.getDesc());
return convertToUserDTOs(userAuthMappingService.findUserListByRole(request));
}
private List<UserDTO> getUsersByRoleAndRegion(UserRoleEnum role, Long regionId) {
return convertToUserDTOs(userAuthMappingService.getAllUserByRoleEnumAndRegionId(role, regionId));
}
private List<UserDTO> getUsersByRolesAndRegion(List<UserRoleEnum> roles, Long regionId) {
return convertToUserDTOs(userAuthMappingService.getUserIdByRoleEnumAndRegionId(roles, regionId));
}
private List<UserDTO> convertToUserDTOs(List<EnterpriseUserDO> users) {
//最多给10条数据
return users.stream()
.map(user -> new UserDTO(user.getName(), user.getMobile()))
.limit(10)
.collect(Collectors.toList());
}
} }

View File

@@ -2,6 +2,7 @@ package com.cool.store.controller.webb;
import com.cool.store.context.CurrentUserHolder; import com.cool.store.context.CurrentUserHolder;
import com.cool.store.dto.TransferLogDTO; import com.cool.store.dto.TransferLogDTO;
import com.cool.store.dto.UserDTO;
import com.cool.store.request.*; import com.cool.store.request.*;
import com.cool.store.response.BranchShopDetailResponse; import com.cool.store.response.BranchShopDetailResponse;
import com.cool.store.response.BranchShopResponse; import com.cool.store.response.BranchShopResponse;
@@ -135,4 +136,20 @@ public class PCShopController {
public ResponseResult<Integer> dateHandler(@RequestParam("pageSize")Integer pageSize,@RequestParam("pageNum")Integer pageNum) { public ResponseResult<Integer> dateHandler(@RequestParam("pageSize")Integer pageSize,@RequestParam("pageNum")Integer pageNum) {
return ResponseResult.success(shopService.dateHandler(pageNum,pageSize)); return ResponseResult.success(shopService.dateHandler(pageNum,pageSize));
} }
@ApiOperation("获取意向阶段处理人信息")
@GetMapping("/getIntendSubStageHandle")
public ResponseResult<List<UserDTO>> getIntendSubStageHandle(@RequestParam("lineId")Long lineId,
@RequestParam("subStage")Integer subStage) {
return ResponseResult.success(shopService.getIntendSubStageHandle(lineId,subStage));
}
@ApiOperation("获取筹建阶段处理人信息")
@GetMapping("/getSubStageHandle")
public ResponseResult<List<UserDTO>> getSubStageHandle(@RequestParam("shopId")Long shopId,
@RequestParam("subStage")Integer subStage) {
return ResponseResult.success(shopService.getSubStageHandle(shopId,subStage));
}
} }