Commit 23698fe4 authored by hezhen's avatar hezhen

123

parent ab49459e
......@@ -353,4 +353,8 @@ public class Vehicle {
@ApiModelProperty("改变的json")
private JSONObject json;
@Transient
@ApiModelProperty(value = "价格json")
private String priceJson;
}
\ No newline at end of file
......@@ -89,6 +89,12 @@ public class VehicleApply {
@Column(name = "price_json")
@ApiModelProperty(value = "价格json")
private String priceJson;
@Column(name = "deposit_type")
@ApiModelProperty("押金类型:1-线上;2-线下")
private Integer depositType;
......
package com.xxfc.platform.vehicle.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 商品阶梯价格表
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
@Table(name = "vehicle_days_price")
public class VehicleDaysPrice implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
@Column(name = "vehicle_id")
@ApiModelProperty(value = "商品id")
private String vehicleId;
@Column(name = "price_json")
@ApiModelProperty(value = "价格json")
private String priceJson;
@Column(name = "status")
@ApiModelProperty(value = "状态:1-开启;2-关闭")
private Integer status;
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
@Column(name = "is_del")
@ApiModelProperty(value = "是否正常:0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.vehicle.pojo.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class VehicleDaysPriceVo {
private Integer startDay;
private Integer endDay;
private BigDecimal price;
}
......@@ -70,6 +70,7 @@ import tk.mybatis.mapper.weekend.WeekendSqls;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
......@@ -134,6 +135,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
@Autowired
VehicleRecordEmployBiz recordEmployBiz;
@Autowired
VehicleDaysPriceBiz vehicleDaysPriceBiz;
@Override
public UserFeign getUserFeign() {
return userFeign;
......@@ -1643,11 +1647,34 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
vehicleId=vehicle.getId();
vehicleBookInfoBiz.addVehicleBookInfo(vehicleId);
setGoodsTypes(vehicle);
}
vehicleApply.setVehicleId(vehicleId);
updVehicleDaysPrice(vehicleApply);
return vehicleId;
}
public void updVehicleDaysPrice(VehicleApply vehicleApply){
String priceJson = vehicleApply.getPriceJson();
String vehicleId = vehicleApply.getVehicleId();
if (StringUtils.isNotBlank(priceJson)){
JSONObject jsonObject = JSONObject.parseObject(priceJson);
VehicleDaysPrice vehicleDaysPrice = new VehicleDaysPrice();
vehicleDaysPrice.setVehicleId(vehicleId);
vehicleDaysPrice.setPriceJson(jsonObject.getString("priceList"));
vehicleDaysPrice.setStatus(jsonObject.getInteger("status"));
vehicleDaysPriceBiz.addOrUpd(vehicleDaysPrice);
BigDecimal vehiclePrice = vehicleDaysPriceBiz.getVehiclePrice(vehicleId, 0);
if (vehiclePrice != null && vehiclePrice.compareTo(BigDecimal.ZERO) > 0){
Vehicle vehicle = new Vehicle();
vehicle.setPrice(vehiclePrice);
vehicle.setId(vehicleId);
updateSelectiveById(vehicle);
}
}
}
public void setVehicle(Vehicle vehicle,VehicleApply vehicleApply){
String changeJson = vehicleApply.getChangeJson();
JSONObject jsonObject = JSONObject.parseObject(changeJson);
......
package com.xxfc.platform.vehicle.biz;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleDaysPrice;
import com.xxfc.platform.vehicle.entity.VehicleUseTime;
import com.xxfc.platform.vehicle.mapper.VehicleDaysPriceMapper;
import com.xxfc.platform.vehicle.mapper.VehicleUseTimeMapper;
import com.xxfc.platform.vehicle.pojo.vo.VehicleDaysPriceVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.List;
@Service
@Slf4j
public class VehicleDaysPriceBiz extends BaseBiz<VehicleDaysPriceMapper, VehicleDaysPrice> {
@Autowired
VehicleBiz vehicleBiz;
public void addOrUpd(VehicleDaysPrice vehicleDaysPrice){
String vehicleId = vehicleDaysPrice.getVehicleId();
if (StringUtils.isBlank(vehicleId) ){
throw new BaseException("参数不能为空", ResultCode.FAILED_CODE);
}
Example example = new Example(VehicleDaysPrice.class);
example.createCriteria().andEqualTo("vehicleId",vehicleId).andEqualTo("isDel",0);
List<VehicleDaysPrice> list = selectByExample(example);
if (list.size() > 0){
VehicleDaysPrice vehicleDaysPrice1 = list.get(0);
vehicleDaysPrice.setId(vehicleDaysPrice1.getId());
updateSelectiveById(vehicleDaysPrice);
}else {
insertSelective(vehicleDaysPrice);
}
}
public VehicleDaysPrice getInfo(String vehicleId){
Example example = new Example(VehicleDaysPrice.class);
example.createCriteria().andEqualTo("vehicleId",vehicleId).andEqualTo("isDel",0).andEqualTo("status",1);
List<VehicleDaysPrice> list = selectByExample(example);
if (list.size() > 0){
return list.get(0);
}
return null;
}
public BigDecimal getVehiclePrice(String vehicleId,Integer days){
VehicleDaysPrice vehicleDaysPrice = getInfo(vehicleId);
BigDecimal price = BigDecimal.ZERO;
if (vehicleDaysPrice != null ){
JSONObject jsonObject = JSONObject.parseObject(vehicleDaysPrice.getPriceJson());
List<VehicleDaysPriceVo> priceVos = JSONArray.parseArray(jsonObject.getString("priceList"), VehicleDaysPriceVo.class);
VehicleDaysPriceVo vehicleDaysPriceVo;
if (days == null || days == 0){
vehicleDaysPriceVo = priceVos.stream().min(Comparator.comparing(VehicleDaysPriceVo::getPrice)).get();
}else {
vehicleDaysPriceVo = priceVos.stream().filter(x -> x.getStartDay() >= days && x.getEndDay() >= days).min(Comparator.comparing(VehicleDaysPriceVo::getPrice)).get();
}
if (vehicleDaysPriceVo != null )
price = vehicleDaysPriceVo.getPrice();
}
if (price.compareTo(BigDecimal.ZERO) == 0 ){
Vehicle vehicle = vehicleBiz.selectById(vehicleId);
if (vehicle != null)
price = vehicle.getPrice();
}
return price;
}
}
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleDaysPrice;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
public interface VehicleDaysPriceMapper extends Mapper<VehicleDaysPrice>, SelectByIdListMapper<VehicleDaysPrice,Integer>{
}
\ No newline at end of file
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