| | |
| | | package com.smartearth.poiexcel.controller; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.smartearth.poiexcel.entity.EntEntity; |
| | | import com.smartearth.poiexcel.entity.ResponseMsg; |
| | | import com.smartearth.poiexcel.entity.Result; |
| | | import com.smartearth.poiexcel.entity.TokenResult; |
| | | import com.smartearth.poiexcel.entity.StaticData; |
| | | import com.smartearth.poiexcel.mapper.EntMapper; |
| | | import com.smartearth.poiexcel.service.EntService; |
| | | import com.smartearth.poiexcel.utils.HttpUtils; |
| | | import com.smartearth.poiexcel.utils.StringHelper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Base64; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 企业控制器 |
| | |
| | | @Api(tags = "企业控制器") |
| | | @RestController |
| | | @RequestMapping("/ent") |
| | | @SuppressWarnings("ALL") |
| | | public class EntController extends BaseController { |
| | | @ApiOperation(value = "查询记录数") |
| | | @Resource |
| | | EntService entService; |
| | | |
| | | @Resource |
| | | EntMapper entMapper; |
| | | |
| | | @Value("${address.code.url}") |
| | | private String addressCodeUrl; |
| | | |
| | | @ApiOperation(value = "根据名称模糊查询企业") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "name", value = "名称", dataType = "String", paramType = "query", required = false, example = "") |
| | | @ApiImplicitParam(name = "name", value = "企业名称或地址", dataType = "String", paramType = "query", example = "") |
| | | }) |
| | | @GetMapping({"/selectCount"}) |
| | | public ResponseMsg<Integer> selectCount(String name) { |
| | | @GetMapping({"/selectByName"}) |
| | | public ResponseMsg<Object> selectByName(String name) { |
| | | try { |
| | | //Result<TokenResult> rs = new Result<>(); |
| | | List<EntEntity> list = entMapper.selectByName(StringHelper.getLikeStr(name)); |
| | | |
| | | |
| | | return success(0); |
| | | return success(null == list ? 0 : list.size(), list); |
| | | } catch (Exception ex) { |
| | | return fail(ex, -1); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation(value = "查询令牌") |
| | | @GetMapping({"/selectToken"}) |
| | | public ResponseMsg<Object> selectToken() { |
| | | try { |
| | | String token = entService.selectToken(); |
| | | |
| | | return success(StringHelper.isEmpty(token) ? 0 : 1, token); |
| | | } catch (Exception ex) { |
| | | return fail(ex, -1); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation(value = "查询企业信息") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "token", value = "令牌", dataType = "String", paramType = "query", example = ""), |
| | | @ApiImplicitParam(name = "startDate", value = "开始日期", dataType = "String", paramType = "query", example = "2023-06-29"), |
| | | @ApiImplicitParam(name = "endDate", value = "结束日期", dataType = "String", paramType = "query", example = "2023-06-30"), |
| | | @ApiImplicitParam(name = "qylabel", value = "标签", dataType = "Integer", paramType = "query", example = "开业"), |
| | | @ApiImplicitParam(name = "showCount", value = "显示记录数", dataType = "Integer", paramType = "query", example = "10"), |
| | | @ApiImplicitParam(name = "currentPage", value = "当前分页数", dataType = "Integer", paramType = "query", example = "1") |
| | | }) |
| | | @GetMapping({"/selectEnts"}) |
| | | public ResponseMsg<Object> selectEnts(String token, String startDate, String endDate, String qylabel, Integer showCount, Integer currentPage) { |
| | | try { |
| | | if (StringHelper.isEmpty(token)) { |
| | | token = entService.selectToken(); |
| | | } |
| | | if (StringHelper.isEmpty(token)) { |
| | | return fail("查询令牌失败"); |
| | | } |
| | | if (null == showCount || showCount < 1) { |
| | | showCount = 10; |
| | | } |
| | | if (null == currentPage || currentPage < 1) { |
| | | currentPage = 1; |
| | | } |
| | | |
| | | List<EntEntity> list = entService.selectEnts(token, startDate, endDate, qylabel, showCount, currentPage); |
| | | |
| | | return success(null == list || list.isEmpty() ? 0 : list.size(), list); |
| | | } catch (Exception ex) { |
| | | return fail(ex, -1); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation(value = "插入企业") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "token", value = "令牌", dataType = "String", paramType = "query", example = ""), |
| | | @ApiImplicitParam(name = "startDate", value = "开始日期", dataType = "String", paramType = "query", example = "2023-06-29"), |
| | | @ApiImplicitParam(name = "endDate", value = "结束日期", dataType = "String", paramType = "query", example = "2023-06-30"), |
| | | @ApiImplicitParam(name = "qylabel", value = "标签", dataType = "Integer", paramType = "query", example = "开业"), |
| | | @ApiImplicitParam(name = "showCount", value = "显示记录数", dataType = "Integer", paramType = "query", example = "10"), |
| | | @ApiImplicitParam(name = "currentPage", value = "当前分页数", dataType = "Integer", paramType = "query", example = "1") |
| | | }) |
| | | @GetMapping({"/insertEnts"}) |
| | | public ResponseMsg<Object> insertEnts(String token, String startDate, String endDate, String qylabel, Integer showCount, Integer currentPage) { |
| | | try { |
| | | if (StringHelper.isEmpty(token)) { |
| | | token = entService.selectToken(); |
| | | } |
| | | if (StringHelper.isEmpty(token)) { |
| | | return fail("查询令牌失败"); |
| | | } |
| | | if (null == showCount || showCount < 1) { |
| | | showCount = 10; |
| | | } |
| | | if (null == currentPage || currentPage < 1) { |
| | | currentPage = 1; |
| | | } |
| | | |
| | | List<EntEntity> list = entService.selectEnts(token, startDate, endDate, qylabel, showCount, currentPage); |
| | | if (null == list || list.isEmpty()) { |
| | | return fail("查询企业为空"); |
| | | } |
| | | |
| | | Integer rows = entService.insertEnts(list); |
| | | |
| | | return success(rows); |
| | | } catch (Exception ex) { |
| | | return fail(ex, -1); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation(value = "分页查询企业") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "Integer", paramType = "query", example = "10"), |
| | | @ApiImplicitParam(name = "pageIndex", value = "分页数(从1开始)", dataType = "Integer", paramType = "query", example = "1") |
| | | }) |
| | | @GetMapping(value = "/selectByPage") |
| | | public ResponseMsg<Object> selectByPage(Integer pageSize, Integer pageIndex) { |
| | | try { |
| | | if (null == pageSize || pageSize < 1) { |
| | | pageSize = 10; |
| | | } |
| | | if (null == pageIndex || pageIndex < 1) { |
| | | pageIndex = 1; |
| | | } |
| | | int count = entMapper.selectCount(); |
| | | List<EntEntity> list = entMapper.selectByPage(pageSize, StaticData.I100 * (pageIndex - 1)); |
| | | |
| | | return success(count, list); |
| | | } catch (Exception ex) { |
| | | return fail(ex, -1); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation(value = "批量更新企业坐标") |
| | | @GetMapping({"/updateCoords"}) |
| | | public ResponseMsg<Object> updateCoords() { |
| | | try { |
| | | int rows = 0; |
| | | int count = entMapper.selectCount(); |
| | | if (0 == count) { |
| | | return success("没有数据需要更新", count); |
| | | } |
| | | |
| | | int pages = (count - 1) / StaticData.I100 + 1; |
| | | for (int i = 1; i <= pages; i++) { |
| | | List<EntEntity> list = entMapper.selectByPage(StaticData.I100, StaticData.I100 * (i - 1)); |
| | | if (null == list || list.isEmpty()) { |
| | | continue; |
| | | } |
| | | |
| | | for (EntEntity ent : list) { |
| | | if (!StringHelper.isEmpty(ent.getAddress())) { |
| | | setEntCoord(ent); |
| | | } |
| | | } |
| | | |
| | | rows += entMapper.updates(list); |
| | | } |
| | | |
| | | return success(rows); |
| | | } catch (Exception ex) { |
| | | return fail(ex, -1); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 设置企业坐标值 |
| | | */ |
| | | private void setEntCoord(EntEntity ent) { |
| | | try { |
| | | String json = selectAddrCode(ent.getAddress()); |
| | | if (StringHelper.isEmpty(json)) { |
| | | return; |
| | | } |
| | | |
| | | JSONObject obj = JSONObject.parseObject(json); |
| | | if (null == obj || !StaticData.S1.equals(obj.get("status"))) { |
| | | return; |
| | | } |
| | | |
| | | JSONArray jsonArray = obj.getJSONArray("geocodes"); |
| | | if (null == jsonArray || jsonArray.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | JSONObject object = jsonArray.getJSONObject(0); |
| | | /*String addr = object.getString("formatted_address"); |
| | | if (StringHelper.isEmpty(addr)) { |
| | | return; |
| | | } |
| | | |
| | | String encoding = StringHelper.getEncoding(addr); |
| | | if (encoding != null) { |
| | | addr = new String(addr.getBytes(encoding)); |
| | | } |
| | | ent.setAddress(addr);*/ |
| | | |
| | | String location = object.getString("location"); |
| | | String[] split = location.split(","); |
| | | ent.setX(Double.parseDouble(split[0])); |
| | | ent.setY(Double.parseDouble(split[1])); |
| | | } catch (Exception ex) { |
| | | log.error(ex.getMessage(), ex); |
| | | } |
| | | } |
| | | |
| | | private String selectAddrCode(String address) throws Exception { |
| | | StringBuilder sb = new StringBuilder(addressCodeUrl); |
| | | sb.append("?address=").append(address).append("&output=json&batch=true&coord=cgcs2000&adcode=yes"); |
| | | |
| | | // 设置请求头 |
| | | Map<String, String> headers = new HashMap<>(); |
| | | headers.put("Authorization", "Basic " + Base64.getUrlEncoder().encodeToString(("jjjskfq" + ":" + "Jjjskfq@2022").getBytes())); |
| | | |
| | | // 执行请求 |
| | | return HttpUtils.get(sb.toString(), null, headers); |
| | | } |
| | | } |