Commit 18f6739b authored by hezhen's avatar hezhen

Merge branch 'base-modify' of http://113.105.137.151:22280/youjj/cloud-platform into base-modify

parents 82a4bc51 2e228cf6
......@@ -4,11 +4,12 @@ import java.util.HashMap;
import java.util.Map;
public enum RegionType {
ALL(-1,"全国"),//这一类型不存在db中,只是用于查询所有国家
COUNTRY(0,"国家"),
COUNTRY(-1,"国家"),//这一类型不存在db中,只是用于查询所有国家
REGION(0,"地区"),
PROVINCE(1,"省/直辖市"),
CITY(2,"市"),
TOWN(3,"镇/县"),
PREFECTUR(3,"县"),
TOWN(4,"镇"),
;
/**
......
package com.xxfc.platform.vehicle.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import java.util.Date;
@Data
public class Area {
/**
* 主键
*/
@Id
private Integer id;
private String name;
/**
* 省份id字符串,多个以逗号隔开
*/
@Column(name = "province_ids")
private String provinceIds;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 修改时间
*/
@Column(name = "update_time")
private Date updateTime;
}
......@@ -126,7 +126,7 @@ public class AddOrUpdateVehicleVo {
/**
* 车型
*/
private Integer modeLId;
private Integer modelId;
/**
* 车辆状态
*/
......
package com.xxfc.platform.vehicle.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.vehicle.entity.Area;
import com.xxfc.platform.vehicle.mapper.AreaMapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Service;
@Service
public class AreaBiz extends BaseBiz<AreaMapper, Area> {
}
......@@ -68,45 +68,53 @@ public class SysRegionBiz extends BaseBiz<SysRegionMapper, SysRegion> {
//获取相应地区类型对应在id的位数,作为对应parent查找其下地区的redis key组成部分
private String getPrefixOfAgencyId(Integer type,Long parentId){
switch(type){
case -1:
return String.valueOf(-1);
case 0:
return String.valueOf(0);
case 1:
return String.valueOf(parentId).substring(0,2);
case 2:
return String.valueOf(parentId).substring(0,4);
default:
throw new CustomIllegalParamException("not valid region");
}
// switch(type){
// case -1:
// return String.valueOf(0);
// case 0:
// return String.valueOf(1);
// case 1:
// return String.valueOf(parentId);
// case 2:
// return String.valueOf(parentId).substring(0,2);
// case 3:
// return String.valueOf(parentId).substring(0,4);
// case 4:
// return String.valueOf(parentId);
// default:
// throw new CustomIllegalParamException("not valid region");
// }
return String.valueOf(parentId);
}
//获取相应地区类型对应在id的位数,作为对应parent查找其下地区的redis key组成部分
private String getPrefixOfAgencyId(Long parentId){
Integer type = getTypeFromId(parentId);
return getPrefixOfAgencyId(type,parentId);
}
// private String getPrefixOfAgencyId(Long parentId){
// Integer type = getTypeFromId(parentId);
// return getPrefixOfAgencyId(type,parentId);
// }
/**
* 根据id获得所属类型
* @param id
* @param parentId
* @return
*/
private Integer getTypeFromId(Long id){
if(id == 0){
return RegionType.ALL.getCode();
}if(id < 10){
return RegionType.COUNTRY.getCode();
}else if(id%100>0){//第1、2非零,即3级地区
return RegionType.TOWN.getCode();
}else if(id%10000>0){//第1、2为零,第3、4位非0,即2级地区
return RegionType.CITY.getCode();
}else{//第1、2、3、4为零,第5、6位非0,即2级地区
return RegionType.PROVINCE.getCode();
}
}
// private Integer getTypeFromId(Long parentId){
// if(parentId == 0) {//国家type-1
// return RegionType.COUNTRY.getCode();
// }if (parentId<2){//地区type 0
// return RegionType.REGION.getCode();
// }if(parentId < 20){//省type 1
// return RegionType.PROVINCE.getCode();
// }else if(parentId%100>0){//第1、2非零,即3级地区 镇一级type 4
// return RegionType.TOWN.getCode();
// }else if(parentId%10000>0){//第1、2为零,第3、4位非0,即2级地区 县type 3
// return RegionType.PREFECTUR.getCode();
// }else{//第1、2、3、4为零,第5、6位非0,即2级地区 市type 2
// return RegionType.CITY.getCode();
// }
// }
/**
* 获取对应redis中的hash的key
......@@ -115,7 +123,7 @@ public class SysRegionBiz extends BaseBiz<SysRegionMapper, SysRegion> {
*/
private String getCacheRedisKey(Long parentId){
//获取相应地区类型对应在agencyId的位数
return RedisKey.SYS_REGION_SONS_CACHE_PREFIX +getPrefixOfAgencyId(parentId);
return RedisKey.SYS_REGION_SONS_CACHE_PREFIX +parentId;
}
/**
......@@ -140,10 +148,10 @@ public class SysRegionBiz extends BaseBiz<SysRegionMapper, SysRegion> {
return getSonRegionNoCache(id);
}
public List<SysRegion> getSonRegionNoCache(Long id){
public List<SysRegion> getSonRegionNoCache(Long parentId){
//从db中查询
SysRegion param = new SysRegion();
param.setParentId(id);
param.setParentId(parentId);
return mapper.select(param);
}
......@@ -158,15 +166,15 @@ public class SysRegionBiz extends BaseBiz<SysRegionMapper, SysRegion> {
/**
* 刷新其孩子节点到缓存,并对其孩子迭代执行此操作
* @param id
* @param parentId
*/
private void refreshCacheRegionAndSon(Long id){
List<SysRegion> sonRegions = getSonRegionNoCache(id);
private void refreshCacheRegionAndSon(Long parentId){
List<SysRegion> sonRegions = getSonRegionNoCache(parentId);
//把当前节点的子节点数据缓存
String redisKey = getCacheRedisKey(id);
String redisKey = getCacheRedisKey(parentId);
customRedisTemplate.opsForValue().set(redisKey,JSON.toJSON(sonRegions).toString());
log.info("完成地区【"+id+"】的子地区数据缓存");
if(CollectionUtils.isEmpty(sonRegions) || getTypeFromId(id).equals(RegionType.CITY.getCode())){
log.info("完成地区【"+parentId+"】的子地区数据缓存");
if(CollectionUtils.isEmpty(sonRegions) || sonRegions.get(0).getType().equals(RegionType.CITY.getCode())){
return;
}
for(SysRegion sonRegion:sonRegions){
......@@ -203,4 +211,15 @@ public class SysRegionBiz extends BaseBiz<SysRegionMapper, SysRegion> {
.build());
return selectByWeekendSql;
}
/**
* 通过属性获取省
* @param type
* @return
*/
public List<SysRegion> getSysRegionByType(Integer type){
SysRegion sysRegion = new SysRegion();
sysRegion.setType(type);
return mapper.select(sysRegion);
}
}
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.Area;
import tk.mybatis.mapper.common.Mapper;
public interface AreaMapper extends Mapper<Area> {
}
......@@ -13,6 +13,7 @@ import com.xxfc.platform.vehicle.pojo.AddOrUpdateAccompanyingItem;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.pojo.QueryAccompanyItemVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -23,6 +24,9 @@ import java.util.List;
@Slf4j
public class AccompanyingItemController extends BaseController<AccompanyingItemBiz> {
@Autowired
AccompanyingItemBiz accompanyingItemBiz;
@RequestMapping(value ="/{id}",method = RequestMethod.GET)
private RestResponse<AccompanyingItem> get(@PathVariable Integer id) throws Exception{
return RestResponse.codeAndData(RestResponse.SUC_CODE,baseBiz.get(id));
......@@ -30,7 +34,7 @@ public class AccompanyingItemController extends BaseController<AccompanyingItemB
@RequestMapping(value ="/all",method = RequestMethod.GET)
private RestResponse<List<AccompanyingItem>> getAll(){
return RestResponse.codeAndData(RestResponse.SUC_CODE,baseBiz.getAll());
return RestResponse.codeAndData(RestResponse.SUC_CODE,accompanyingItemBiz.getAll());
}
......
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.vehicle.biz.AreaBiz;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.entity.Area;
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.RestController;
import java.util.List;
@RestController
@RequestMapping("/area")
@Slf4j
@IgnoreClientToken
public class AreaController extends BaseController<AreaBiz, Area> {
@GetMapping("/findAll")
public RestResponse<List<Area>> findAll(){
return RestResponse.suc(baseBiz.selectListAll());
}
}
......@@ -11,7 +11,10 @@ import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.SysRegion;
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Arrays;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.util.List;
......@@ -22,12 +25,29 @@ import java.util.List;
public class SysRegionController extends BaseController<SysRegionBiz> {
/**
* 父类id获取子类对象
* @param id
* @return
*/
@IgnoreUserToken
@RequestMapping(value ="/sons/{id}",method = RequestMethod.GET)
public RestResponse<List<SysRegion>> getSonRegion(@PathVariable Long id){
return RestResponse.data(baseBiz.getSonRegion(id));
}
/**
* 通过属性获取省
* @param type
* @return
*/
@IgnoreUserToken
@RequestMapping(value ="/getSonRegionByType/{type}",method = RequestMethod.GET)
public RestResponse<List<SysRegion>> getSysRegionByType(@PathVariable Integer type){
return RestResponse.data(baseBiz.getSysRegionByType(type));
}
@RequestMapping(value ="",method = RequestMethod.GET)
public RestResponse<List<SysRegion>> getRegion(@RequestParam String idListJson){
try {
......@@ -40,4 +60,19 @@ public class SysRegionController extends BaseController<SysRegionBiz> {
}
}
/**
* 根据多个id查找省份
* @param ids
* @return
*/
@GetMapping("/getSysRegionByIds/{ids}")
public RestResponse getSysRegionByIds(@PathVariable String ids){
Example exam = Example.builder(SysRegion.class)
.where(WeekendSqls.<SysRegion>custom()
.andIn(SysRegion::getId, Arrays.asList(ids.split(",")))).build();
return RestResponse.suc( baseBiz.selectByExample(exam));
}
}
......@@ -7,6 +7,7 @@ import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.biz.VehicleCataBiz;
......@@ -287,4 +288,15 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
return ObjectRestResponse.succ();
}
@ApiOperation("查询所有")
@RequestMapping(value = "/findAll",method = RequestMethod.GET)
@ResponseBody
public ObjectRestResponse findAll(){
VehicleModel vehicleModel = new VehicleModel();
vehicleModel.setIsdel(0);
return ObjectRestResponse.succ(baseBiz.selectList(vehicleModel));
}
}
\ No newline at end of file
......@@ -8,21 +8,25 @@ import cn.hutool.core.io.file.FileWriter;
import cn.hutool.core.util.PinyinUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.ace.cache.annotation.Cache;
import com.alibaba.fastjson.JSONObject;
import com.github.stuxuhai.jpinyin.PinyinHelper;
import com.github.wxiaoqi.security.common.msg.TableResultResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.xxfc.platform.vehicle.VehicleApplication;
import com.xxfc.platform.vehicle.biz.SysRegionBiz;
import com.xxfc.platform.vehicle.constant.RedisKey;
import com.xxfc.platform.vehicle.entity.SysRegion;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.joda.time.DateTime;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
......@@ -32,10 +36,14 @@ import java.util.List;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes={VehicleApplication.class})
public class RegionTest {
@Autowired
private RedisTemplate customRedisTemplate;
@Autowired
SysRegionBiz sysRegionBiz;
private SysRegionBiz sysRegionBiz;
// public static final String TEST_REDIS_KEY ="redis:{1}";
private final String TEST_REDIS_KEY ="redis:{1}";
@Data
public class Title{
String title;
......@@ -122,4 +130,35 @@ public class RegionTest {
writer.write(JSONUtil.toJsonStr(newCity));
System.out.println("test");
}
@Test
public void test1() {
int i = DateTime.now().getMinuteOfDay() / 5;
System.out.println("DateTime.now().getMinuteOfDay() / 5++++++++++++"+i);
String redisLockKey = RedisKey.SYS_REGION_REFRESH_LOCK +i;//同一日每5分钟只刷新一次
System.out.println("redisLockKey++++++++++++++++"+redisLockKey);
String s = String.valueOf(DateTime.now().getMillis());
System.out.println("s++++++++++++++++++"+s);
Boolean suc = customRedisTemplate.opsForValue().setIfAbsent(redisLockKey, s);
Boolean test1 = customRedisTemplate.opsForValue().setIfAbsent("1", "2");
Boolean test2 = customRedisTemplate.opsForValue().setIfAbsent("1", "3");
System.out.println("test1///////////////////////////////"+test1);
System.out.println("test2///////////////////////////////"+test2);
System.out.println("suc++++++++++++++++++++"+suc);
}
@Test
public void testRedis() {
SysRegion sysRegion = getSysRegion(1);
System.out.println("sysRegion+++++++++"+sysRegion);
System.out.println("TEST_REDIS_KEY+++++++++++" + TEST_REDIS_KEY);
}
@Cache(key = TEST_REDIS_KEY)
private SysRegion getSysRegion(int id){
SysRegion sysRegion = sysRegionBiz.selectById(2);
return sysRegion;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment