You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
4.1 KiB
108 lines
4.1 KiB
package com.cyl.h5.controller;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.cyl.manager.ums.domain.entity.Address;
|
|
import com.cyl.manager.ums.domain.entity.Feedback;
|
|
import com.cyl.manager.ums.mapper.AddressMapper;
|
|
import com.cyl.manager.ums.domain.dto.AddressDTO;
|
|
import com.cyl.manager.ums.service.FeedbackService;
|
|
import com.ruoyi.common.annotation.Log;
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
import com.ruoyi.common.core.redis.RedisService;
|
|
import com.ruoyi.common.enums.BusinessType;
|
|
import com.ruoyi.common.utils.OssUtils;
|
|
import com.ruoyi.system.service.ISysConfigService;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
|
|
@RestController
|
|
@RequestMapping
|
|
public class H5CommonController {
|
|
|
|
@Autowired
|
|
private OssUtils ossUtils;
|
|
@Autowired
|
|
private AddressMapper addressMapper;
|
|
@Autowired
|
|
private RedisService redisService;
|
|
@Autowired
|
|
private FeedbackService feedbackService;
|
|
@Autowired
|
|
private ISysConfigService sysConfigService;
|
|
|
|
@ApiOperation("新增意见反馈")
|
|
@Log(title = "意见反馈", businessType = BusinessType.INSERT)
|
|
@PostMapping("/h5/feedback/create")
|
|
public ResponseEntity<Integer> add(@RequestBody Feedback feedback) {
|
|
return ResponseEntity.ok(feedbackService.insert(feedback));
|
|
}
|
|
|
|
|
|
@GetMapping("/h5/area")
|
|
public AjaxResult getAddressList() {
|
|
String addresses = redisService.getAddressList();
|
|
if (StringUtils.isNotEmpty(addresses)) {
|
|
return AjaxResult.success(JSON.parseArray(addresses, AddressDTO.class));
|
|
}
|
|
QueryWrapper<Address> addressQueryWrapper = new QueryWrapper<>();
|
|
addressQueryWrapper.in("level", Arrays.asList(0,1,2));
|
|
List<Address> addressList = addressMapper.selectList(addressQueryWrapper);
|
|
Map<Long, List<Address>> cityMap = addressList.stream().filter(it -> it.getLevel() == 1).collect(Collectors.groupingBy(it -> it.getParentCode()));
|
|
Map<Long, List<Address>> districtMap = addressList.stream().filter(it -> it.getLevel() == 2).collect(Collectors.groupingBy(it -> it.getParentCode()));
|
|
List<AddressDTO> result = new ArrayList<>();
|
|
addressList.stream().filter(it -> it.getLevel() == 0).forEach(it -> {
|
|
AddressDTO dto = new AddressDTO();
|
|
dto.setId(it.getCode());
|
|
dto.setLevel("province");
|
|
dto.setName(it.getName());
|
|
dto.setPid(0L);
|
|
//获取城市列表
|
|
List<AddressDTO> child = new ArrayList<>();
|
|
if (cityMap.containsKey(it.getCode())) {
|
|
cityMap.get(it.getCode()).forEach(city -> {
|
|
AddressDTO cityDto = new AddressDTO();
|
|
cityDto.setId(city.getCode());
|
|
cityDto.setLevel("city");
|
|
cityDto.setName(city.getName());
|
|
cityDto.setPid(city.getParentCode());
|
|
cityDto.setChildren(districtMap.containsKey(city.getCode()) ?
|
|
districtMap.get(city.getCode()).stream().map(district -> {
|
|
AddressDTO districtDto = new AddressDTO();
|
|
districtDto.setId(district.getCode());
|
|
districtDto.setLevel("district");
|
|
districtDto.setName(district.getName());
|
|
districtDto.setPid(district.getParentCode());
|
|
return districtDto;
|
|
}).collect(Collectors.toList()) : Collections.EMPTY_LIST);
|
|
child.add(cityDto);
|
|
});
|
|
}
|
|
dto.setChildren(child);
|
|
result.add(dto);
|
|
});
|
|
redisService.setAddressList(JSON.toJSONString(result));
|
|
return AjaxResult.success(result);
|
|
}
|
|
|
|
@PostMapping("/h5/file/upload")
|
|
public AjaxResult uploadFile(MultipartFile file) {
|
|
String url = ossUtils.uploadOneFile(file);
|
|
return AjaxResult.successData(url);
|
|
}
|
|
|
|
@GetMapping("/no-auth/config/get")
|
|
public AjaxResult getSysConfig(String configKey) {
|
|
String s = sysConfigService.selectConfigByKey(configKey);
|
|
return AjaxResult.successData(s);
|
|
}
|
|
|
|
}
|