Commit df8ba7f9 authored by 周健威's avatar 周健威

Merge remote-tracking branch 'origin/dev-chw' into dev-chw

parents a36c4671 604807fb
......@@ -20,7 +20,7 @@ public class OrderGoodsDTO {
* 商品id
*/
@ApiModelProperty(value = "商品id")
private Integer goodId;
private String goodId;
/**
* 商品类型;1-租车;2-旅游;3-会员订单;4-营地
......
......@@ -80,7 +80,7 @@ public class AppUserSellingWater implements Serializable {
*/
@Column(name = "good_id")
@ApiModelProperty(value = "商品id")
private Integer goodId;
private String goodId;
/**
* 商品数量
......
......@@ -53,10 +53,15 @@ public class BaseOrderAcceptDetailed implements Serializable {
@Column(name = "division_type")
@ApiModelProperty(value = "类型 1=>平台抽成;2-上级用户拥金;3-上级商家拥金;4-推荐入驻拥金")
@ApiModelProperty(value = "类型 1=>平台抽成;2-上级用户拥金;3-上级商家拥金;4-推荐入驻拥金;5-商家订单;6-商家定损;7-商家违章")
private Integer divisionType;
@Column(name = "entry_type")
@ApiModelProperty(value = "入账类型:1-线上;2-线下")
private Integer entryType;
@Column(name = "division_amount")
@ApiModelProperty(value = "分账金额")
......
......@@ -101,7 +101,7 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
String orderNo = orderWaterDTO.getOrderNo();
//用户id
Integer userId = orderWaterDTO.getUserId();
Integer goodId=0;
String goodId = null;
Integer orderType = 0;
String title=null;
String img=null;
......
......@@ -8,8 +8,12 @@ import com.github.wxiaoqi.security.admin.vo.SellingWalletPagVo;
import com.github.wxiaoqi.security.admin.vo.SellingWalletVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.feign.OrderFeign;
import com.xxfc.platform.order.pojo.dto.OrderDetailDTO;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
......@@ -46,12 +50,6 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
@Autowired
AppUserDetailBiz detailBiz;
@Autowired
private AppUserLoginBiz appUserLoginBiz;
@Autowired
private AppUserDetailBiz appUserDetailBiz;
@Autowired
MyWaterBiz myWaterBiz;
......@@ -64,6 +62,9 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
@Autowired
AppUserSellingWaterBiz sellingWaterBiz;
@Autowired
OrderFeign orderFeign;
//计算用户拥金
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
......@@ -71,13 +72,25 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
//订单状态
Integer status = orderWaterDTO.getStatus();
if (status == null || status == 0) {
log.info("购买计算用户拥金----payOrderWater----参数不能为空----status===" + status);
log.info("分账----orderWater----参数不能为空----status===" + status);
return;
}
ObjectRestResponse<OrderDetailDTO> restResponse = orderFeign.getOrderDetail(orderWaterDTO.getOrderNo(), status);
if (restResponse.getData() == null ){
log.info("分账----订单信息不存在----参数不能为空---" );
return;
}
OrderDetailDTO orderDetailDTO = restResponse.getData();
if (status == 1) {
payOrderAccept(orderWaterDTO);
payOrderAccept(orderWaterDTO,orderDetailDTO);
} else if (status == 2) {
finishOrderAccept(orderWaterDTO);
BigDecimal acceptAmount = orderDetailDTO.getAcceptAmount();
log.info("分账----acceptAmount===="+acceptAmount );
if (acceptAmount.compareTo(BigDecimal.ZERO) == 0){
return;
}
orderWaterDTO.setOrderAmount(acceptAmount);
finishOrderAccept(orderWaterDTO,orderDetailDTO);
sellingWaterBiz.updWalletByOrderId(orderWaterDTO);
} else {
refundOrderAccept(orderWaterDTO);
......@@ -86,20 +99,27 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
}
//下单分账
public void payOrderAccept(OrderWaterDTO orderWaterDTO) {
public void payOrderAccept(OrderWaterDTO orderWaterDTO,OrderDetailDTO orderDetailDTO) {
//订单id
Integer orderId = orderWaterDTO.getOrderId() == null ? 0 : orderWaterDTO.getOrderId();
Integer orderId = orderDetailDTO.getOrderId() == null ? 0 : orderDetailDTO.getOrderId();
//订单号
String orderNo = orderWaterDTO.getOrderNo();
String orderNo = orderDetailDTO.getOrderNo();
//用户id
Integer userId = orderWaterDTO.getUserId() == null ? 0 : orderWaterDTO.getUserId();
Integer companyId = orderWaterDTO.getCompanyId() == null ? 0 : orderWaterDTO.getCompanyId();
List<OrderGoodsDTO> goodsDTOList = orderWaterDTO.getGoodsDTOList();
Integer userId = orderDetailDTO.getUserId() == null ? 0 : orderDetailDTO.getUserId();
OrderRentVehicleDetail rentVehicleDetail = orderDetailDTO.getRentVehicleDetail();
Integer companyId = rentVehicleDetail.getVehicleManageCompanyId() == null ? 0 : rentVehicleDetail.getVehicleManageCompanyId();
log.info("分账----payOrderAccept----userId====" + userId + "---orderId===" + orderId + "---orderNo===" + orderNo+"----companyId==="+companyId);
if (orderId == 0 || userId == 0 || companyId == 0 || CollectionUtils.isEmpty(goodsDTOList)) {
if (orderId == 0 || userId == 0 || companyId == 0 ) {
throw new BaseException("分账----payOrderAccept----参数不能为空----orderId===" + orderId,ResultCode.FAILED_CODE);
}
BigDecimal orderAmount = goodsDTOList.stream().map(OrderGoodsDTO::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal orderAmount = orderDetailDTO.getAcceptAmount();
log.info("分账----payOrderAccept--------userId===" + userId + "---orderAmount===="+orderAmount);
......@@ -179,36 +199,44 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
}
public void payOrderFAccept(OrderWaterDTO orderWaterDTO) {
public void payOrderFAccept(OrderWaterDTO orderWaterDTO,OrderDetailDTO orderDetailDTO) {
Integer orderId = orderWaterDTO.getOrderId() == null ? 0 : orderWaterDTO.getOrderId();
List<OrderGoodsDTO> goodsDTOList = orderWaterDTO.getGoodsDTOList();
if (goodsDTOList.size() > 0){
BigDecimal goodsPries = goodsDTOList.stream().map(OrderGoodsDTO::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
BaseOrderAcceptDetailed acceptDetailed=new BaseOrderAcceptDetailed();
acceptDetailed.setOrderId(orderId);
acceptDetailed.setStatus(1);
List<BaseOrderAcceptDetailed> acceptDetaileds = selectList(acceptDetailed);
if (orderDetailDTO != null ){
Example example = new Example(BaseOrderAcceptDetailed.class);
example.createCriteria().andEqualTo("orderId",orderId).andEqualTo("status",1);
example.setOrderByClause("division_type desc ");
List<BaseOrderAcceptDetailed> acceptDetaileds = selectByExample(example);
if (acceptDetaileds.size() > 0){
BigDecimal orderAmount = acceptDetaileds.get(0).getOrderAmount();
if (orderAmount.compareTo(goodsPries) > 0){
orderAmount=orderAmount.subtract(goodsPries);
BigDecimal amount=BigDecimal.ZERO;
BigDecimal orderAmount = orderDetailDTO.getAcceptAmount();
if (orderAmount.compareTo(BigDecimal.ZERO) > 0){
BigDecimal amount=orderAmount;
//先计算分给店铺
BigDecimal companyExtrac = acceptDetaileds.stream().filter(x->x.getDivisionType() == 5).map(BaseOrderAcceptDetailed::getExtract).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
//店铺金额
BigDecimal companyDivisionAmount=orderAmount.multiply(companyExtrac).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
//其他金额
BigDecimal otherDivisionAmount=orderAmount.subtract(companyDivisionAmount);
Integer num=0;
for (BaseOrderAcceptDetailed acceptDetailed1:acceptDetaileds){
num++;
Integer zAcceptId = acceptDetailed1.getId();
acceptDetailed1.setType(2);
acceptDetailed1.setId(null);
acceptDetailed1.setOrderAmount(orderAmount);
if (acceptDetailed1.getDivisionType() == 5 ){
if (orderAmount.compareTo(amount) > 0){
BigDecimal divisionAmount=orderAmount.subtract(amount).setScale(2, BigDecimal.ROUND_HALF_UP);
acceptDetailed1.setDivisionAmount(divisionAmount);
if (num.equals(acceptDetaileds.size())){
acceptDetailed1.setDivisionAmount(amount);
insertSelective(acceptDetailed1);
}
}else {
BigDecimal divisionAmount=orderAmount.multiply(acceptDetailed1.getExtract()).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
if (acceptDetailed1.getDivisionType() == 5) {
acceptDetailed1.setDivisionAmount(companyDivisionAmount);
insertSelective(acceptDetailed1);
} else if (acceptDetailed1.getDivisionType() == 2 || acceptDetailed1.getDivisionType() == 3 || acceptDetailed1.getDivisionType() == 4) {
if (otherDivisionAmount.compareTo(BigDecimal.ZERO) > 0) {
if (!orderDetailDTO.getOrderStatus().equals(OrderDetailDTO.CANEL)) {
BigDecimal divisionAmount = otherDivisionAmount.multiply(acceptDetailed1.getExtract()).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
acceptDetailed1.setDivisionAmount(divisionAmount);
}
insertSelective(acceptDetailed1);
amount=amount.add(divisionAmount);
orderWaterDTO.setAcceptId(acceptDetailed1.getId());
orderWaterDTO.setZAcceptId(zAcceptId);
orderWaterDTO.setOrderAmount(orderAmount);
......@@ -216,17 +244,19 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
}
}
}
amount=amount.subtract(acceptDetailed1.getDivisionAmount());
}
}
othderAccept(orderDetailDTO);
}
}
}
//订单完成计算用户拥金
public void finishOrderAccept(OrderWaterDTO orderWaterDTO) {
public void finishOrderAccept(OrderWaterDTO orderWaterDTO,OrderDetailDTO orderDetailDTO) {
//订单id
Integer orderId = orderWaterDTO.getOrderId() == null ? 0 : orderWaterDTO.getOrderId();
log.info("订单完成计算用户拥金----finishOrderWater----orderId====" + orderId);
log.info("订单完成分账----finishOrderWater----orderId====" + orderId);
if (orderId == 0) {
return;
}
......@@ -241,21 +271,16 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
updateSelectiveById(acceptDetailed);
orderWaterDTO.setAcceptId(id);
BigDecimal commison=sellingWaterBiz.finishOrderWater(orderWaterDTO);
log.info("分账----finishOrderAccept----id====" + id + "---commison==" + commison + "----divisionType===" + divisionType);
log.info("订单完成分账----finishOrderAccept----id====" + id + "---commison==" + commison + "----divisionType===" + divisionType);
amount = amount.add(commison);
}
Integer orderType = 0;
List<OrderGoodsDTO> goodsDTOList = orderWaterDTO.getGoodsDTOList();
if (goodsDTOList.size() > 0){
OrderGoodsDTO orderGoodsDTO=goodsDTOList.get(0);
orderType=orderGoodsDTO.getType() == null ? 0 : orderGoodsDTO.getType();
}
Integer orderType = orderDetailDTO.getOrderType() == null ? 0 : orderDetailDTO.getOrderType();
BigDecimal unbooked = amount;
log.info("订单完成计算用户拥金----finishOrderWater----orderId====" + orderId + "---amount==" + amount + "---unbooked==" + unbooked);
log.info("订单完成分账----finishOrderWater----orderId====" + orderId + "---amount==" + amount + "---unbooked==" + unbooked);
if (orderType == 1) {
payOrderFAccept(orderWaterDTO);
payOrderFAccept(orderWaterDTO,orderDetailDTO);
}
log.info("订单完成计算用户拥金----finishOrderWater--------orderId===" + orderId + "----amount====" + amount + "--orderType===" + orderType);
log.info("订单完成分账----finishOrderWater--------orderId===" + orderId + "----amount====" + amount + "--orderType===" + orderType);
}
......@@ -282,6 +307,8 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
}
}
//获取拥金列表
public List<BaseOrderAcceptDetailed> getAcceptList(Integer orderId) {
Example example = new Example(BaseOrderAcceptDetailed.class);
......@@ -290,4 +317,23 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
}
public void othderAccept(OrderDetailDTO orderDetailDTO){
BaseOrderAcceptDetailed acceptDetailed = new BaseOrderAcceptDetailed();
acceptDetailed.setOrderNo(orderDetailDTO.getOrderNo());
acceptDetailed.setDivisionType(5);
acceptDetailed=selectOne(acceptDetailed);
if (acceptDetailed != null ){
if (orderDetailDTO.getOrderStatus().equals(OrderDetailDTO.DELAY)){
acceptDetailed.setDivisionAmount(orderDetailDTO.getViolateAmount());
acceptDetailed.setDivisionType(6);
acceptDetailed.setId(null);
acceptDetailed.setStatus(1);
acceptDetailed.setStatusTime(System.currentTimeMillis());
insertSelective(acceptDetailed);
}
}
}
}
\ No newline at end of file
......@@ -87,7 +87,7 @@ public class WaterMQHandler {
orderWaterDTO.setGoodsDTOList(
new ArrayList<OrderGoodsDTO>() {{
add(new OrderGoodsDTO() {{
setGoodId(orderMQDTO.getOrderRentVehicleDetail().getModelId());
setGoodId(orderMQDTO.getOrderRentVehicleDetail().getVehicleId());
setGoodNumber(1);
setImg(orderMQDTO.getPicture());
setPrice(orderMQDTO.getItemByTypeEnum(ItemTypeEnum.VEHICLE_MODEL).getLastAmount());
......@@ -103,7 +103,7 @@ public class WaterMQHandler {
orderWaterDTO.setGoodsDTOList(
new ArrayList<OrderGoodsDTO>() {{
add(new OrderGoodsDTO() {{
setGoodId(orderMQDTO.getOrderTourDetail().getGoodId());
setGoodId(orderMQDTO.getOrderTourDetail().getGoodId()+"");
setGoodNumber(1);
setImg(orderMQDTO.getPicture());
setPrice(tourAdultItem.getRealAmount().add(null == tourChildItem?
......@@ -118,7 +118,7 @@ public class WaterMQHandler {
orderWaterDTO.setGoodsDTOList(
new ArrayList<OrderGoodsDTO>() {{
add(new OrderGoodsDTO() {{
setGoodId(orderMQDTO.getOrderMemberDetail().getMemberLevelId());
setGoodId(orderMQDTO.getOrderMemberDetail().getMemberLevelId()+"");
setGoodNumber(1);
setImg(orderMQDTO.getPicture());
setPrice(orderMQDTO.getItemByTypeEnum(ItemTypeEnum.MEMBER).getRealAmount());
......
package com.xxfc.platform.order.feign;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.entity.OrderInvoice;
import com.xxfc.platform.order.pojo.dto.OrderDTO;
import com.xxfc.platform.order.pojo.dto.OrderDetailDTO;
import com.xxfc.platform.order.pojo.order.OrderPageVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
......@@ -38,4 +38,8 @@ public interface OrderFeign {
@GetMapping(value = "/specialRent/app/unauth/checkHasSpecialRentFegin")
public ObjectRestResponse<Boolean> checkHasSpecialRentFegin(String vehicleId);
@RequestMapping(value = "chw/orderDetail/app/unauth/getOrderDetail", method = RequestMethod.GET)
ObjectRestResponse<OrderDetailDTO> getOrderDetail(@RequestParam("orderNo")String orderNo, @RequestParam("type")Integer type);
}
package com.xxfc.platform.order.pojo.dto;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* 门店收支明细DTO
* @author libin
* @version 1.0
* @description
* @data 2019/12/25 14:53
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OrderDetailDTO {
public static final Integer PAY = 1; //支付
public static final Integer CANEL = 2; //取消
public static final Integer ADVANCE = 3; //提前还车
public static final Integer DELAY = 4; //延迟还车
public static final Integer FINISH = 5; //正常完成
@ApiModelProperty("租车订单详情")
private OrderRentVehicleDetail rentVehicleDetail;
@ApiModelProperty("订单类型")
private Integer orderType;
@ApiModelProperty("订单号")
private String orderNo;
@ApiModelProperty("用户id")
private Integer userId;
@ApiModelProperty("订单id")
private Integer orderId;
@ApiModelProperty("订单状态")
private Integer orderStatus = PAY;
@ApiModelProperty("商品实付金额")
private BigDecimal goodsAmount =BigDecimal.ZERO;
@ApiModelProperty("消费金额")
private BigDecimal orderAmount =BigDecimal.ZERO;
@ApiModelProperty("不计免赔费")
private BigDecimal damageSafeAmount =BigDecimal.ZERO;
@ApiModelProperty("其他费用-延迟用车不记免赔")
private BigDecimal damageSafeAmount2 =BigDecimal.ZERO;
@ApiModelProperty("定损费")
private BigDecimal lossSpecifiedAmount =BigDecimal.ZERO;
@ApiModelProperty("违章费")
private BigDecimal breakRulesRegulation =BigDecimal.ZERO;
@ApiModelProperty("违约金")
private BigDecimal violateAmount =BigDecimal.ZERO;
@ApiModelProperty("更换还车公司费用")
private BigDecimal chageAmount =BigDecimal.ZERO;
@ApiModelProperty("分账金额")
private BigDecimal acceptAmount;
public BigDecimal getAcceptAmount(){
return goodsAmount.subtract(orderAmount).subtract(violateAmount);
}
}
package com.xxfc.platform.order.biz;
import com.alibaba.fastjson.JSON;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;;
import com.xxfc.platform.order.contant.enumerate.DeductionTypeEnum;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.account.OrderAccountDeduction;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.dto.OrderDetailDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@Service
@Slf4j
public class OrderDetailBiz{
@Autowired
BaseOrderBiz orderBiz;
@Autowired
OrderRentVehicleBiz orderRentVehicleBiz;
@Autowired
OrderItemBiz orderItemBiz;
@Autowired
CompanyWalletBiz companyWalletBiz;
@Autowired
OrderAccountBiz orderAccountBiz;
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
//type1-支付;2-退款;3-完成
public OrderDetailDTO getOrderDetail(String orderNo,Integer type){
if (StringUtils.isBlank(orderNo)){
throw new BaseException("订单号不存在",ResultCode.FAILED_CODE);
}
log.info("---orderNo==="+orderNo);
//获取订单相关信息
BaseOrder baseOrder=new BaseOrder();
baseOrder.setNo(orderNo);
baseOrder=orderBiz.selectOne(baseOrder);
if (baseOrder == null ||(type == 1 && !baseOrder.getStatus() .equals(OrderStatusEnum.ORDER_TOSTART.getCode())) ||( (type == 2 || type == 3) && !baseOrder.getStatus().equals(OrderStatusEnum.ORDER_FINISH.getCode()))){
throw new BaseException("订单不存在或状态不是已完成",ResultCode.FAILED_CODE);
}
BigDecimal goodsAmount=baseOrder.getGoodsAmount().subtract(baseOrder.getCouponAmount());
List<OrderRentVehicleDetail> orderRentVehicleDetails = orderRentVehicleBiz.listByOrderId(baseOrder.getId());
if (orderRentVehicleDetails == null || orderRentVehicleDetails.size() == 0){
throw new BaseException("订单详情不存在",ResultCode.FAILED_CODE);
}
List<Integer> types=new ArrayList<>();
if (type == 2){
types.add(201);
types.add(202);
types.add(203);
}else if (type == 3) {
types.add(204);
}
OrderAccountDetail accountDetail = null;
if (types.size() > 0){
accountDetail = getAccountDetail(types, baseOrder.getId());
if (accountDetail == null ){
throw new BaseException("费用明细不存在",ResultCode.FAILED_CODE);
}
}
OrderItem orderItem=new OrderItem();
orderItem.setOrderId(baseOrder.getId());
List<OrderItem> orderItems = orderItemBiz.selectList(orderItem);
//不计免赔
BigDecimal damageSafeAmount = orderItems.stream().filter(x->x.getType()==102).map(OrderItem::getRealAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
OrderRentVehicleDetail vehicleDetail=orderRentVehicleDetails.get(0);
//获取营收明细dto
OrderDetailDTO orderDetailDTO = new OrderDetailDTO();
orderDetailDTO.setRentVehicleDetail(vehicleDetail);
orderDetailDTO.setDamageSafeAmount(damageSafeAmount);
orderDetailDTO.setGoodsAmount(goodsAmount);
orderDetailDTO.setOrderType(baseOrder.getType());
orderDetailDTO.setOrderId(baseOrder.getId());
orderDetailDTO.setUserId(baseOrder.getUserId());
orderDetailDTO.setOrderNo(baseOrder.getNo());
if (accountDetail != null){
List<OrderAccountDeduction> deductions = accountDetail.getDeductions();
if (CollectionUtils.isNotEmpty(deductions)){
setDeductionDetail(deductions,orderDetailDTO);
}
}
return orderDetailDTO;
}
public OrderAccountDetail getAccountDetail(List<Integer> types,Integer orderId) {
Example example = new Example(OrderAccount.class);
example.createCriteria().andEqualTo("orderId", orderId).andIn("accountType", types);
List<OrderAccount> orderAccounts = orderAccountBiz.selectByExample(example);
if (orderAccounts.size() > 0){
OrderAccount orderAccount = orderAccounts.get(0);
return org.springframework.util.StringUtils.hasText(orderAccount.getAccountDetail()) ? JSON.parseObject(orderAccount.getAccountDetail(), OrderAccountDetail.class) : null;
}
return null;
}
public void setDeductionDetail(List<OrderAccountDeduction> deductions, OrderDetailDTO orderDetailDTO){
Integer orderStatus=0;
for (OrderAccountDeduction orderAccountDeduction:deductions){
Integer type=orderAccountDeduction.getType() == null ? 0 : orderAccountDeduction.getType();
BigDecimal amount=orderAccountDeduction.getAmount() == null ?BigDecimal.ZERO : orderAccountDeduction.getAmount();
if (Objects.equals(DeductionTypeEnum.VIOLATE_CANCEL.getCode(),type)){
orderStatus=OrderDetailDTO.CANEL;
orderDetailDTO.setViolateAmount(amount);
}else {
if (Objects.equals(DeductionTypeEnum.VIOLATE_ADVANCE.getCode(),type)){
orderStatus=OrderDetailDTO.ADVANCE;
orderDetailDTO.setViolateAmount(amount);
}else if (Objects.equals(DeductionTypeEnum.VIOLATE_DELAY.getCode(),type)){
orderStatus=OrderDetailDTO.DELAY;
orderDetailDTO.setViolateAmount(amount);
} else if (Objects.equals(DeductionTypeEnum.VIOLATE_CHANGE_C.getCode(),type)){
orderDetailDTO.setChageAmount(amount);
}else if (Objects.equals(DeductionTypeEnum.CONSUME.getCode(),type)){
orderDetailDTO.setOrderAmount(amount);
}else if (Objects.equals(DeductionTypeEnum.DAMAGES.getCode(),type)){
orderDetailDTO.setLossSpecifiedAmount(amount);
}else if (Objects.equals(DeductionTypeEnum.VIOLATE_TRAFFIC_DEDUCT.getCode(),type)){
orderDetailDTO.setBreakRulesRegulation(amount);
}else if (Objects.equals(DeductionTypeEnum.OTHER_DELAY_SAFE.getCode(),type)){
orderDetailDTO.setDamageSafeAmount2(amount);
}
}
}
orderDetailDTO.setOrderStatus(orderStatus);
}
}
package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.biz.OrderDetailBiz;
import com.xxfc.platform.order.pojo.dto.OrderDetailDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("chw/orderDetail")
@Slf4j
public class AppOrderDetailController{
@Autowired
OrderDetailBiz orderDetailBiz;
@RequestMapping(value = "app/unauth/getOrderDetail", method = RequestMethod.GET)
@IgnoreUserToken
public ObjectRestResponse<List<OrderDetailDTO>> getOrderDetail(@RequestParam("orderNo")String orderNo, @RequestParam("type")Integer type) {
return ObjectRestResponse.succ(orderDetailBiz.getOrderDetail(orderNo,type));
}
}
......@@ -20,6 +20,7 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.xxfc.platform.order.feign.OrderFeign;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.dto.SendMsgDTO;
import com.xxfc.platform.universal.entity.Dictionary;
......@@ -122,6 +123,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
@Autowired
VehicleManageApplyBiz vehicleManageApplyBiz;
@Autowired
OrderFeign orderFeign;
@Override
public UserFeign getUserFeign() {
return userFeign;
......@@ -1793,6 +1797,22 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
public ObjectRestResponse updState(Vehicle vehicle){
ObjectRestResponse<Boolean> restResponse = orderFeign.checkHasSpecialRentFegin(vehicle.getId());
if (restResponse.getData() == null ){
return restResponse;
}
Boolean flag = restResponse.getData();
if (flag){
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"已存在特惠租车无法上架");
}
updateSelectiveById(vehicle);
return ObjectRestResponse.succ();
}
......
......@@ -44,8 +44,7 @@ public class AppVehicleController extends BaseController<VehicleBiz> {
@PostMapping("updVehicle")
@ApiModelProperty("更新商品信息")
public ObjectRestResponse updVehicle(@RequestBody Vehicle vehicle) {
baseBiz.updateSelectiveById(vehicle);
return ObjectRestResponse.succ();
return baseBiz.updState(vehicle);
}
......
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