Merge remote-tracking branch 'origin/cc_partner_init' into cc_partner_init

This commit is contained in:
zhangchenbiao
2024-03-26 14:43:33 +08:00
15 changed files with 256 additions and 22 deletions

View File

@@ -9,8 +9,6 @@ public enum AreaStatusEnum {
OPEN("open","开放"),
NOT_OPEN("notOpen","未开放"),
SATURATED("saturated","已饱和"),
KEY_OPEN("keyOpen","重点开放"),

View File

@@ -131,6 +131,9 @@ public enum ErrorCodeEnum {
EXHIBITION_NOT_SIGNED(106004, "线索未进行会销签到", null),
EXHIBITION_NOT_SUBMIT_INTENTION(106005, "线索未提交意向申请", null),
EXHIBITION_LINE_INTERVIEWED(106006, "线索已预约面审", null),
OPEN_AREA_IS_NOT_EXISTS(107006, "意向区域城市不存在", null),
;

View File

@@ -10,6 +10,7 @@ import com.google.common.collect.Maps;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
@@ -29,8 +30,8 @@ public class HyOpenAreaInfoDAO {
@Resource
HyOpenAreaInfoMapper hyOpenAreaInfoMapper;
public List<HyOpenAreaInfoDO> queryKeyOpenArea(){
return hyOpenAreaInfoMapper.queryKeyOpenArea();
public List<HyOpenAreaInfoDO> queryKeyOpenArea(String keyword,Integer keyOpenStatus){
return hyOpenAreaInfoMapper.queryKeyOpenArea( keyword, keyOpenStatus);
}
public List<HyOpenAreaInfoDO> queryByKeyword(String keyword,Boolean applyFlag,String areaStatus,Boolean filterData){
@@ -156,4 +157,9 @@ public class HyOpenAreaInfoDAO {
}
return hyOpenAreaInfoMapper.selectByAreaPath(areaPath);
}
public int updateByPrimaryKeySelective(HyOpenAreaInfoDO hyOpenAreaInfoDO){
return hyOpenAreaInfoMapper.updateByPrimaryKeySelective( hyOpenAreaInfoDO);
}
}

View File

@@ -29,7 +29,7 @@ public interface HyOpenAreaInfoMapper {
* 查询重点城市
* @return
*/
List<HyOpenAreaInfoDO> queryKeyOpenArea();
List<HyOpenAreaInfoDO> queryKeyOpenArea(@Param("keyword") String keyword,@Param("keyOpenStatus") Integer keyOpenStatus);
/**

View File

@@ -26,6 +26,9 @@
<insert id="insertSelective" parameterType="com.cool.store.entity.HyOpenAreaInfoDO" keyProperty="record.id" useGeneratedKeys="true">
insert into xfsg_open_area_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="record.id != null">
id,
</if>
<if test="record.parentId != null">
parent_id,
</if>
@@ -58,6 +61,9 @@
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="record.id != null">
#{record.id},
</if>
<if test="record.parentId != null">
#{record.parentId},
</if>
@@ -123,6 +129,9 @@
<if test="record.updateUserId != null">
update_user_id = #{record.updateUserId},
</if>
<if test="record.keyOpenStatus != null">
key_open_status = #{record.keyOpenStatus},
</if>
</set>
where id = #{record.id}
</update>
@@ -185,8 +194,12 @@
select * from
xfsg_open_area_info
where area_status = 'keyOpen'
and province_city_flag = 1
and parent_id is not null
<if test="keyword!=null and keyword!=''">
and area_name like CONCAT('%',#{keyword},'%')
</if>
<if test="keyOpenStatus!=null">
and key_open_status = #{keyOpenStatus}
</if>
</select>
<select id="queryByKeyword" resultMap="BaseResultMap">
@@ -302,4 +315,6 @@
WHERE deleted=0 and province_city_flag = 1 and parent_id is not null
</select>
</mapper>

View File

@@ -0,0 +1,21 @@
package com.cool.store.dto;
import com.cool.store.annotation.Excel;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2024/3/25 17:03
* @Version 1.0
*/
@Data
public class OpenCityDTO {
@Excel(name = "CODE", width = 10)
private Integer code;
@Excel(name = "NAME", width = 20)
private String name;
private String path;
}

View File

@@ -50,4 +50,6 @@ public class HyOpenAreaInfoDO implements Serializable {
@ApiModelProperty("更新人")
private String updateUserId;
@ApiModelProperty("重点开放城市状态 0-开启 1-禁用")
private Integer keyOpenStatus;
}

View File

@@ -188,5 +188,8 @@ public class LineInfoVO {
@ApiModelProperty("更新人")
private String updateUserId;
@ApiModelProperty("公开拒绝原因")
private String rejectPublicReason;
}

View File

@@ -46,4 +46,10 @@ public class OpenAreaVO {
@ApiModelProperty("更新人")
private String updateUserId;
@ApiModelProperty("更新人名称")
private String updateUserName;
@ApiModelProperty("重点开放城市状态 0-开启 1-禁用")
private Integer keyOpenStatus;
}

View File

@@ -51,7 +51,32 @@ public interface OpenAreaService {
Boolean batchUpdate(String userId, OpenAreaRequest openAreaRequest);
PageInfo<OpenAreaVO> queryKeyOpenAreaList(Integer pageSize, Integer pageNumber);
PageInfo<OpenAreaVO> queryKeyOpenAreaList(Integer pageSize, Integer pageNumber,String keyWord,Integer status);
/**
* 可加盟省份
* @param pageSize
* @param pageNumber
* @return
*/
PageInfo<OpenAreaVO> franchisableProvinces(Integer pageSize, Integer pageNumber);
/**
* 删除重点城市 将重点城市状态改为open
* @param id
* @return
*/
Boolean deleteKeyCity(Long id);
/**
* 启用 or 禁用
* @param id
* @param keyOpenStatus
* @return
*/
Boolean updateKeyCityStatus(Long id,Integer keyOpenStatus);
/**
* V1.4

View File

@@ -3,8 +3,13 @@ package com.cool.store.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dao.HyOpenAreaInfoDAO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.entity.HyOpenAreaInfoDO;
import com.cool.store.enums.AreaStatusEnum;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.HyOpenAreaInfoMapper;
import com.cool.store.request.OpenAreaRequest;
import com.cool.store.service.OpenAreaService;
@@ -39,6 +44,8 @@ public class OpenAreaServiceImpl implements OpenAreaService {
private HyOpenAreaInfoMapper hyOpenAreaInfoMapper;
@Resource
private RedisUtilPool redisUtilPool;
@Resource
EnterpriseUserDAO enterpriseUserDAO;
@Override
@@ -153,15 +160,34 @@ public class OpenAreaServiceImpl implements OpenAreaService {
}
@Override
public PageInfo<OpenAreaVO> queryKeyOpenAreaList(Integer pageSize, Integer pageNumber) {
public PageInfo<OpenAreaVO> queryKeyOpenAreaList(Integer pageSize, Integer pageNumber,String keyWord,Integer status) {
PageHelper.startPage(pageNumber,pageSize);
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryKeyOpenArea();
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryKeyOpenArea(keyWord,status);
PageInfo hyOpenAreaInfoDOPageInfo = new PageInfo<>(hyOpenAreaInfoDOS);
if (hyOpenAreaInfoDOPageInfo==null){
return new PageInfo<>();
}
List<OpenAreaVO> list = new ArrayList<>();
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOList = hyOpenAreaInfoDOPageInfo.getList();
List<String> userIds = hyOpenAreaInfoDOList.stream().map(HyOpenAreaInfoDO::getUpdateUserId).collect(Collectors.toList());
List<EnterpriseUserDO> userInfoByUserIds = enterpriseUserDAO.getUserInfoByUserIds(userIds);
Map<String, String> userMap = userInfoByUserIds.stream().collect(Collectors.toMap(EnterpriseUserDO::getUserId, EnterpriseUserDO::getName));
hyOpenAreaInfoDOList.stream().forEach(x->{
OpenAreaVO openAreaVO = convertDoToVo(x);
openAreaVO.setUpdateUserName(userMap.get(x.getUpdateUserId()));
list.add(openAreaVO);
});
hyOpenAreaInfoDOPageInfo.setList(list);
return hyOpenAreaInfoDOPageInfo;
}
@Override
public PageInfo<OpenAreaVO> franchisableProvinces(Integer pageSize, Integer pageNumber) {
PageHelper.startPage(pageNumber,pageSize);
List<HyOpenAreaInfoDO> openArea = hyOpenAreaInfoDAO.queryFirstLevel();
PageInfo hyOpenAreaInfoDOPageInfo = new PageInfo<>(openArea);
List<OpenAreaVO> list = new ArrayList<>();
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOList = hyOpenAreaInfoDOPageInfo.getList();
hyOpenAreaInfoDOList.stream().forEach(x->{
list.add(convertDoToVo(x));
});
@@ -169,6 +195,27 @@ public class OpenAreaServiceImpl implements OpenAreaService {
return hyOpenAreaInfoDOPageInfo;
}
@Override
public Boolean deleteKeyCity(Long id) {
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(id);
if (hyOpenAreaInfoDO==null){
throw new ServiceException(ErrorCodeEnum.OPEN_AREA_IS_NOT_EXISTS);
}
hyOpenAreaInfoDO.setAreaStatus(AreaStatusEnum.OPEN.getCode());
hyOpenAreaInfoDAO.updateByPrimaryKeySelective(hyOpenAreaInfoDO);
return Boolean.TRUE;
}
@Override
public Boolean updateKeyCityStatus(Long id, Integer keyOpenStatus) {
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(id);
if (hyOpenAreaInfoDO==null){
throw new ServiceException(ErrorCodeEnum.OPEN_AREA_IS_NOT_EXISTS);
}
hyOpenAreaInfoDO.setKeyOpenStatus(keyOpenStatus);
hyOpenAreaInfoDAO.updateByPrimaryKeySelective(hyOpenAreaInfoDO);
return Boolean.TRUE;
}
@Override
@@ -199,6 +246,7 @@ public class OpenAreaServiceImpl implements OpenAreaService {
openAreaVO.setAreaStatus(hyOpenAreaInfoDO.getAreaStatus());
openAreaVO.setBackgroundBanner(hyOpenAreaInfoDO.getBackgroundBanner());
openAreaVO.setDetailBanner(hyOpenAreaInfoDO.getDetailBanner());
openAreaVO.setKeyOpenStatus(hyOpenAreaInfoDO.getKeyOpenStatus());
return openAreaVO;
}

View File

@@ -218,7 +218,7 @@ public class ExcelUtil<T> {
// 定义一个map用于存放excel列的序号和field.
Map<String, Integer> cellMap = new HashMap<>(16);
// 获取表头
Row heard = sheet.getRow(6);
Row heard = sheet.getRow(0);
for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++) {
Cell cell = heard.getCell(i);
if (ObjectUtil.isNotNull(cell)) {
@@ -1132,8 +1132,8 @@ public class ExcelUtil<T> {
*/
private List<T> fillCollection(Sheet sheet, int rows, Map<Integer, Field> fieldsMap) throws InstantiationException, IllegalAccessException {
List<T> list = new ArrayList<>();
int j=10;
for (int i = 0; i < rows-5; i++) {
int j=1;
for (int i = 0; i < rows-1; i++) {
// 从第2行开始取数据,默认第一行是表头.
Row row = sheet.getRow(j);
j++;

View File

@@ -71,9 +71,29 @@ public class OpenAreaController {
@GetMapping(path = "/getKeyOpenAreaList")
@ApiOperation("重点城市列表")
public ResponseResult<PageInfo<OpenAreaVO>> getKeyOpenAreaList(@RequestParam(value = "pageNumber",required = false,defaultValue = "1")Integer pageNumber,
@RequestParam(value = "pageSize",required = false,defaultValue = "10")Integer pageSize ){
return ResponseResult.success(openAreaService.queryKeyOpenAreaList(pageSize,pageNumber));
public ResponseResult<PageInfo<OpenAreaVO>> getKeyOpenAreaList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber,
@RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize,
@RequestParam(value = "keyword",required = false)String keyword,
@RequestParam(value = "status",required = false)Integer status ){
return ResponseResult.success(openAreaService.queryKeyOpenAreaList(pageSize,pageNumber,keyword,status));
}
@GetMapping(path = "/updateKeyCityStatus")
@ApiOperation("启用或者禁用重点城市")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "区域ID", required = true),
@ApiImplicitParam(name = "keyOpenStatus", value = "启用或者禁用 启用-0 禁用-1", required = true)
})
public ResponseResult<Boolean> getKeyOpenAreaList(@RequestParam(value = "id",required = false)Long id,
@RequestParam(value = "keyOpenStatus",required = false)Integer keyOpenStatus ){
return ResponseResult.success(openAreaService.updateKeyCityStatus(id,keyOpenStatus));
}
@GetMapping(path = "/deleteKeyCity")
@ApiOperation("删除重点城市")
public ResponseResult<Boolean> getKeyOpenAreaList(@RequestParam(value = "id",required = false)Long id){
return ResponseResult.success(openAreaService.deleteKeyCity(id));
}
}

View File

@@ -57,7 +57,15 @@ public class MiniOpenAreaController {
@ApiOperation("重点开放城市列表)")
public ResponseResult<PageInfo<OpenAreaVO>> getOpenAreaList(@RequestParam(value = "pageNumber",required = false,defaultValue = "1")Integer pageNumber,
@RequestParam(value = "pageSize",required = false,defaultValue = "10")Integer pageSize){
PageInfo<OpenAreaVO> openAreaVOPageInfo = openAreaService.queryKeyOpenAreaList(pageSize, pageNumber);
PageInfo<OpenAreaVO> openAreaVOPageInfo = openAreaService.queryKeyOpenAreaList(pageSize, pageNumber,null,null);
return ResponseResult.success(openAreaVOPageInfo);
}
@GetMapping(path = "/franchisableProvinces")
@ApiOperation("可申请省份)")
public ResponseResult<PageInfo<OpenAreaVO>> franchisableProvinces(@RequestParam(value = "pageNumber",required = false,defaultValue = "1")Integer pageNumber,
@RequestParam(value = "pageSize",required = false,defaultValue = "10")Integer pageSize){
PageInfo<OpenAreaVO> openAreaVOPageInfo = openAreaService.franchisableProvinces(pageSize, pageNumber);
return ResponseResult.success(openAreaVOPageInfo);
}

View File

@@ -1,20 +1,26 @@
package com.cool.store.controller.webc;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.dao.*;
import com.cool.store.dto.OpenCityDTO;
import com.cool.store.entity.*;
import com.cool.store.mapper.HyOpenAreaInfoMapper;
import com.cool.store.response.ResponseResult;
import com.cool.store.utils.poi.ExcelUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.Future;
@Slf4j
@RestController
@RequestMapping("/test")
@RequestMapping("/pc/test")
public class TestController {
@Resource
@@ -35,6 +41,79 @@ public class TestController {
@Resource
private UserRegionMappingDAO userRegionMappingDAO;
@PostMapping("/importCity")
public ResponseResult<Integer> importCity(MultipartFile file){
ExcelUtil<OpenCityDTO> util = new ExcelUtil<>(OpenCityDTO.class);
try {
List<OpenCityDTO> lineDOList = util.importExcel(file.getInputStream());
get(lineDOList);
} catch (Exception e) {
e.printStackTrace();
}
return ResponseResult.success(0);
}
@Resource
HyOpenAreaInfoMapper hyOpenAreaInfoMapper;
public Integer get(List<OpenCityDTO> importTask) {
List<OpenCityDTO> codes = new ArrayList<>();
try {
List<OpenCityDTO> acityDTOS = importTask;
HashMap<Integer, String> first = new HashMap<>(8);
for (OpenCityDTO acityDTO : acityDTOS){
Integer code = acityDTO.getCode();
//如果code后面三位都是0
int i = code % 10000;
if (i == 0){
//表示是一级菜单
acityDTO.setPath("/"+acityDTO.getName()+"/");
first.put(code / 10000,acityDTO.getName());
HyOpenAreaInfoDO hyOpenAreaInfoDO = new HyOpenAreaInfoDO();
hyOpenAreaInfoDO.setAreaPath(acityDTO.getPath());
hyOpenAreaInfoDO.setId(acityDTO.getCode().longValue());
hyOpenAreaInfoDO.setAreaName(acityDTO.getName());
hyOpenAreaInfoDO.setAreaStatus("open");
hyOpenAreaInfoMapper.insertSelective(hyOpenAreaInfoDO);
continue;
}
//二级菜单
int j = code % 100;
if (j == 0){
//北京市直辖市
String name = acityDTO.getName();
//code
int k = code / 10000;
String firstName = first.get(k);
if (firstName == null){
codes.add(acityDTO);
log.info("========================={}",acityDTO);
continue;
}
// 先对name中相同的字段进行去重
String newName = name.replace(firstName, "");
// 然后拼接path
acityDTO.setPath("/"+firstName+"/"+newName+"/");
acityDTO.setName(newName);
HyOpenAreaInfoDO hyOpenAreaInfoDO = new HyOpenAreaInfoDO();
hyOpenAreaInfoDO.setAreaPath(acityDTO.getPath());
hyOpenAreaInfoDO.setId(acityDTO.getCode().longValue());
hyOpenAreaInfoDO.setAreaName(acityDTO.getName());
hyOpenAreaInfoDO.setAreaStatus("open");
hyOpenAreaInfoDO.setParentId(k*10000L);
hyOpenAreaInfoMapper.insertSelective(hyOpenAreaInfoDO);
}
}
System.out.println(JSONObject.toJSONString(codes));
} catch (Exception e) {
}
return 0;
}
@GetMapping("/getUserInfo")
public ResponseResult getUserInfo(@RequestParam("userId")String userId){
EnterpriseUserDO enterpriseUser = enterpriseUserDAO.getUserInfoById(userId);