Commit 43e825be authored by jiaorz's avatar jiaorz

Merge remote-tracking branch 'origin/base-modify' into base-modify

parents 9cf6d346 14bd6fdf
......@@ -39,17 +39,6 @@
</encoder>
</appender>
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>192.168.0.181:5044</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>{"appName":"elk-log-service-gateway-dev"}</customFields>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="SYSTEM_FILE" />
......
......@@ -2,16 +2,21 @@ package com.github.wxiaoqi.security.admin.feign.rest;
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.UserDTO;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
public interface UserRestInterface {
public UserFeign getUserFeign();
public HttpServletRequest getRequest();
default HttpServletRequest getRequest() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
}
default AppUserDTO getAppUser(){
return getUserFeign().userDetailByToken(BaseContextHandler.getToken()).getData();
......@@ -22,4 +27,12 @@ public interface UserRestInterface {
throw new BaseException(ResultCode.DB_OPERATION_FAIL_CODE);
}
}
default UserDTO getAdminUserInfo() {
if(getRequest().getHeader("Authorization") !=null) {
return getUserFeign().userinfoByToken(getRequest().getHeader("Authorization")).getData();
}else {
return null;
}
}
}
......@@ -4,8 +4,11 @@ import java.util.HashMap;
import java.util.Map;
public enum RefundTypeEnum {
ORDER_FUND(1, "订单款"),
DEPOSIT(2, "押金"),
//退款类型 1--订单款(除去押金);2--所有押金 3--部分押金(扣除该扣除的 + 保留违章预备金);4--剩余押金(扣除该扣除的)
ORDER_FUND(1, "订单款(除去押金)"),
DEPOSIT(2, "所有押金"),
PART_DEPOSIT(3, "部分押金(扣除该扣除的 + 保留违章预备金)"),
RESIDUE_DEPOSIT(4, "剩余押金(扣除该扣除的)"),
;
/**
* 编码
......
......@@ -7,6 +7,7 @@ import com.xxfc.platform.order.entity.OrderTourDetail;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
......@@ -29,6 +30,11 @@ public class OrderPageVO extends BaseOrder {
private String qrcodeStr;
/**
* 违章预备金
*/
private BigDecimal illegalReserve;
private OrderVehicleCrosstownDto orderVehicleCrosstownDto;
public void setQrcodeStr(String prefix) {
......
......@@ -26,6 +26,8 @@ import com.xxfc.platform.order.pojo.order.OrderListVo;
import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.MQSenderFeign;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.universal.vo.OrderRefundVo;
......@@ -121,7 +123,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
* @param no
* @return
*/
public ObjectRestResponse getOrderDetail(String no) {
public ObjectRestResponse<OrderPageVO> getOrderDetail(String no) {
OrderPageVO orderPageVo = mapper.getOrderDetail(no);
if(orderPageVo == null) {
......@@ -194,6 +196,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
List<AppUserVo> list = userFeign.getByUserIds(ids).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list);
}
//设置保留金
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.ILLEGAL_RESERVE).getDetail());
orderPageVo.setIllegalReserve(illegalReserve);
return ObjectRestResponse.succ(orderPageVo);
}
......
......@@ -4,9 +4,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.common.util.IntervalUtil;
import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.entity.OrderVehicleCrosstown;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.DedDetailDTO;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.universal.constant.DictionaryKey;
......@@ -17,7 +15,6 @@ import org.apache.commons.jexl2.MapContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xxfc.platform.order.entity.OrderRefund;
import com.xxfc.platform.order.mapper.OrderRefundMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
......@@ -51,11 +48,18 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
@Autowired
OrderVehicalCrosstownBiz crosstownBiz;
public void refundDeposit(OrderMQDTO orderMQDTO){
@Autowired
OrderViolationBiz orderViolationBiz;
/**
* 退还部分押金
* @param orderMQDTO
*/
public void refundPartDeposit(OrderMQDTO orderMQDTO){
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.ILLEGAL_RESERVE).getDetail());
//未退还, 进行保留违章预备金 的退还
//未退还, 进行挂起保留违章预备金 的退还
if(RefundStatusEnum.NONE.getCode().equals(orderMQDTO.getRefundStatus())) {
OrderVehicleCrosstown crosstown = crosstownBiz.selectOne(new OrderVehicleCrosstown(){{
setOrderId(orderMQDTO.getId());
......@@ -70,13 +74,35 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
refundDesc += ", "+ ddd.getDeductions()+ ":"+ ddd.getCost();
}
refundDesc += ")";
refundTrigger(orderMQDTO, orderMQDTO.getOrderRentVehicleDetail(), illegalReserve, originalRefundAmount, refundAmont, refundDesc, RefundStatusEnum.RESIDUE_ILLEGAL.getCode());
refundTrigger(orderMQDTO, orderMQDTO.getOrderRentVehicleDetail(), illegalReserve, originalRefundAmount, refundAmont, refundDesc, RefundStatusEnum.RESIDUE_ILLEGAL.getCode(), RefundTypeEnum.PART_DEPOSIT);
}
// else {
// //还车扣除款 剩余的 钱,再减去违章预备金
// BigDecimal originalRefundAmount = orderMQDTO.getOrderRentVehicleDetail().getReturnPayResidue();
// BigDecimal refundAmont = originalRefundAmount;
// String refundDesc = "退还剩余违章保证金:"+ refundAmont.toString();
//
// //已退还部分, 进行剩余的保留违章预备金 的退还
// //获取违章记录
// List<OrderViolation> orderViolations = orderViolationBiz.selectList(new OrderViolation(){{
// setDetailId(orderMQDTO.getOrderRentVehicleDetail().getId());
// }});
//
// if(orderViolations.size() > 0) {
// refundDesc += "(已扣除 违章金额:"+ illegalReserve.toString();
// for(OrderViolation ov : orderViolations) {
// refundDesc += ", "+ ov.getPrice();
// refundAmont = refundAmont.subtract(ov.getPrice());
// }
// refundDesc += ")";
// refundTrigger(orderMQDTO, orderMQDTO.getOrderRentVehicleDetail(), illegalReserve, originalRefundAmount, refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), RefundTypeEnum.RESIDUE_DEPOSIT);
// }
// }
}
public void refundTrigger(BaseOrder baseOrder, OrderRentVehicleDetail orvd, BigDecimal residueAmount, BigDecimal originalRefundAmount, BigDecimal refundAmont, String refundDesc, Integer refundStatus) {
public void refundTrigger(BaseOrder baseOrder, OrderRentVehicleDetail orvd, BigDecimal residueAmount, BigDecimal originalRefundAmount, BigDecimal refundAmont, String refundDesc, Integer refundStatus, RefundTypeEnum refundTypeEnum) {
//退款子流程: 订单基础,退款描述,退款金额
refundSubProcess(baseOrder, refundDesc, originalRefundAmount, refundAmont, RefundTypeEnum.DEPOSIT.getCode(), refundStatus);
refundSubProcess(baseOrder, refundDesc, originalRefundAmount, refundAmont, refundTypeEnum.getCode(), refundStatus);
//设置剩余没有返还的钱
orderRentVehicleBiz.updateSelectiveById(new OrderRentVehicleDetail(){{
setId(orvd.getId());
......@@ -108,13 +134,18 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
StringBuilder refundDescBuilder = new StringBuilder("取消订单退款:");
if(null == depositAmount) {
depositAmount = BigDecimal.ZERO;
}else {
//触发押金退款
refundSubProcess(baseOrder, refundDescBuilder.toString(), depositAmount, depositAmount, RefundTypeEnum.DEPOSIT.getCode(), RefundStatusEnum.ALL.getCode());
}
//商品价格 - 优惠券减免的价格
BigDecimal refundGoodsAmount = calculateRefund(originalRefundAmount, timeLag, dicParentKey, refundDescBuilder);
//退款金额
BigDecimal refundAmount = depositAmount.add(refundGoodsAmount);
originalRefundAmount = depositAmount.add(originalRefundAmount);
// BigDecimal refundAmount = depositAmount.add(refundGoodsAmount);
// originalRefundAmount = depositAmount.add(originalRefundAmount);
BigDecimal refundAmount = refundGoodsAmount;
originalRefundAmount = originalRefundAmount.subtract(depositAmount);
//退款子流程: 订单基础,退款描述,退款金额
refundSubProcess(baseOrder, refundDescBuilder.toString(), originalRefundAmount, refundAmount, RefundTypeEnum.ORDER_FUND.getCode(), RefundStatusEnum.ALL.getCode());
......
......@@ -18,7 +18,7 @@ import static com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant.*;
@Configuration
public class RabbitOrderConfig extends RabbitCommonConfig {
//优惠券
//退款队列 绑定订单完成
public static final String ORDER_DEPOSIT_REFUND_QUEUE = "order.deposit.refund.queue";
static {
......
......@@ -89,7 +89,7 @@ public class RentDepositJobHandler extends IJobHandler {
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());
orderRefundBiz.refundTrigger(baseOrder, orvd, BigDecimal.ZERO, orvd.getReturnPayResidue(), refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), RefundTypeEnum.RESIDUE_DEPOSIT);
}
}
......
......@@ -2,11 +2,8 @@ package com.xxfc.platform.order.mqhandler;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.dto.OrderGoodsDTO;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import com.rabbitmq.client.Channel;
import com.xxfc.platform.order.biz.OrderRefundBiz;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
......@@ -17,13 +14,11 @@ import org.springframework.messaging.handler.annotation.Headers;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import static com.xxfc.platform.order.config.RabbitOrderConfig.ORDER_DEPOSIT_REFUND_QUEUE;
import static com.xxfc.platform.order.pojo.mq.OrderMQDTO.*;
@Component
@Slf4j
......@@ -47,7 +42,7 @@ public class RefundMQHandler {
String msg = new String(message.getBody(), "UTF-8");
OrderMQDTO orderMQDTO = JSONUtil.toBean(msg, OrderMQDTO.class);
orderRefundBiz.refundDeposit(orderMQDTO);
orderRefundBiz.refundPartDeposit(orderMQDTO);
executorService.shutdown();
Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
......
......@@ -334,7 +334,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes
@ApiOperation(value = "交还车获取订单详情,带驾驶人信息")
@IgnoreClientToken
@ResponseBody
public ObjectRestResponse getOrderDetail(String orderNo) {
public ObjectRestResponse<OrderPageVO> getOrderDetail(String orderNo) {
if(StringUtils.isBlank(orderNo)) {
return ObjectRestResponse.paramIsEmpty();
}
......
package com.xxfc.platform.vehicle.biz;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.google.common.collect.Lists;
import com.xxfc.platform.vehicle.common.RestResponse;
......@@ -16,13 +18,16 @@ import java.util.List;
import static com.github.wxiaoqi.security.auth.common.constatns.CommonConstants.DATA_ALL_FALSE;
@Service
public class AreaBiz extends BaseBiz<AreaMapper, Area> {
public class AreaBiz extends BaseBiz<AreaMapper, Area> implements UserRestInterface {
@Autowired
AdminInfoFeign adminInfoFeign;
UserFeign userFeign;
@Override
public UserFeign getUserFeign() {return userFeign;}
public RestResponse<List<Area>> findAll() {
UserDTO userDTO = adminInfoFeign.getAdminUserInfo();
UserDTO userDTO = getAdminUserInfo();
if(userDTO == null) {
return RestResponse.suc();
}
......
......@@ -5,7 +5,9 @@ import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.google.common.collect.Lists;
import com.xxfc.platform.vehicle.common.RestResponse;
......@@ -48,7 +50,7 @@ import static com.xxfc.platform.vehicle.constant.RedisKey.BRANCH_COMPANY_CACHE_D
@Service
@Slf4j
public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany> {
public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany> implements UserRestInterface {
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd");
public static final DateTimeFormatter YEARMONTH_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM");
......@@ -60,7 +62,10 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
private SysRegionBiz sysRegionBiz;
@Autowired
AdminInfoFeign adminInfoFeign;
UserFeign userFeign;
@Override
public UserFeign getUserFeign() {return userFeign;}
@Value("${branchCompanyPic.baseUploadPath}")
......@@ -82,7 +87,7 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
if(zoneId == null) {
return null;
}
UserDTO userDTO = adminInfoFeign.getAdminUserInfo();
UserDTO userDTO = getAdminUserInfo();
if(userDTO == null) {
return null;
}
......
......@@ -5,7 +5,9 @@ import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
......@@ -59,7 +61,7 @@ import static com.github.wxiaoqi.security.auth.common.constatns.CommonConstants.
@Service
@Slf4j
public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserRestInterface {
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd");
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
......@@ -84,7 +86,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
@Autowired
private VehicleBookHourInfoBiz vehicleBookHourInfoBiz;
@Autowired
AdminInfoFeign adminInfoFeign;
UserFeign userFeign;
@Override
public UserFeign getUserFeign() {return userFeign;}
@Value("${vehicle.baseUploadPath}")
private String baseUploadPath ;
@Value("${vehicle.fristMileage}")
......@@ -1266,7 +1270,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
Integer limit = vehiclePlanDto.getLimit() == null ? 10 : vehiclePlanDto.getLimit();
vehiclePlanDto.setPage(page);
vehiclePlanDto.setLimit(limit);
UserDTO userDTO = adminInfoFeign.getAdminUserInfo();
UserDTO userDTO = getAdminUserInfo();
if(userDTO == null) {
return ObjectRestResponse.createFailedResult(235, "token失效");
}
......
......@@ -2,7 +2,9 @@ package com.xxfc.platform.vehicle.biz;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.Query;
......@@ -47,7 +49,7 @@ import static com.github.wxiaoqi.security.auth.common.constatns.CommonConstants.
@Service
@Slf4j
public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, VehicleBookRecord> {
public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, VehicleBookRecord> implements UserRestInterface {
public static final String TB_NAME_PREFIX = "vehicle_book_record_his_";
public static final String TB_NAME_REAL = "vehicle_book_record";//实际表名
......@@ -64,7 +66,10 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
private BookRecordAccItemMapper bookRecordAccItemMapper;
@Autowired
AdminInfoFeign adminInfoFeign;
UserFeign userFeign;
@Override
public UserFeign getUserFeign() {return userFeign;}
public void save(VehicleBookRecord vehicleBookRecord) {
insertSelectiveRe(vehicleBookRecord);
......@@ -97,7 +102,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
Integer pageSize = vehicleBookRecordQueryVo.getLimit() == null ? 10 : vehicleBookRecordQueryVo.getLimit();
vehicleBookRecordQueryVo.setPage(pageNo);
vehicleBookRecordQueryVo.setLimit(pageSize);
UserDTO userDTO = adminInfoFeign.getAdminUserInfo();
UserDTO userDTO = getAdminUserInfo();
if(userDTO == null) {
return RestResponse.codeAndMessage(235, "token失效");
}
......@@ -143,7 +148,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
Integer pageSize = vehicleBookRecordQueryVo.getLimit() == null ? 10 : vehicleBookRecordQueryVo.getLimit();
vehicleBookRecordQueryVo.setPage(pageNo);
vehicleBookRecordQueryVo.setLimit(pageSize);
UserDTO userDTO = adminInfoFeign.getAdminUserInfo();
UserDTO userDTO = getAdminUserInfo();
if(userDTO == null) {
return RestResponse.codeAndMessage(235, "token失效");
}
......
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