Просмотр исходного кода

提供查询区域信息dubbo接口

yzc 2 лет назад
Родитель
Сommit
a5579abce6

+ 3 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/constant/Global.java

@@ -89,6 +89,9 @@ public class Global {
     /**redis企业信息前缀*/
     public static final String REDIS_ENTERPRISE_PREFIX = "enterpriseInfo:";
 
+    /**redis区域信息前缀*/
+    public static final String REDIS_AREA_PREFIX = "areaInfo:";
+
     /**redis用户菜单信息前缀*/
     public static final String REDIS_SYS_MENU_PREFIX = "sysMenu:";
 

+ 10 - 4
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java

@@ -1,9 +1,6 @@
 package com.sckw.system.api;
 
-import com.sckw.system.api.model.dto.res.EntCacheResDto;
-import com.sckw.system.api.model.dto.res.SysDictGroupResDto;
-import com.sckw.system.api.model.dto.res.SysDictResDto;
-import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import com.sckw.system.api.model.dto.res.*;
 
 import java.util.List;
 import java.util.Map;
@@ -113,4 +110,13 @@ public interface RemoteSystemService {
      * @return: Map
      */
     Map<Long, List<UserCacheResDto>> queryUserCacheMapByIds(List<Long> userIds);
+
+    /**
+     * @desc: 从缓存查区域信息
+     * @author: yzc
+     * @date: 2023-07-11 11:45
+     * @Param id:
+     * @return: com.sckw.system.api.model.dto.res.SysAreaCacheResDto
+     */
+    SysAreaCacheResDto queryAreaCacheById(Integer id);
 }

+ 91 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/SysAreaCacheResDto.java

@@ -0,0 +1,91 @@
+package com.sckw.system.api.model.dto.res;
+
+import com.sckw.system.api.model.dto.BaseModelResDto;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @desc: 地区信息响应dto
+ * @author: yzc
+ * @date: 2023-07-11 11:40
+ */
+@Data
+public class SysAreaCacheResDto extends BaseModelResDto implements Serializable {
+
+    /**
+     * 地区ID
+     */
+    private Integer code;
+
+    /**
+     * 全国省_地区ID
+     */
+    private Integer pcode;
+
+    /**
+     * 地区对应省份id
+     */
+    private Integer provinceCode;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 简称
+     */
+    private String shortName;
+
+    /**
+     * 上级地区
+     */
+    private String mergerName;
+
+    /**
+     * 省
+     */
+    private String province;
+
+    /**
+     * 市
+     */
+    private String city;
+
+    /**
+     * 1.热门
+     */
+    private Integer hot;
+
+    /**
+     * 级别
+     */
+    private Integer level;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 纬度
+     */
+    private String lat;
+
+    /**
+     * 拼音简称
+     */
+    private String letter;
+
+    /**
+     * 拼音
+     */
+    private String pinyin;
+
+    /**
+     * 第一个字母
+     */
+    private String firstchar;
+
+}

+ 4 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/SysAreaDao.java

@@ -1,6 +1,8 @@
 package com.sckw.system.dao;
 
+import com.sckw.system.model.SysArea;
 import org.apache.ibatis.annotations.Mapper;
+
 import java.util.List;
 import java.util.Map;
 
@@ -13,4 +15,6 @@ import java.util.Map;
 public interface SysAreaDao {
 
     List<Map<String, Object>> findList(Map<String, Object> params);
+
+    SysArea selectById(Integer id);
 }

+ 23 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -13,8 +13,10 @@ import com.sckw.system.api.model.pojo.DeptInfoPojo;
 import com.sckw.system.dao.SysDictDao;
 import com.sckw.system.model.KwsEnterprise;
 import com.sckw.system.model.KwsUser;
+import com.sckw.system.model.SysArea;
 import com.sckw.system.model.SysDict;
 import com.sckw.system.service.KwsUserService;
+import com.sckw.system.service.SysAreaService;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -40,6 +42,9 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
     @Autowired
     private RemoteBaseService remoteBaseService;
 
+    @Autowired
+    private SysAreaService sysAreaService;
+
     /**
      * @param type 类型
      * @return SysDictResDto
@@ -298,6 +303,24 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         return userCacheResDtos.stream().collect(Collectors.groupingBy(UserCacheResDto::getId));
     }
 
+    @Override
+    public SysAreaCacheResDto queryAreaCacheById(Integer id) {
+        String key = Global.REDIS_AREA_PREFIX + id;
+        String areaCache = RedissonUtils.getString(key);
+        //从redis查,查不到从数据库查,并写入redis
+        if (StringUtils.isBlank(areaCache)) {
+            SysArea sysArea = sysAreaService.selectById(id);
+            if (Objects.isNull(sysArea)) {
+                return null;
+            }
+
+            SysAreaCacheResDto sysAreaCacheResDto = BeanUtils.copyProperties(sysArea, SysAreaCacheResDto.class);
+            RedissonUtils.putString(key, JSON.toJSONString(sysAreaCacheResDto), Global.COMMON_EXPIRE);
+            return sysAreaCacheResDto;
+        }
+        return JSONObject.parseObject(areaCache, SysAreaCacheResDto.class);
+    }
+
     /**
      * @param id 父id,需要遍历的list
      * @return SysDictGroupResDto

+ 13 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/SysAreaService.java

@@ -1,8 +1,10 @@
 package com.sckw.system.service;
 
 import com.sckw.system.dao.SysAreaDao;
+import com.sckw.system.model.SysArea;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
 import java.util.List;
 import java.util.Map;
 
@@ -25,4 +27,15 @@ public class SysAreaService {
     public List<Map<String, Object>> findList(Map<String, Object> params) {
         return sysAreaDao.findList(params);
     }
+
+    /**
+     * @desc: 根据id获取
+     * @author: yzc
+     * @date: 2023-07-11 11:38
+     * @Param id:
+     * @return: com.sckw.system.model.SysArea
+     */
+    public SysArea selectById(Integer id) {
+        return sysAreaDao.selectById(id);
+    }
 }

+ 7 - 0
sckw-modules/sckw-system/src/main/resources/mapper/SysAreaDao.xml

@@ -50,4 +50,11 @@
       and pcode = #{pcode, jdbcType=VARCHAR}
     </if>
   </select>
+
+  <select id="selectById" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from sys_area
+    where id = #{id,jdbcType=INTEGER}
+  </select>
 </mapper>