Commit 015d00f7 authored by libin's avatar libin

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

parents d74582fd 16257299
...@@ -14,11 +14,7 @@ import java.math.BigDecimal; ...@@ -14,11 +14,7 @@ import java.math.BigDecimal;
@Data @Data
@ApiModel(value = "月订单统计实体") @ApiModel(value = "月订单统计实体")
public class OrderStatistics { public class OrderStatistics {
/**
* 公司id
*/
@ApiModelProperty(value = "公司id")
private Integer branchCompanyId;
/** /**
* 月成交总金额 * 月成交总金额
*/ */
......
...@@ -11,6 +11,7 @@ import org.apache.commons.beanutils.BeanUtils; ...@@ -11,6 +11,7 @@ import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
...@@ -43,6 +44,7 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta ...@@ -43,6 +44,7 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta
} }
return true; return true;
} catch (Exception e) { } catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
e.printStackTrace(); e.printStackTrace();
return false; return false;
} }
......
...@@ -3,10 +3,51 @@ package com.xxfc.platform.order.biz; ...@@ -3,10 +3,51 @@ package com.xxfc.platform.order.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.entity.OrderStatistics; import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.mapper.OrderStatisticsMapper; import com.xxfc.platform.order.mapper.OrderStatisticsMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import static io.lettuce.core.ZStoreArgs.Builder.sum;
import static java.util.stream.Collectors.groupingBy;
/** /**
* @author Administrator * @author Administrator
*/ */
@Service @Service
public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper,OrderStatistics> { public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper,OrderStatistics> {
@Autowired
private DailyVehicleOrderStatisticsBiz vehicleBiz;
@Autowired
private DailyTravelOrderStatisticsBiz TravelBiz;
@Autowired
private DailyMembersOrderStatisticsBiz membersBiz;
public OrderStatistics getToalOrder(Integer companyId) {
OrderStatistics result = new OrderStatistics();
ArrayList<OrderStatistics> orderStatistics = new ArrayList<>();
OrderStatistics vehicle = vehicleBiz.findAll(companyId);
if (vehicle!=null) {orderStatistics.add(vehicle);}
OrderStatistics tour = TravelBiz.findAll(companyId);
if (vehicle!=null) {orderStatistics.add(tour);}
OrderStatistics member = membersBiz.findAll(companyId);
if (vehicle!=null) {orderStatistics.add(member);}
result.setTotalGmv(orderStatistics.stream().map(OrderStatistics::getTotalGmv).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalForfeit(orderStatistics.stream().map(OrderStatistics::getTotalForfeit).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalCompensation(orderStatistics.stream().map(OrderStatistics::getTotalCompensation).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalRefundSecurityDeposit(orderStatistics.stream().map(OrderStatistics::getTotalRefundSecurityDeposit).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalSecurityDeposit(orderStatistics.stream().map(OrderStatistics::getTotalSecurityDeposit).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalPenalSum(orderStatistics.stream().map(OrderStatistics::getTotalPenalSum).reduce(BigDecimal.ZERO,BigDecimal::add));
result.setTotalPostpone(orderStatistics.stream().map(OrderStatistics::getTotalPostpone).reduce(BigDecimal.ZERO,BigDecimal::add));
return result;
}
} }
...@@ -286,7 +286,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -286,7 +286,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
if (baseOrder.getStatus() == OrderStatusEnum.ORDER_TOSTART.getCode()) {//交车 if (baseOrder.getStatus() == OrderStatusEnum.ORDER_TOSTART.getCode()) {//交车
baseOrder.setStatus(OrderStatusEnum.ORDER_WAIT.getCode()); baseOrder.setStatus(OrderStatusEnum.ORDER_WAIT.getCode());
baseOrderBiz.updateSelectiveById(baseOrder); baseOrder = baseOrderBiz.updateSelectiveByIdReT(baseOrder);
} else if (baseOrder.getStatus() == OrderStatusEnum.ORDER_WAIT.getCode()) { //还车 } else if (baseOrder.getStatus() == OrderStatusEnum.ORDER_WAIT.getCode()) { //还车
if (orderVehicleCrosstown.getType() == CrosstownTypeEnum.ARRIVE.getCode()) {//不定损直接还车 if (orderVehicleCrosstown.getType() == CrosstownTypeEnum.ARRIVE.getCode()) {//不定损直接还车
//添加非定损记录 //添加非定损记录
...@@ -298,7 +298,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -298,7 +298,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
orderDepositRefundRecordBiz.saveNormalRecord(depositRefundRecord); orderDepositRefundRecordBiz.saveNormalRecord(depositRefundRecord);
//修改订单状态为已完成 //修改订单状态为已完成
baseOrder.setStatus(OrderStatusEnum.ORDER_FINISH.getCode()); baseOrder.setStatus(OrderStatusEnum.ORDER_FINISH.getCode());
baseOrderBiz.updateSelectiveById(baseOrder); baseOrderBiz.updateSelectiveByIdReT(baseOrder);
//修改订单详情是否押金全部退还 //修改订单详情是否押金全部退还
orderRentVehicleDetail.setFixedLossStatus(0); orderRentVehicleDetail.setFixedLossStatus(0);
orderRentVehicleBiz.updateSelectiveByIdRe(orderRentVehicleDetail); orderRentVehicleBiz.updateSelectiveByIdRe(orderRentVehicleDetail);
...@@ -312,7 +312,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -312,7 +312,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
depositRefundRecord.setCrosstownId(orderVehicleCrosstown.getId()); depositRefundRecord.setCrosstownId(orderVehicleCrosstown.getId());
orderDepositRefundRecordBiz.saveFixLossRecord(depositRefundRecord); orderDepositRefundRecordBiz.saveFixLossRecord(depositRefundRecord);
baseOrder.setStatus(OrderStatusEnum.ORDER_FIXED_LOSS.getCode()); baseOrder.setStatus(OrderStatusEnum.ORDER_FIXED_LOSS.getCode());
baseOrderBiz.updateSelectiveById(baseOrder); baseOrderBiz.updateSelectiveByIdReT(baseOrder);
orderRentVehicleDetail.setFixedLossStatus(1); orderRentVehicleDetail.setFixedLossStatus(1);
orderRentVehicleBiz.updateSelectiveByIdRe(orderRentVehicleDetail); orderRentVehicleBiz.updateSelectiveByIdRe(orderRentVehicleDetail);
} }
...@@ -334,7 +334,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -334,7 +334,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
throw new BaseException("定损记录不存在!请联系客服"); throw new BaseException("定损记录不存在!请联系客服");
} }
baseOrder.setStatus(OrderStatusEnum.ORDER_FINISH.getCode()); baseOrder.setStatus(OrderStatusEnum.ORDER_FINISH.getCode());
baseOrderBiz.updateSelectiveById(baseOrder); baseOrder = baseOrderBiz.updateSelectiveByIdReT(baseOrder);
baseOrderBiz.sendOrderMq(orderRentVehicleDetail, null, null, baseOrder, OrderMQDTO.ORDER_FINISH); baseOrderBiz.sendOrderMq(orderRentVehicleDetail, null, null, baseOrder, OrderMQDTO.ORDER_FINISH);
} }
} }
......
package com.xxfc.platform.order.jobhandler; package com.xxfc.platform.order.jobhandler;
import cn.hutool.core.date.DateUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.google.common.collect.Lists;
import com.xxfc.platform.order.biz.*; import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.biz.inner.OrderMsgBiz; import com.xxfc.platform.order.biz.inner.OrderMsgBiz;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.contant.enumerate.RefundStatusEnum;
import com.xxfc.platform.order.contant.enumerate.RefundTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail; import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.entity.OrderVehicleCrosstown;
import com.xxfc.platform.order.entity.OrderViolation; import com.xxfc.platform.order.entity.OrderViolation;
import com.xxfc.platform.universal.constant.DictionaryKey; import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary; import com.xxfc.platform.universal.entity.Dictionary;
...@@ -17,6 +17,7 @@ import com.xxl.job.core.biz.model.ReturnT; ...@@ -17,6 +17,7 @@ import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler; import com.xxl.job.core.handler.annotation.JobHandler;
import com.xxl.job.core.log.XxlJobLogger; import com.xxl.job.core.log.XxlJobLogger;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -24,10 +25,12 @@ import tk.mybatis.mapper.entity.Example; ...@@ -24,10 +25,12 @@ import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls; import tk.mybatis.mapper.weekend.WeekendSqls;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
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.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER; import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
/** /**
...@@ -78,7 +81,7 @@ public class RentDepositJobHandler extends IJobHandler { ...@@ -78,7 +81,7 @@ public class RentDepositJobHandler extends IJobHandler {
.where(WeekendSqls.<BaseOrder>custom().andEqualTo(BaseOrder::getType, OrderTypeEnum.RENT_VEHICLE) .where(WeekendSqls.<BaseOrder>custom().andEqualTo(BaseOrder::getType, OrderTypeEnum.RENT_VEHICLE)
.andEqualTo(BaseOrder::getStatus, OrderStatusEnum.ORDER_FINISH) //已完成的订单 .andEqualTo(BaseOrder::getStatus, OrderStatusEnum.ORDER_FINISH) //已完成的订单
.andEqualTo(BaseOrder::getRefundStatus, RefundStatusEnum.RESIDUE_ILLEGAL) //已归还了部分押金 .andEqualTo(BaseOrder::getRefundStatus, RefundStatusEnum.RESIDUE_ILLEGAL) //已归还了部分押金
.andLessThanOrEqualTo(BaseOrder::getRefundTime, System.currentTimeMillis() - (rentDepositAutoRefundTime * 60 * 1000)) .andLessThanOrEqualTo(BaseOrder::getCrtTime, DateUtil.date(System.currentTimeMillis() - (rentDepositAutoRefundTime * 60 * 1000)))
// .andLike(BaseOrder::getId, "%"+ i) // .andLike(BaseOrder::getId, "%"+ i)
).build()); ).build());
...@@ -88,17 +91,41 @@ public class RentDepositJobHandler extends IJobHandler { ...@@ -88,17 +91,41 @@ public class RentDepositJobHandler extends IJobHandler {
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
}}); }});
OrderViolation orderViolation = orderViolationBiz.selectOne(new OrderViolation(){{ Integer crosstownTypeEnum;
setDetailId(orvd.getId()); //判断是否定损过
setIsDel(SYS_FALSE); if(SYS_TRUE.equals(orvd.getFixedLossStatus())) {
crosstownTypeEnum = CrosstownTypeEnum.FIXED_LOSS.getCode();
}else {
crosstownTypeEnum = CrosstownTypeEnum.ARRIVE.getCode();
}
OrderVehicleCrosstown crosstown = crosstownBiz.selectOne(new OrderVehicleCrosstown(){{
setOrderId(baseOrder.getId());
setType(crosstownTypeEnum);
}}); }});
//还车扣除款 剩余的 钱,再减去违章预备金 if(crosstown.getCrtTime().compareTo(System.currentTimeMillis() - (rentDepositAutoRefundTime * 60 * 1000)) < 0) {
BigDecimal refundAmont = orvd.getReturnPayResidue().subtract(orderViolation.getPrice()); OrderViolation orderViolation = orderViolationBiz.selectOne(new OrderViolation(){{
String refundDesc = "退还押金:"+ refundAmont.toString()+ "(已扣除 违章扣款:"+ refundAmont.toString(); setDetailId(orvd.getId());
refundDesc += ")"; setIsDel(SYS_FALSE);
orderRefundBiz.refundTrigger(baseOrder, orvd, BigDecimal.ZERO, orvd.getReturnPayResidue(), refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), RefundTypeEnum.RESIDUE_DEPOSIT); }});
orderMsgBiz.handelMsgDeposit(orvd, baseOrder, userFeign.userDetailById(baseOrder.getUserId()).getData());
if(null != orderViolation) {
//还车扣除款 剩余的 钱,再减去违章预备金
BigDecimal refundAmont = orvd.getReturnPayResidue().subtract(orderViolation.getPrice());
String refundDesc = "退还押金:"+ refundAmont.toString()+ "(已扣除 违章扣款:"+ refundAmont.toString();
refundDesc += ")";
orderRefundBiz.refundTrigger(baseOrder, orvd, BigDecimal.ZERO, orvd.getReturnPayResidue(), refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), RefundTypeEnum.RESIDUE_DEPOSIT);
orderMsgBiz.handelMsgDeposit(orvd, baseOrder, userFeign.userDetailById(baseOrder.getUserId()).getData());
}
}
//获取交车时间
// List<OrderVehicleCrosstown> crosstowns = crosstownBiz.selectByExample(
// new Example.Builder(BaseOrder.class)
// .where(WeekendSqls.<OrderVehicleCrosstown>custom()
// .andIn(OrderVehicleCrosstown::getType, Lists.newArrayList(CrosstownTypeEnum.ARRIVE.getCode(), CrosstownTypeEnum.FIXED_LOSS.getCode()))
// .andEqualTo(OrderVehicleCrosstown::getOrderId, baseOrder.getId())).build());
} }
// } // }
......
...@@ -70,6 +70,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -70,6 +70,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
throw new BaseException("请登录!"); throw new BaseException("请登录!");
} }
UserDTO user = userDTOObjectRestResponse.getData(); UserDTO user = userDTOObjectRestResponse.getData();
Integer companyId = user.getCompanyId(); Integer companyId = user.getCompanyId();
if (TYEP_VEHICLE.equals(type)) { if (TYEP_VEHICLE.equals(type)) {
OrderStatistics vehicle = vehicleBiz.findAll(companyId); OrderStatistics vehicle = vehicleBiz.findAll(companyId);
...@@ -84,7 +85,9 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -84,7 +85,9 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
return ObjectRestResponse.succ(member); return ObjectRestResponse.succ(member);
} }
if (TYEP_TOTAL.equals(type)){
baseBiz.getToalOrder(companyId);
}
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"参数为空!"); return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"参数为空!");
} }
} }
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics"> <select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics">
SELECT SELECT
branch_company_id as branchCompanyId,
IFNULL(sum(gmv),0) as totalGmv IFNULL(sum(gmv),0) as totalGmv
FROM FROM
daily_travel_order_statistics daily_travel_order_statistics
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics"> <select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics">
SELECT SELECT
branch_company_id as branchCompanyId,
IFNULL(sum(gmv),0) as totalGmv, IFNULL(sum(gmv),0) as totalGmv,
IFNULL(sum(penal_sum) ,0) as totalPenalSum IFNULL(sum(penal_sum) ,0) as totalPenalSum
FROM FROM
......
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
<select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics"> <select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics">
SELECT SELECT
branch_company_id as branchCompanyId,
IFNULL(sum(gmv),0) as totalGmv, IFNULL(sum(gmv),0) as totalGmv,
IFNULL(sum(security_deposit),0) as totalSecurityDeposit, IFNULL(sum(security_deposit),0) as totalSecurityDeposit,
IFNULL(sum(refund_security_deposit) ,0) as totalRefundSecurityDeposit, IFNULL(sum(refund_security_deposit) ,0) as totalRefundSecurityDeposit,
......
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