Merge branch 'cc_20250702_getStore' into 'master'

Cc 20250702 get store

See merge request hangzhou/java/custom_zxjp!123
This commit is contained in:
苏竹红
2025-07-03 14:09:24 +00:00
12 changed files with 220 additions and 82 deletions

View File

@@ -2,6 +2,7 @@ package com.cool.store.dao;
import com.cool.store.entity.StoreDO;
import com.cool.store.mapper.StoreMapper;
import com.cool.store.response.MiniShopsResponse;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -63,6 +64,14 @@ public class StoreDao {
return storeMapper.listByMobile(mobile);
}
public List<MiniShopsResponse> getSubStoreByRegionIdsAndMobile(List<String> regionIdList, String mobile,String storeName,String storeNum) {
if(CollectionUtils.isEmpty(regionIdList)&&StringUtils.isBlank(mobile)) {
return new ArrayList<>();
}
return storeMapper.getSubStoreByRegionIdsAndMobile(regionIdList,mobile,storeName,storeNum);
}
public List<StoreDO> list() {
return storeMapper.list();
}

View File

@@ -33,7 +33,11 @@ public class SysRoleDao {
if(CollectionUtils.isEmpty(roleIds)) {
return Lists.newArrayList();
}
return sysRoleMapper.getRoleByRoleIds( roleIds);
List<SysRoleDO> roleByRoleIds = sysRoleMapper.getRoleByRoleIds(roleIds);
if(CollectionUtils.isEmpty(roleByRoleIds)) {
return Lists.newArrayList();
}
return roleByRoleIds;
}
/**

View File

@@ -1,6 +1,7 @@
package com.cool.store.mapper;
import com.cool.store.entity.StoreDO;
import com.cool.store.response.MiniShopsResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -31,6 +32,8 @@ public interface StoreMapper {
*/
List<StoreDO> listByMobile(@Param("mobile") String mobile);
List<MiniShopsResponse> getSubStoreByRegionIdsAndMobile(@Param("regionIdList") List<String> regionIdList, @Param("mobile") String mobile,
@Param("storeName") String storeName, @Param("storeNum") String storeNum);
/**
* 分页查询门店数据
* @return

View File

@@ -90,6 +90,35 @@
</where>
</select>
<select id="getSubStoreByRegionIdsAndMobile" resultType="com.cool.store.response.MiniShopsResponse">
select store_id as storeId, store_name as shopName, store_num as shopCode, store_address as detailAddress
from store_${enterpriseId}
where is_delete = 'effective'
<if test="storeName!=null and storeName!=''">
and store_name like concat('%', #{storeName}, '%')
</if>
<if test="storeNum!=null and storeNum!=''">
and store_num = #{storeNum}
</if>
and (
<if test="regionIdList != null and regionIdList.size >0 ">
<foreach collection="regionIdList" item="regionId" separator=" or " open=" (" close=" )">
region_path like concat('%/', #{regionId}, '/%')
</foreach>
</if>
<if test="mobile!=null and mobile !=''">
<choose>
<when test="regionIdList != null and regionIdList.size >0 ">
or `extend_field` like concat('%', #{mobile}, '%')
</when>
<otherwise>
`extend_field` like concat('%', #{mobile}, '%')
</otherwise>
</choose>
</if>
)
</select>
<select id="list" resultMap="BaseResultMap">
select *
from store_${enterpriseId} where is_delete = 'effective' order by id asc

View File

@@ -0,0 +1,26 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
/**
* @Author: WangShuo
* @Date: 2025/07/03/10:54
* @Version 1.0
* @注释:
*/
@Data
public class ShopListSuccessOpenRequest {
@NotNull
private Long lineId;
private Integer pageNum = 1;
private Integer pageSize = 10;
private String storeName;
@ApiModelProperty("门店编号")
private String storeNum;
}

View File

@@ -20,4 +20,5 @@ public class MiniShopsResponse {
private String ylsCode;
@ApiModelProperty("店铺详细地址")
private String detailAddress;
private String storeId;
}

View File

@@ -107,7 +107,7 @@ public interface ShopService {
Boolean dataHandler(Long shopId);
List<MiniShopsResponse> getShopListSuccessOpen(Long lineId);
PageInfo<MiniShopsResponse> getShopListSuccessOpen(ShopListSuccessOpenRequest request);
ShopResponse getShopNameAndCode(Long shopId,Long lineId);

View File

@@ -1,6 +1,8 @@
package com.cool.store.service;
import com.cool.store.dto.StoreDTO;
import com.cool.store.entity.StoreDO;
import com.cool.store.response.MiniShopsResponse;
import com.github.pagehelper.PageInfo;
import java.util.List;
@@ -21,4 +23,6 @@ public interface StoreService {
*/
PageInfo<StoreDTO> getStoreExtendFieldInfo(Integer pageSize,Integer pageNum);
PageInfo<MiniShopsResponse> getStoreListByMobile(String mobile,Integer pageNum,Integer pageSize,String storeName,String storeNum);
}

View File

@@ -108,6 +108,8 @@ public class ShopServiceImpl implements ShopService {
DecorationMeasureDAO decorationMeasureDAO;
@Resource
DecorationDesignInfoDAO decorationDesignInfoDAO;
@Resource
StoreService storeService;
@Override
@@ -598,22 +600,20 @@ public class ShopServiceImpl implements ShopService {
}
@Override
public List<MiniShopsResponse> getShopListSuccessOpen(Long lineId) {
public PageInfo<MiniShopsResponse> getShopListSuccessOpen(ShopListSuccessOpenRequest request) {
Long lineId = request.getLineId();
Integer pageNum = request.getPageNum();
Integer pageSize = request.getPageSize();
String storeName = request.getStoreName();
LineInfoDO lineInfoDO = lineInfoDAO.getLineInfo(lineId);
List<StoreDO> storeDOS = storeDao.listByMobile(lineInfoDO.getMobile());
if (CollectionUtils.isEmpty(storeDOS)){
return new ArrayList<>();
PageInfo<MiniShopsResponse> storeListByMobile = storeService.getStoreListByMobile(lineInfoDO.getMobile(), pageNum, pageSize, storeName,request.getStoreNum());
if (CollectionUtils.isEmpty(storeListByMobile.getList())) {
return new PageInfo<>(new ArrayList<>());
}
List<MiniShopsResponse> responses = new ArrayList<>();
for (StoreDO storeDO : storeDOS){
MiniShopsResponse response = new MiniShopsResponse();
response.setShopName(storeDO.getStoreName());
response.setShopCode(storeDO.getStoreNum());
response.setYlsCode("ZXA8_"+storeDO.getStoreNum());
response.setDetailAddress(storeDO.getStoreAddress());
responses.add(response);
for (MiniShopsResponse response : storeListByMobile.getList()) {
response.setYlsCode("ZXA8_" + response.getShopCode());
}
return responses;
return storeListByMobile;
}
@Override

View File

@@ -1,12 +1,21 @@
package com.cool.store.service.impl;
import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dao.EnterpriseUserRoleDao;
import com.cool.store.dao.StoreDao;
import com.cool.store.dao.SysRoleDao;
import com.cool.store.dto.StoreDTO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.entity.StoreDO;
import com.cool.store.entity.SysRoleDO;
import com.cool.store.entity.UserAuthMappingDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.ExtendFieldTypeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.RegionMapper;
import com.cool.store.response.MiniShopsResponse;
import com.cool.store.service.StoreService;
import com.cool.store.service.UserAuthMappingService;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.Page;
@@ -18,9 +27,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -34,6 +41,16 @@ public class StoreServiceImpl implements StoreService {
@Resource
StoreDao storeDao;
@Resource
private EnterpriseUserDAO enterpriseUserDAO;
@Resource
private EnterpriseUserRoleDao enterpriseUserRoleDao;
@Resource
private SysRoleDao sysRoleDao;
@Resource
private UserAuthMappingService userAuthMappingService;
@Resource
private RegionMapper regionMapper;
@Override
public PageInfo<StoreDTO> getStoreExtendFieldInfo(Integer pageSize, Integer pageNum) {
@@ -51,6 +68,31 @@ public class StoreServiceImpl implements StoreService {
return info;
}
@Override
public PageInfo<MiniShopsResponse> getStoreListByMobile(String mobile,Integer pageNum,Integer pageSize,String storeName,String storeNum) {
//根据手机号查询 标品userId
EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.selectByMobile(mobile);
if (enterpriseUserDO == null){
return new PageInfo<>();
}
//获取用户职位
List<Long> userRoleIds = enterpriseUserRoleDao.getUserRoleIds(enterpriseUserDO.getUserId());
//查询职位详情,筛选掉店外职位
List<SysRoleDO> roleIds = sysRoleDao.selectRoleByRoleIds(userRoleIds);
List<SysRoleDO> sysRoleDOS = roleIds.stream().filter(role -> "store_inside".equals(role.getPositionType())).collect(Collectors.toList());
List<String> regionIds = new ArrayList<>();
if (CollectionUtils.isNotEmpty(sysRoleDOS)){
//获取用户管辖区域
List<UserAuthMappingDO> userAuthMapping = userAuthMappingService.listUserAuthMappingByUserId(enterpriseUserDO.getUserId());
if (CollectionUtils.isNotEmpty(userAuthMapping)){
regionIds.addAll(userAuthMapping.stream().map(UserAuthMappingDO::getMappingId).collect(Collectors.toList()));
}
}
PageHelper.startPage(pageNum,pageSize);
List<MiniShopsResponse> list = storeDao.getSubStoreByRegionIdsAndMobile(regionIds,mobile,storeName,storeNum);
return new PageInfo<>(list);
}
public static List<StoreDTO> processStores(List<StoreDO> stores) {
ObjectMapper objectMapper = new ObjectMapper();

View File

@@ -116,9 +116,9 @@ public class MiniShopController {
return ResponseResult.success(pointService.updateRentContract(request));
}
@ApiOperation("成功开店的门店")
@GetMapping("/getShopListSuccessOpen")
public ResponseResult<List<MiniShopsResponse>> getShopListSuccessOpen(@RequestParam("lineId")Long lineId) {
return ResponseResult.success(shopService.getShopListSuccessOpen(lineId));
@PostMapping("/getShopListSuccessOpen")
public ResponseResult<PageInfo<MiniShopsResponse>> getShopListSuccessOpen(@RequestBody @Validated ShopListSuccessOpenRequest request ) {
return ResponseResult.success(shopService.getShopListSuccessOpen(request));
}
@ApiOperation("获取推荐铺位和我创建的")

View File

@@ -16,16 +16,20 @@ import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
import com.cool.store.job.XxlJobHandler;
import com.cool.store.mapper.HyOpenAreaInfoMapper;
import com.cool.store.request.ShopListSuccessOpenRequest;
import com.cool.store.request.xfsgFirstOrderListRequest;
import com.cool.store.response.MiniShopsResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.response.xfsgFirstOderListResponse;
import com.cool.store.service.*;
import com.cool.store.utils.poi.ExcelUtil;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.vo.RegionPathNameVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -73,11 +77,13 @@ public class TestController {
@Resource
ShopStageInfoDAO shopStageInfoDAO;
@PostMapping("/getFirstOrders")
public ResponseResult<xfsgFirstOderListResponse> getFirstOrders(@RequestBody xfsgFirstOrderListRequest storeCodeList) {
xfsgFirstOderListResponse firstOrderList = coolStoreStartFlowService.getFirstOrderList(storeCodeList);
return ResponseResult.success(firstOrderList);
}
@PostMapping("/importCity")
public ResponseResult<Integer> importCity(MultipartFile file) {
ExcelUtil<OpenCityDTO> util = new ExcelUtil<>(OpenCityDTO.class);
@@ -149,7 +155,6 @@ public class TestController {
}
@GetMapping("/getUserInfo")
public ResponseResult getUserInfo(@RequestParam("userId") String userId) {
EnterpriseUserDO enterpriseUser = enterpriseUserDAO.getUserInfoById(userId);
@@ -197,22 +202,39 @@ public class TestController {
RegionPathNameVO regionPathNameVO = regionService.getAllRegionName(regionId);
return ResponseResult.success(regionPathNameVO);
}
@GetMapping("/updateFirstOrder")
public ResponseResult updateFirstOrder() {
// xxlJobHandler.updateFirstOrder();
return ResponseResult.success();
}
@GetMapping("updateEntryTime")
public ResponseResult updateEntryTime() {
xxlJobHandler.updateEntryTime();
return ResponseResult.success();
}
@GetMapping("/threeAcceptanceBookingMessage")
public ResponseResult threeAcceptanceBookingMessage() {
xxlJobHandler.threeAcceptanceBookingMessage();
return ResponseResult.success();
}
// @ApiOperation("成功开店的门店")
// @GetMapping("/getShopListSuccessOpen")
// public ResponseResult<PageInfo<MiniShopsResponse>> getShopListSuccessOpen(@RequestParam("lineId")Long lineId,
// @RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize,
// @RequestParam(value = "pageNum",defaultValue = "1")Integer pageNum,
// @RequestParam(value = "storeName",required = false,defaultValue = "") String storeName
// ) {
// return ResponseResult.success(shopService.getShopListSuccessOpen(lineId,pageNum,pageSize,storeName));
// }
@ApiOperation("成功开店的门店")
@PostMapping("/getShopListSuccessOpen")
public ResponseResult<PageInfo<MiniShopsResponse>> getShopListSuccessOpen(@RequestBody @Validated ShopListSuccessOpenRequest request) {
return ResponseResult.success(shopService.getShopListSuccessOpen(request));
}
@GetMapping("/stageDataHandler")
@@ -313,13 +335,11 @@ public class TestController {
}
@Resource
PointService pointService;
@Resource
ShopService shopService;
@GetMapping("/linePointToShopPoint")
public ResponseResult linePointToShopPoint(@RequestParam(value = "shopId", required = false) Long shopId) {
return ResponseResult.success(pointService.linePointToShopPoint(shopId));