feat:新管家

This commit is contained in:
苏竹红
2025-05-09 15:10:44 +08:00
parent ec2b78b4dd
commit 9939a7c1aa
13 changed files with 499 additions and 6 deletions

View File

@@ -0,0 +1,35 @@
package com.cool.store.dao;
import com.cool.store.dto.region.BigRegionDTO;
import com.cool.store.entity.BigRegionDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.BigRegionMapper;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/5/9 14:25
* @Version 1.0
*/
@Repository
public class BigRegionDAO {
@Resource
BigRegionMapper bigRegionMapper;
public List<BigRegionDTO> queryAllBigRegion(String keyword){
return bigRegionMapper.queryAllBigRegion(keyword);
}
public BigRegionDO queryOrgInfoByBigRegionAndJoinMode(Long regionId, Integer joinMode){
if (regionId==null||joinMode==null){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
}
return bigRegionMapper.queryOrgInfoByBigRegionAndJoinMode(regionId,joinMode);
}
}

View File

@@ -0,0 +1,28 @@
package com.cool.store.mapper;
import com.cool.store.dto.region.BigRegionDTO;
import com.cool.store.entity.BigRegionDO;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface BigRegionMapper extends Mapper<BigRegionDO> {
/**
* 根据关键字查询大区
* @param keyword
* @return
*/
List<BigRegionDTO> queryAllBigRegion(String keyword);
/**
* 根据所属大区与加盟模式查询新管家信息
* 注意:加盟模式不能直接传加盟模式 对于加盟自有店 传1 对于其他店 传0
* @param regionId
* @param joinMode
* @return
*/
BigRegionDO queryOrgInfoByBigRegionAndJoinMode(Long regionId,Integer joinMode);
}

View File

@@ -0,0 +1,44 @@
<?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.BigRegionMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.BigRegionDO">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="region_id" jdbcType="BIGINT" property="regionId" />
<result column="region_name" jdbcType="VARCHAR" property="regionName" />
<result column="org_code" jdbcType="VARCHAR" property="orgCode" />
<result column="org_id" jdbcType="VARCHAR" property="orgId" />
<result column="org_name" jdbcType="VARCHAR" property="orgName" />
<result column="join_mode" jdbcType="TINYINT" property="joinMode" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<select id="queryAllBigRegion" resultType="com.cool.store.dto.region.BigRegionDTO">
select DISTINCT
region_id as regionId,
region_name as regionName
FROM `xfsg_big_region`
<where>
<if test="keyword!=null and keyword !=''">
and region_name like CONCAT('%',#{keyword},'%')
</if>
</where>
</select>
<select id="queryOrgInfoByBigRegionAndJoinMode" resultMap="BaseResultMap">
select *
FROM `xfsg_big_region`
<where>
<if test="regionId !=null ">
and region_id = #{regionId}
</if>
<if test="joinMode !=null ">
and join_mode = #{joinMode}
</if>
</where>
</select>
</mapper>

View File

@@ -0,0 +1,17 @@
package com.cool.store.dto.region;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/5/9 14:22
* @Version 1.0
*/
@Data
public class BigRegionDTO {
private Long regionId;
private String regionName;
}

View File

@@ -0,0 +1,217 @@
package com.cool.store.entity;
import java.util.Date;
import javax.persistence.*;
@Table(name = "xfsg_big_region")
public class BigRegionDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 区域ID
*/
@Column(name = "region_id")
private Long regionId;
/**
* 区域名称
*/
@Column(name = "region_name")
private String regionName;
/**
* 新管家组织code
*/
@Column(name = "org_code")
private String orgCode;
/**
* 新管家组织ID
*/
@Column(name = "org_id")
private String orgId;
/**
* 新管家组织名称
*/
@Column(name = "org_name")
private String orgName;
/**
* 加盟模式
*/
@Column(name = "join_mode")
private Byte joinMode;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* @return id
*/
public Long getId() {
return id;
}
/**
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取区域ID
*
* @return region_id - 区域ID
*/
public Long getRegionId() {
return regionId;
}
/**
* 设置区域ID
*
* @param regionId 区域ID
*/
public void setRegionId(Long regionId) {
this.regionId = regionId;
}
/**
* 获取区域名称
*
* @return region_name - 区域名称
*/
public String getRegionName() {
return regionName;
}
/**
* 设置区域名称
*
* @param regionName 区域名称
*/
public void setRegionName(String regionName) {
this.regionName = regionName;
}
/**
* 获取新管家组织code
*
* @return org_code - 新管家组织code
*/
public String getOrgCode() {
return orgCode;
}
/**
* 设置新管家组织code
*
* @param orgCode 新管家组织code
*/
public void setOrgCode(String orgCode) {
this.orgCode = orgCode;
}
/**
* 获取新管家组织ID
*
* @return org_id - 新管家组织ID
*/
public String getOrgId() {
return orgId;
}
/**
* 设置新管家组织ID
*
* @param orgId 新管家组织ID
*/
public void setOrgId(String orgId) {
this.orgId = orgId;
}
/**
* 获取新管家组织名称
*
* @return org_name - 新管家组织名称
*/
public String getOrgName() {
return orgName;
}
/**
* 设置新管家组织名称
*
* @param orgName 新管家组织名称
*/
public void setOrgName(String orgName) {
this.orgName = orgName;
}
/**
* 获取加盟模式
*
* @return join_mode - 加盟模式
*/
public Byte getJoinMode() {
return joinMode;
}
/**
* 设置加盟模式
*
* @param joinMode 加盟模式
*/
public void setJoinMode(Byte joinMode) {
this.joinMode = joinMode;
}
/**
* 获取创建时间
*
* @return create_time - 创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 设置创建时间
*
* @param createTime 创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取更新时间
*
* @return update_time - 更新时间
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* 设置更新时间
*
* @param updateTime 更新时间
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

View File

@@ -0,0 +1,35 @@
package com.cool.store.service;
import com.cool.store.dto.region.BigRegionDTO;
import com.cool.store.entity.BigRegionDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ServiceException;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/5/9 14:28
* @Version 1.0
*/
public interface BigRegionService {
/**
* 查询可选择大区
* @param keyword 关键字
* @return
*/
List<BigRegionDTO> queryAllBigRegion(String keyword);
/**
* 根据门店所属大区和加盟模式查询新管家对应组织信息
* 注意 加盟模式费门店加盟模式 而是针对加盟自有店 如果是加盟自有店 则传1 其他店传1
* @param regionId
* @param joinMode
* @return
*/
BigRegionDO queryOrgInfoByBigRegionAndJoinMode(Long regionId, Integer joinMode);
}

View File

@@ -0,0 +1,38 @@
package com.cool.store.service.impl;
import com.cool.store.dao.BigRegionDAO;
import com.cool.store.dto.region.BigRegionDTO;
import com.cool.store.entity.BigRegionDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.service.BigRegionService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/5/9 14:28
* @Version 1.0
*/
@Service
public class BigRegionServiceImpl implements BigRegionService {
@Resource
BigRegionDAO bigRegionDAO;
@Override
public List<BigRegionDTO> queryAllBigRegion(String keyword){
return bigRegionDAO.queryAllBigRegion(keyword);
}
@Override
public BigRegionDO queryOrgInfoByBigRegionAndJoinMode(Long regionId, Integer joinMode){
if (regionId==null||joinMode==null){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
}
return bigRegionDAO.queryOrgInfoByBigRegionAndJoinMode(regionId,joinMode);
}
}

View File

@@ -1,6 +1,7 @@
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;
@@ -18,6 +19,7 @@ import com.cool.store.mapper.BuildInformationMapper;
import com.cool.store.service.PreparationService;
import com.cool.store.service.UserAuthMappingService;
import com.cool.store.utils.poi.StringUtils;
import io.lettuce.core.ZAddArgs;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -57,6 +59,8 @@ public class BuildInformationServiceImpl implements BuildInformationService {
private CommonService commonService;
@Autowired
private OrderSysInfoDAO orderSysInfoDAO;
@Autowired
private BigRegionDAO bigRegionDAO;
@Override
@@ -114,6 +118,15 @@ public class BuildInformationServiceImpl implements BuildInformationService {
response.setXgjVicePresident(user.getName());
}
}
//根据映射关系默认带出新管家组织
if (StringUtils.isBlank(response.getXgjRegionName())){
Integer joinMode = shopInfo.getJoinMode() == 3 ? CommonConstants.ONE : CommonConstants.ZERO;
BigRegionDO bigRegionDO = bigRegionDAO.queryOrgInfoByBigRegionAndJoinMode(shopInfo.getRegionId(), joinMode);
if (Objects.nonNull(bigRegionDO)){
response.setXgjRegionId(bigRegionDO.getOrgId());
response.setXgjRegionName(bigRegionDO.getOrgName());
}
}
if (Objects.nonNull(pointInfo)) {
if (StringUtils.isBlank(response.getAddresseeProvince())){
response.setAddresseeProvince(pointInfo.getProvince());}

View File

@@ -16,6 +16,7 @@ import com.cool.store.service.OrderSysInfoService;
import com.cool.store.service.UserAuthMappingService;
import com.cool.store.utils.poi.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -60,6 +61,9 @@ public class OrderSysInfoServiceImpl implements OrderSysInfoService {
private OperationLogService operationLogService;
@Resource
private ShopAuditInfoDAO shopAuditInfoDAO;
@Value("${special.user.id}")
private String specialUserId;
@Override
@@ -172,12 +176,23 @@ public class OrderSysInfoServiceImpl implements OrderSysInfoService {
if (nowStatus == null) {
throw new ServiceException(ErrorCodeEnum.SHOP_STAGE_ERROR);
}
FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId());
ShopAuditInfoDO shopAuditInfoDO = AuditRequest.convert(request, AuditTypeEnum.BUILDINFORMATION);
Long auditId = shopAuditInfoDAO.addAuditInfo(shopAuditInfoDO);
//更新操作记录
List<OperationLogDO> operationLogs = operationLogDAO.getBySubStageStatusEnumAndsStatus(request.getShopId(), nowStatus, OperationTypeEnum.OPERATION_TYPE_1.getCode());
operationLogService.batchUpdateProcessed(operationLogs, auditId, request.getOperateUserId(), request.getReason());
//查询毛泽军下级区域 只有毛泽军的下级需要总裁处理 其他不需要总裁处理:
List<String> regionIds = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(specialUserId);
//是否有总裁处理flag
ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId());
Boolean flag = Boolean.FALSE;
//如果是毛泽军的下级 则需要总裁处理
if(shopInfo!=null&&shopInfo.getRegionId()!=null){
flag = regionIds.contains(shopInfo.getRegionId());
}
//下一阶段
ShopSubStageStatusEnum nextStatus;
switch (nowStatus) {
@@ -195,7 +210,7 @@ public class OrderSysInfoServiceImpl implements OrderSysInfoService {
break;
case SHOP_SUB_STAGE_STATUS_154:
nextStatus = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_155;
if (StringUtils.isNotBlank(franchiseFeeDO.getDiscountReason())){
if (flag){
List<EnterpriseUserDO> users1 = userAuthMappingService.getAllUserByRoleEnumAndRegionId(PRESIDENT, shopInfoDAO.getShopInfo(request.getShopId()).getRegionId());
List<String> userIds1 = new ArrayList<>();
if(CollectionUtils.isNotEmpty(users1)){
@@ -204,7 +219,8 @@ public class OrderSysInfoServiceImpl implements OrderSysInfoService {
sendSms(request.getShopId(),userIds1);
operationLogService.addOperationLog(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_155,
curUserId, users1,
OperationTypeEnum.OPERATION_TYPE_1, "建店资料总裁审批", OperationStatusEnum.NOT_PROCESSED);}
OperationTypeEnum.OPERATION_TYPE_1, "建店资料总裁审批", OperationStatusEnum.NOT_PROCESSED);
}
break;
case SHOP_SUB_STAGE_STATUS_155:
nextStatus = SHOP_SUB_STAGE_STATUS_156;
@@ -219,8 +235,8 @@ public class OrderSysInfoServiceImpl implements OrderSysInfoService {
return shopStageInfoDAO.updateShopStageInfo(request.getShopId(), SHOP_SUB_STAGE_STATUS_152);
}
if (AuditResultTypeEnum.PASS.getCode().equals(request.getResultType())) {
//如果加盟费没有优惠阶段直接完成不用总裁审批
if (StringUtils.isBlank(franchiseFeeDO.getDiscountReason()) && SHOP_SUB_STAGE_STATUS_154.equals(nowStatus)) {
//如果不是毛泽军下级大区 直接完成不用总裁审批
if (!flag && SHOP_SUB_STAGE_STATUS_154.equals(nowStatus)) {
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), SHOP_SUB_STAGE_STATUS_156);
stageCompletion(request.getShopId());
return CommonConstants.ONE;

View File

@@ -0,0 +1,35 @@
package com.cool.store.controller.webb;
import com.cool.store.dto.content.ContentQueryDetailDto;
import com.cool.store.dto.region.BigRegionDTO;
import com.cool.store.entity.HyContentInfoDO;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.BigRegionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/5/9 14:40
* @Version 1.0
*/
@Api(tags = "大区相关")
@RestController
@RequestMapping("pc/region")
public class BigRegionController {
@Resource
BigRegionService bigRegionService;
@PostMapping("/queryAllBigRegion")
@ApiOperation("获取所有可选择的大区")
public ResponseResult<List<BigRegionDTO>> queryContentInfo(@RequestParam(required = false) String keyword) {
return ResponseResult.success(bigRegionService.queryAllBigRegion(keyword));
}
}

View File

@@ -23,6 +23,7 @@ import com.cool.store.response.oppty.OpportunityDetailResponse;
import com.cool.store.response.oppty.OpportunityInfoPageResponse;
import com.cool.store.service.*;
import com.cool.store.service.impl.CommonService;
import com.cool.store.service.impl.UserAuthMappingServiceImpl;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
@@ -286,5 +287,14 @@ public class PCTestController {
return ResponseResult.success(thirdXinGuanJiaService.getPassword(dto));
}
@Resource
UserAuthMappingServiceImpl userAuthMappingService;
@GetMapping("/getAuthRegionIdAndSubRegionIdByUserId")
@ApiOperation("获取管辖的子区域")
public ResponseResult<List<String>> getAuthRegionIdAndSubRegionIdByUserId(@RequestParam(value = "userId", required = true) String userId) {
return ResponseResult.success(userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(userId));
}
}

View File

@@ -119,4 +119,6 @@ xzg.api.auth.url=http://webapi.zhengxinfood.com
cool.api.appKey=k8J7fG2qR5tY9vX3
cool.api.secret=wP4sN6dL8zK2xM9c
cool.api.secret=wP4sN6dL8zK2xM9c
special.user.id=wpayJeDAAAklx_q1jGhyGUd4yEh8vV_g_woayJeDAAAtwLSAPVMWbpGi9q4caSujg

View File

@@ -124,3 +124,6 @@ xzg.api.auth.url=http://webapi.zhengxinfood.com
cool.api.appKey=k8J7fG2qR5tY9vX3
cool.api.secret=wP4sN6dL8zK2xM9c
#maozhejun userID
special.user.id=wpayJeDAAAhGIFgUJpJN-zg39JuNbYhg_woayJeDAAA0TC8mkCJeXouw94hYA-D3Q