重点城市

This commit is contained in:
苏竹红
2024-03-26 11:29:22 +08:00
parent 5505287b47
commit a03c6953b4
13 changed files with 171 additions and 20 deletions

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){

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>
@@ -185,8 +191,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">

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,7 @@ public class OpenAreaVO {
@ApiModelProperty("更新人")
private String updateUserId;
@ApiModelProperty("重点开放城市状态 0-开启 1-禁用")
private Integer keyOpenStatus;
}

View File

@@ -51,8 +51,16 @@ 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);
/**
* V1.4
* 意向区域添加不限

View File

@@ -153,9 +153,9 @@ 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<>();
@@ -169,6 +169,19 @@ public class OpenAreaServiceImpl implements OpenAreaService {
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));
});
hyOpenAreaInfoDOPageInfo.setList(list);
return hyOpenAreaInfoDOPageInfo;
}
@Override
@@ -199,6 +212,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,11 @@ 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));
}
}

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);