1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.moral.service.impl;
 
import com.moral.common.util.WebTokenUtils;
import com.moral.controller.ScreenController;
import com.moral.entity.Organization;
import com.moral.entity.WebProvince;
import com.moral.mapper.MapPathMapper;
import com.moral.service.MapPathService;
import com.moral.service.OrganizationService;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
 
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
@Service
public class MapPathServiceImpl implements MapPathService {
    public static Logger log = Logger.getLogger(MapPathServiceImpl.class);
    @Resource
    MapPathMapper mapPathMapper;
    @Resource
    OrganizationService organizationService;
 
    /**
     * @Description: 根据用户token获取用户地图权限
     * @Param: [token]
     * @return: java.util.List<com.moral.entity.WebProvince>
     * @Author: 下雨听风
     * @Date: 2020/11/26
     */
    @Override
    public List<WebProvince> getMapPath(String token) {
        List<WebProvince> results;
        try {
            Map<String, Object> params = new HashMap<>();
            Integer id = Integer.parseInt(WebTokenUtils.getIdBytoken(token));
            Organization organization = organizationService.getOrganizationByAccountId(id);
 
            Map<String, Object> regionCodeAndType = getRegionCodeAndTypeByOrg(organization);
            String regionType = (String) regionCodeAndType.get("regionType");
            String regionCode = (String) regionCodeAndType.get("regionCode");
            params.put(regionType, regionCode);
            results = mapPathMapper.getMapPathByRegionCode(params);
            return results;
        } catch (Exception e) {
            log.error(e.getMessage());
        }
        return null;
    }
 
    public static Map<String, Object> getRegionCodeAndTypeByOrg(Organization organization) {
        Map<String, Object> result = new HashMap<>();
        String regionCode = "";
        String regionType = "";
        Long villageCode = organization.getVillageCode();
        Long townCode = organization.getTownCode();
        Integer areaCode = organization.getAreaCode();
        Integer cityCode = organization.getCityCode();
        Integer provinceCode = organization.getProvinceCode();
 
        if (!ObjectUtils.isEmpty(areaCode)) {
            regionCode = String.valueOf(areaCode);
            regionType = "areaCode";
        } else if (!ObjectUtils.isEmpty(cityCode)) {
            regionCode = String.valueOf(cityCode);
            regionType = "cityCode";
        } else if (!ObjectUtils.isEmpty(provinceCode)) {
            regionCode = String.valueOf(provinceCode);
            regionType = "provinceCode";
        } else {
            return null;
        }
        result.put("regionCode", regionCode);
        result.put("regionType", regionType);
        return result;
    }
}