Commit ccced6a9 authored by hezhen's avatar hezhen

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

parents 59b25a2a 6e5b961e
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.ace.cache.parser.impl;
import com.ace.cache.constants.CacheScope;
import com.ace.cache.parser.IKeyGenerator;
import com.ace.cache.parser.IUserKeyGenerator;
import com.ace.cache.utils.ReflectionUtils;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class DefaultKeyGenerator extends IKeyGenerator {
@Autowired(
required = false
)
private IUserKeyGenerator userKeyGenerator;
public DefaultKeyGenerator() {
}
public String buildKey(String key, CacheScope scope, Class<?>[] parameterTypes, Object[] arguments) {
boolean isFirst = true;
if (key.indexOf("{") > 0) {
key = key.replace("{", ":{");
Pattern pattern = Pattern.compile("\\d+\\.?[\\w]*");
Matcher matcher = pattern.matcher(key);
while(matcher.find()) {
String tmp = matcher.group();
String[] express = matcher.group().split("\\.");
String i = express[0];
int index = Integer.parseInt(i) - 1;
Object value = arguments[index];
if (parameterTypes[index].isAssignableFrom(List.class)) {
List result = (List)arguments[index];
if(null != result) {
value = result.get(0);
}
}
if (value == null || value.equals("null")) {
value = "";
}
if (express.length > 1) {
String field = express[1];
value = ReflectionUtils.getFieldValue(value, field);
}
if (isFirst) {
key = key.replace("{" + tmp + "}", value.toString());
} else {
key = key.replace("{" + tmp + "}", "_" + value.toString());
}
}
}
return key;
}
public IUserKeyGenerator getUserKeyGenerator() {
return this.userKeyGenerator;
}
}
...@@ -12,6 +12,7 @@ public enum ItemTypeEnum { ...@@ -12,6 +12,7 @@ public enum ItemTypeEnum {
TOUR_CHILD(202, "旅游儿童"), TOUR_CHILD(202, "旅游儿童"),
TOUR_INSURE(203, "旅游保险"), TOUR_INSURE(203, "旅游保险"),
MEMBER(301, "会员"), MEMBER(301, "会员"),
ACCOMPANY(104, "随车物品"),
; ;
/** /**
* 编码 * 编码
......
...@@ -4,6 +4,9 @@ import java.io.Serializable; ...@@ -4,6 +4,9 @@ import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
import com.xxfc.platform.vehicle.constant.AccompanyingItemType;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -50,10 +53,10 @@ public class OrderItem implements Serializable { ...@@ -50,10 +53,10 @@ public class OrderItem implements Serializable {
private String name; private String name;
/** /**
* item 类型 1--租车车型 2--车损免赔 3--司机费用 4--旅游项目 5--旅游保险 6--会员 * item 类型 ,详见{@link ItemTypeEnum}
*/ */
@Column(name = "type") @Column(name = "type")
@ApiModelProperty(value = "item 类型 1--租车车型 2--车损免赔 3--司机费用 4--旅游项目 5--旅游保险 6--会员") @ApiModelProperty(value = "item 类型 1--租车车型 2--车损免赔 3--司机费用 4--旅游项目 5--旅游保险 6--会员 7--随车物品")
private Integer type; private Integer type;
/** /**
...@@ -126,6 +129,10 @@ public class OrderItem implements Serializable { ...@@ -126,6 +129,10 @@ public class OrderItem implements Serializable {
@ApiModelProperty(value = "订单id") @ApiModelProperty(value = "订单id")
private Integer orderId; private Integer orderId;
@Column(name = "detail")
@ApiModelProperty(value = "描述、详情")
private String detail;
public Integer getCalculateNum() { public Integer getCalculateNum() {
return buyNum - cutNum; return buyNum - cutNum;
......
package com.xxfc.platform.order.pojo; package com.xxfc.platform.order.pojo;
import com.xxfc.platform.activity.entity.ActivityPopularizeItem;
import com.xxfc.platform.vehicle.constant.AccompanyingItemType;
import com.xxfc.platform.vehicle.entity.AccompanyingItem;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -8,6 +11,8 @@ import java.time.Instant; ...@@ -8,6 +11,8 @@ import java.time.Instant;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneOffset; import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.stream.Collectors;
@Data @Data
public class AddRentVehicleDTO extends AddOrderCommonDTO{ public class AddRentVehicleDTO extends AddOrderCommonDTO{
...@@ -100,6 +105,12 @@ public class AddRentVehicleDTO extends AddOrderCommonDTO{ ...@@ -100,6 +105,12 @@ public class AddRentVehicleDTO extends AddOrderCommonDTO{
@ApiModelProperty(value = "优惠卷卷号") @ApiModelProperty(value = "优惠卷卷号")
private String tickerNos; private String tickerNos;
@ApiModelProperty(value = "随车物品")
private List<String> accompanyStrs;
@ApiModelProperty(value = "随车物品", hidden = true)
private List<OrderAccompanyDTO> accompanyItems;
public void setStartTime(Long startTime) { public void setStartTime(Long startTime) {
this.startTime = startTime; this.startTime = startTime;
this.bookStartDate = DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(startTime), ZoneOffset.ofHours(8))); this.bookStartDate = DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(startTime), ZoneOffset.ofHours(8)));
...@@ -109,4 +120,20 @@ public class AddRentVehicleDTO extends AddOrderCommonDTO{ ...@@ -109,4 +120,20 @@ public class AddRentVehicleDTO extends AddOrderCommonDTO{
this.endTime = endTime; this.endTime = endTime;
this.bookEndDate = DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(endTime), ZoneOffset.ofHours(8))); this.bookEndDate = DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(endTime), ZoneOffset.ofHours(8)));
} }
public void setAccompanyStrs(List<String> accompanyStrs) {
this.accompanyStrs = accompanyStrs;
if(null != accompanyStrs) {
this.accompanyItems = this.accompanyStrs.parallelStream().map(str -> {
String[] strs = str.split(",");
if(strs.length < 2) {
return null;
}
OrderAccompanyDTO item = new OrderAccompanyDTO();
item.setId(Integer.valueOf(strs[0]));
item.setNum(Integer.valueOf(strs[1]));
return item;
}).collect(Collectors.toList());
}
}
} }
package com.xxfc.platform.order.pojo;
import com.xxfc.platform.vehicle.entity.AccompanyingItem;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class OrderAccompanyDTO {
/**
* 物品id
*/
private Integer id;
/**
* 物品名称
*/
private String name;
/**
* 物品数量
*/
private Integer num;
/**
* 物品单位
*/
private String unit;
/**
* 物品单价
*/
private BigDecimal unitPrice;
/**
* 物品总价
*/
private BigDecimal totalAmount;
}
...@@ -6,6 +6,7 @@ import com.xxfc.platform.order.entity.BaseOrder; ...@@ -6,6 +6,7 @@ import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderItem; import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.entity.inter.OrderDetail; import com.xxfc.platform.order.entity.inter.OrderDetail;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail; import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.pojo.OrderAccompanyDTO;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.pojo.BookVehicleVO; import com.xxfc.platform.vehicle.pojo.BookVehicleVO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -38,4 +39,7 @@ public class RentVehicleBO extends OrderRentVehicleDetail implements OrderDetail ...@@ -38,4 +39,7 @@ public class RentVehicleBO extends OrderRentVehicleDetail implements OrderDetail
* 订单子项 * 订单子项
*/ */
List<OrderItem> items; List<OrderItem> items;
@ApiModelProperty(value = "随车物品", hidden = true)
private List<OrderAccompanyDTO> accompanyItems;
} }
...@@ -3,6 +3,7 @@ package com.xxfc.platform.order.service; ...@@ -3,6 +3,7 @@ package com.xxfc.platform.order.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Dict; import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum; import com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
...@@ -23,16 +24,19 @@ import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; ...@@ -23,16 +24,19 @@ import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderItem; import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.entity.OrderTemplate; import com.xxfc.platform.order.entity.OrderTemplate;
import com.xxfc.platform.order.pojo.OrderAccompanyDTO;
import com.xxfc.platform.order.pojo.order.RentVehicleBO; import com.xxfc.platform.order.pojo.order.RentVehicleBO;
import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO; import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
import com.xxfc.platform.universal.constant.DictionaryKey; import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.entity.AccompanyingItem;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord; import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail; import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO; import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO;
import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -40,15 +44,13 @@ import org.springframework.stereotype.Service; ...@@ -40,15 +44,13 @@ import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum.*; import static com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum.*;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
import static com.xxfc.platform.order.contant.enumerate.ItemTypeEnum.*;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER; import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service @Service
...@@ -154,9 +156,25 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -154,9 +156,25 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
activityFeign.use(bo.getAppUserDTO().getUserid(), bo.getTickerNo(), bo.getOrder().getNo(), channel, amount, ActivityFeign.TYPE_USE); activityFeign.use(bo.getAppUserDTO().getUserid(), bo.getTickerNo(), bo.getOrder().getNo(), channel, amount, ActivityFeign.TYPE_USE);
} }
//插入随声物品item
Map<String, AccompanyingItemVo> accompanyingItemMap = vehicleFeign.listAccompanyingItem().getData()
.parallelStream().collect(Collectors.toMap(en -> en.getId().toString(), en -> en));
for(OrderAccompanyDTO oad : bo.getAccompanyItems()) {
AccompanyingItemVo aiv = accompanyingItemMap.get(oad.getId());
oad.setName(aiv.getName());
oad.setUnit(aiv.getUnit());
oad.setUnitPrice(aiv.getPrice());
oad.setNum(aiv.getNumber());
oad.setTotalAmount(oad.getUnitPrice().multiply(new BigDecimal(oad.getNum().toString())));
}
//获取可用车辆 //获取可用车辆
acquireVehicle(bo); acquireVehicle(bo);
OrderItem accompanyItem = orderItemBiz.initOrderItem(BigDecimal.ZERO, 1, "随车物品", null, ACCOMPANY);
accompanyItem.setDetail(JSONUtil.toJsonStr(bo.getAccompanyItems()));
orderItemBiz.insertSelective(accompanyItem);
super.handleDetail(bo); super.handleDetail(bo);
//发送定时取消订单(数据字典设置--5分钟) //发送定时取消订单(数据字典设置--5分钟)
...@@ -380,6 +398,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -380,6 +398,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rentVehicleBookDTO.setUserName(BaseContextHandler.getName()); rentVehicleBookDTO.setUserName(BaseContextHandler.getName());
rentVehicleBookDTO.setLiftCompany(detail.getStartCompanyId()); rentVehicleBookDTO.setLiftCompany(detail.getStartCompanyId());
rentVehicleBookDTO.setLiftAddr(detail.getStartAddr()); rentVehicleBookDTO.setLiftAddr(detail.getStartAddr());
if(null != detail.getAccompanyItems()) {
rentVehicleBookDTO.setSelectedAccItem(detail.getAccompanyItems().parallelStream().collect(Collectors.toMap(OrderAccompanyDTO::getId, OrderAccompanyDTO::getNum)));
}
ObjectRestResponse<VehicleBookRecord> orr = vehicleFeign.rentApplyVehicle(rentVehicleBookDTO); ObjectRestResponse<VehicleBookRecord> orr = vehicleFeign.rentApplyVehicle(rentVehicleBookDTO);
if(!CommonConstants.SYS_JSON_TRUE.equals(orr.getStatus())) { if(!CommonConstants.SYS_JSON_TRUE.equals(orr.getStatus())) {
throw new BaseException(orr.getMessage(), orr.getStatus()); throw new BaseException(orr.getMessage(), orr.getStatus());
......
...@@ -85,6 +85,8 @@ public class RedisKey { ...@@ -85,6 +85,8 @@ public class RedisKey {
// 随车物品相关key // 随车物品相关key
public static final String ACCOMPANYING_ITEM_CACHE_ALL ="cache:accompanyItem:all"; public static final String ACCOMPANYING_ITEM_CACHE_ALL ="cache:accompanyItem:all";
public static final String ACCOMPANYING_ITEM_CACHE_ALL_APP =ACCOMPANYING_ITEM_CACHE_ALL+ ":app";
/** /**
* 服务器上传文件序号 * 服务器上传文件序号
......
...@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.common.vo.GoodDataVO; ...@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.common.vo.GoodDataVO;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.entity.*; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -109,4 +110,8 @@ public interface VehicleFeign { ...@@ -109,4 +110,8 @@ public interface VehicleFeign {
@GetMapping("/city/corporationCity") @GetMapping("/city/corporationCity")
ObjectRestResponse<Set<Integer>> corporationCity( @RequestParam(value = "zoneList") String zoneList, ObjectRestResponse<Set<Integer>> corporationCity( @RequestParam(value = "zoneList") String zoneList,
@RequestParam(value = "companyList") String companyList); @RequestParam(value = "companyList") String companyList);
@GetMapping("/accompanyingItem/app/unauth/items")
public RestResponse<List<AccompanyingItemVo>> listAccompanyingItem();
} }
...@@ -4,6 +4,9 @@ import com.github.wxiaoqi.security.common.vo.PageParam; ...@@ -4,6 +4,9 @@ import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List;
import java.util.Map;
@Data @Data
public class RentVehicleBookDTO extends PageParam { public class RentVehicleBookDTO extends PageParam {
//根据车型、时间、距离,门店,预定车辆 //根据车型、时间、距离,门店,预定车辆
...@@ -47,4 +50,10 @@ public class RentVehicleBookDTO extends PageParam { ...@@ -47,4 +50,10 @@ public class RentVehicleBookDTO extends PageParam {
@ApiModelProperty("订单号") @ApiModelProperty("订单号")
private String orderNo; private String orderNo;
/**
* 随车物品id以及数量 List<Map<id,数量>>
*/
@ApiModelProperty("随车物品id以及数量 List<Map<id,数量>>")
Map<Integer,Integer> selectedAccItem;
} }
\ No newline at end of file
...@@ -2,6 +2,8 @@ package com.xxfc.platform.vehicle.biz; ...@@ -2,6 +2,8 @@ package com.xxfc.platform.vehicle.biz;
import com.ace.cache.annotation.Cache; import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear; import com.ace.cache.annotation.CacheClear;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
...@@ -16,20 +18,30 @@ import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo; ...@@ -16,20 +18,30 @@ import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.util.ArrayList; import javax.annotation.Resource;
import java.util.Comparator; import java.lang.reflect.Array;
import java.util.List; import java.util.*;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
public class AccompanyingItemBiz extends BaseBiz<AccompanyingItemMapper, AccompanyingItem> { public class AccompanyingItemBiz extends BaseBiz<AccompanyingItemMapper, AccompanyingItem> {
@Autowired
private RedisTemplate redisTemplate;
@Resource(name = "redisTemplate")
HashOperations itemHashOperations;
private static final String ACCOMPANY_ITEM="accompany:item";
@Cache(key = RedisKey.ACCOMPANYING_ITEM_CACHE_ALL) @Cache(key = RedisKey.ACCOMPANYING_ITEM_CACHE_ALL)
public List<AccompanyingItem> getAll(){ public List<AccompanyingItem> getAll(){
...@@ -75,6 +87,7 @@ public class AccompanyingItemBiz extends BaseBiz<AccompanyingItemMapper, Accompa ...@@ -75,6 +87,7 @@ public class AccompanyingItemBiz extends BaseBiz<AccompanyingItemMapper, Accompa
accompanyingItem.setId(null); accompanyingItem.setId(null);
BeanUtils.copyProperties(accompanyingItem,addOrUpdateAccompanyingItem); BeanUtils.copyProperties(accompanyingItem,addOrUpdateAccompanyingItem);
Integer effected = mapper.insertSelective(accompanyingItem); Integer effected = mapper.insertSelective(accompanyingItem);
redisTemplate.delete(ACCOMPANY_ITEM);
return RestResponse.suc(); return RestResponse.suc();
} }
...@@ -83,17 +96,33 @@ public class AccompanyingItemBiz extends BaseBiz<AccompanyingItemMapper, Accompa ...@@ -83,17 +96,33 @@ public class AccompanyingItemBiz extends BaseBiz<AccompanyingItemMapper, Accompa
AccompanyingItem accompanyingItem = new AccompanyingItem(); AccompanyingItem accompanyingItem = new AccompanyingItem();
BeanUtils.copyProperties(accompanyingItem,addOrUpdateAccompanyingItem); BeanUtils.copyProperties(accompanyingItem,addOrUpdateAccompanyingItem);
Integer effected = mapper.updateByPrimaryKeySelective(accompanyingItem); Integer effected = mapper.updateByPrimaryKeySelective(accompanyingItem);
redisTemplate.delete(ACCOMPANY_ITEM);
return RestResponse.suc(); return RestResponse.suc();
} }
@CacheClear(key= RedisKey.ACCOMPANYING_ITEM_CACHE_ALL) @CacheClear(key= RedisKey.ACCOMPANYING_ITEM_CACHE_ALL)
public RestResponse<Integer> del(Integer id){ public RestResponse<Integer> del(Integer id){
Integer effected = mapper.deleteByPrimaryKey(id); Integer effected = mapper.deleteByPrimaryKey(id);
redisTemplate.delete(ACCOMPANY_ITEM);
return RestResponse.suc(); return RestResponse.suc();
} }
public List<AccompanyingItemVo> listAllItem(List<Integer> types){ public List<AccompanyingItemVo> listAllItem(List<Integer> types){
String typeKey = null;
if (CollectionUtils.isNotEmpty(types)){
typeKey = types.stream().sorted(Integer::compareTo).map(String::valueOf).reduce("",(x, y)-> x+":"+y);
String itemJson = (String) itemHashOperations.get(ACCOMPANY_ITEM,typeKey);
if (!StringUtils.isEmpty(itemJson)){
return JSON.parseObject(itemJson,new TypeReference<List<AccompanyingItemVo>>(){});
}
}
if (CollectionUtils.isEmpty(types)){
typeKey= "all";
String itemJson = (String) itemHashOperations.get(ACCOMPANY_ITEM, typeKey);
if (!StringUtils.isEmpty(itemJson)){
return JSON.parseObject(itemJson,new TypeReference<List<AccompanyingItemVo>>(){});
}
}
List<AccompanyingItemVo> accompanyingItemVos = new ArrayList<>(); List<AccompanyingItemVo> accompanyingItemVos = new ArrayList<>();
Example example = new Example(AccompanyingItem.class); Example example = new Example(AccompanyingItem.class);
...@@ -112,7 +141,7 @@ public class AccompanyingItemBiz extends BaseBiz<AccompanyingItemMapper, Accompa ...@@ -112,7 +141,7 @@ public class AccompanyingItemBiz extends BaseBiz<AccompanyingItemMapper, Accompa
org.springframework.beans.BeanUtils.copyProperties(item, accompanyingItemVo); org.springframework.beans.BeanUtils.copyProperties(item, accompanyingItemVo);
return accompanyingItemVo; return accompanyingItemVo;
}).sorted(Comparator.comparing(AccompanyingItemVo::getType).thenComparing(AccompanyingItemVo::getRank)).collect(Collectors.toList()); }).sorted(Comparator.comparing(AccompanyingItemVo::getType).thenComparing(AccompanyingItemVo::getRank)).collect(Collectors.toList());
itemHashOperations.put(ACCOMPANY_ITEM,typeKey,JSON.toJSONString(accompanyingItemVoList));
return accompanyingItemVoList; return accompanyingItemVoList;
} }
......
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