Commit db5593d3 authored by jiaorz's avatar jiaorz

Merge branch 'feature-delay-add' into dev

# Conflicts:
#	xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
parents 146b16c0 5bcbb36d
......@@ -10,6 +10,7 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.vo.ImiVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.RandomUtil;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.mongodb.client.result.DeleteResult;
......@@ -24,6 +25,7 @@ import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.bson.types.ObjectId;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -124,6 +126,37 @@ public class MsgBiz {
return ObjectRestResponse.succ(goodPageInfo);
}
public ObjectRestResponse getHotMsgListWithoutOne(String messageId, Integer number) {
AppUserDTO appUserDTO = userBiz.getUserInfo();
Integer userId = null;
if (appUserDTO != null) {
userId = appUserDTO.getImUserid();
}
number = number == null ? 10 : number;
Query query = new Query(Criteria.where("body.type").is(4).and("count.praise").gt(getNumber()).and("visible").is(1));
query.with(new Sort(Sort.Direction.DESC, "count.praise"));
List<Msg> msgList = fetchAndAttach(mongoTemplate.find(query, Msg.class, "s_msg"), userId);
if (StringUtils.isNotBlank(messageId)) {
query = new Query(Criteria.where("_id").is(new ObjectId(messageId)));
Msg msg = mongoTemplate.findOne(query, Msg.class, "s_msg");
if (msg != null && msgList.contains(msg)) {
msgList.remove(msg);
}
}
Set<Msg> resultList = new HashSet<>();
if(CollectionUtils.isNotEmpty(msgList)) {
if(number >= msgList.size()) {
return ObjectRestResponse.succ(msgList);
}
Set<Integer> set = new HashSet<>();
RandomUtil.randomSet(msgList.size(), number, set, number);
for(Integer i : set) {
resultList.add(msgList.get(i));
}
}
return ObjectRestResponse.succ(resultList);
}
public ObjectRestResponse get(String id) {
//获取所有朋友圈
AppUserDTO appUserDTO = userBiz.getUserInfo();
......
......@@ -61,5 +61,8 @@ public class MsgController {
return msgBiz.getMsgList(msgQueryDto);
}
@GetMapping(value = "/app/unauth/getHostMsgList")
public ObjectRestResponse getHostMsgList(String messageId, Integer number) {
return msgBiz.getHotMsgListWithoutOne(messageId, number);
}
}
......@@ -8,6 +8,7 @@ public enum OrderViolateEnum {
BEFORE(1, "提前"),
AFTER(2, "延期"),
CHANGE(3, "更换还车公司"),
DELAY_VEHICLE(4, "延长还车不计免赔")
;
/**
* 编码
......
......@@ -52,7 +52,7 @@ public class OrderLog implements Serializable {
* 操作者id,另外 -1为系统
*/
@Column(name = "log_user_id")
@ApiModelProperty(value = "操作者id,另外 -1为系统")
@ApiModelProperty(value = "操作者id,另外 -1为系统 -1+id 为后台人员")
private Integer logUserId;
/**
......@@ -70,11 +70,25 @@ public class OrderLog implements Serializable {
private Long crtTime;
/**
* 日志类型 11--创建订单;12--创建订单;
* 更新时间
*/
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
/**
* 日志类型 101--创建订单;102--;
*/
@Column(name = "type")
@ApiModelProperty(value = "日志类型 11--创建订单;12--创建订单;")
@ApiModelProperty(value = "日志类型 101--创建订单;102--创建订单;201--")
private Integer type;
/**
* 详情
*/
@Column(name = "detail")
@ApiModelProperty(value = "详情")
private Integer detail;
}
......@@ -112,6 +112,12 @@ public class OrderVehicleCrosstown {
@Column(name = "violate_amount_detail")
private String violateDetail;
/**
* 延期还车,不计免赔额计算
*/
@Column(name = "delay_vehicle_detail")
private String delayVehicleDetail;
/**
* 1、交车, 2、还车, 3、定损还车
*/
......
......@@ -33,6 +33,7 @@ public class DedDetailDTO {
//作为:DedDetail :2、车辆损坏 3、其他
//作为:violate_amount_detail 1--提前还车 2--延期还车 3--更换还车公司费用
//作为:delay_vehicle_detail
Integer type;
//小雨都不知道什么东西
......
package com.xxfc.platform.order.pojo.calculate;
import cn.hutool.core.collection.CollUtil;
import com.xxfc.platform.order.pojo.price.DelayAddPriceVO;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import lombok.Data;
import org.assertj.core.util.Lists;
......@@ -96,4 +97,10 @@ public class InProgressVO {
* 违约金 费用详情列表
*/
List<VMCalendarPriceCostDTO> violateAmountList = CollUtil.newArrayList();
/**
* 添加的延期费用
*/
DelayAddPriceVO delayAddPriceVO = new DelayAddPriceVO();
}
......@@ -40,6 +40,8 @@ public class OrderPageVO extends BaseOrder {
private String positionName;
//订单违约金
private String dedDetailDTO;
//订单延长还车,不计免赔额
private String delayVehicleDetail;
/**
* 車輛編碼
*/
......
package com.xxfc.platform.order.pojo.price;
import cn.hutool.core.collection.CollUtil;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class DelayAddPriceVO {
/**
* 延期增加的天数
*/
Integer delayAddDays = 0;
/**
* 不计免赔单价
*/
BigDecimal damageSafePrice = BigDecimal.ZERO;
/**
* 延期不记免赔费用
*/
BigDecimal delayDamageSafeAmount = BigDecimal.ZERO;
/**
* 使用(消耗)详情列表
*/
List<VMCalendarPriceCostDTO> delayAmountList = CollUtil.newArrayList();
}
......@@ -148,8 +148,8 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
}
public PageDataVO<MemberOrderBo> findMemberOrderPage(MemberOrderFindDTO memberOrderFindDTO){
return PageDataVO.pageInfo(memberOrderFindDTO.getPage(),memberOrderFindDTO.getLimit(),()->mapper.findMemberOrders(memberOrderFindDTO));
public PageDataVO<MemberOrderBo> findMemberOrderPage(MemberOrderFindDTO memberOrderFindDTO) {
return PageDataVO.pageInfo(memberOrderFindDTO.getPage(), memberOrderFindDTO.getLimit(), () -> mapper.findMemberOrders(memberOrderFindDTO));
}
public List<MemberOrderBo> findMemberOrders(MemberOrderFindDTO memberOrderFindDTO) {
......@@ -169,11 +169,11 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
if (orderPageVo == null) {
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc());
}
if(orderPageVo.getStatus() <= 3 && orderPageVo.getStatus() != 2 && orderPageVo.getStatus() != -1) {
if (orderPageVo.getStatus() <= 3 && orderPageVo.getStatus() != 2 && orderPageVo.getStatus() != -1) {
return ObjectRestResponse.createFailedResult(ResCode.ORDER_DETAIL_IS_NOT_EXIST.getCode(), ResCode.ORDER_DETAIL_IS_NOT_EXIST.getDesc());
}
AppUserDTO appUserVo = userFeign.userDetailById(orderPageVo.getUserId()).getData();
if(appUserVo != null) {
if (appUserVo != null) {
orderPageVo.setTelephone(appUserVo.getUsername());
orderPageVo.setUsername(appUserVo.getRealname());
}
......@@ -185,7 +185,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
if (!companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getStartCompanyId()) && !companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getEndCompanyId())) {
return ObjectRestResponse.createFailedResult(ResCode.YOU_AUTH_FAIL.getCode(), ResCode.YOU_AUTH_FAIL.getDesc());
}
if(userDTO.getCompanyId() == orderPageVo.getOrderRentVehicleDetail().getEndCompanyId()) {
if (userDTO.getCompanyId() == orderPageVo.getOrderRentVehicleDetail().getEndCompanyId()) {
orderPageVo.setUserCompanyStatus(true);
}
if (orderPageVo.getStatus() == 4) { //未交车
......@@ -215,7 +215,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
}
} else if (orderPageVo.getOrderTourDetail() != null) {
if(StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) {
if (StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) {
List<TourUser> list = tourFeign.getTourUsers(orderPageVo.getOrderTourDetail().getTourUserIds()).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
}
......@@ -225,7 +225,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER + "_" + DictionaryKey.ILLEGAL_RESERVE).getDetail());
orderPageVo.setIllegalReserve(illegalReserve);
orderPageVo.setItems(orderItemBiz.selectList(new OrderItem(){{
orderPageVo.setItems(orderItemBiz.selectList(new OrderItem() {{
setOrderId(orderPageVo.getId());
}}));
return ObjectRestResponse.succ(orderPageVo);
......@@ -234,6 +234,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
/**
* 后台获取订单详情
*
* @param no
* @param userDTO
* @return
......@@ -244,7 +245,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc());
}
AppUserDTO appUserVo = userFeign.userDetailById(orderPageVo.getUserId()).getData();
if(appUserVo != null) {
if (appUserVo != null) {
orderPageVo.setTelephone(appUserVo.getUsername());
orderPageVo.setUsername(appUserVo.getRealname());
orderPageVo.setPositionName(appUserVo.getPositionName());
......@@ -257,7 +258,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
if (!companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getStartCompanyId()) && !companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getEndCompanyId())) {
return ObjectRestResponse.createFailedResult(ResCode.YOU_AUTH_FAIL.getCode(), ResCode.YOU_AUTH_FAIL.getDesc());
}
if(userDTO.getCompanyId() == orderPageVo.getOrderRentVehicleDetail().getEndCompanyId()) {
if (userDTO.getCompanyId() == orderPageVo.getOrderRentVehicleDetail().getEndCompanyId()) {
orderPageVo.setUserCompanyStatus(true);
}
if (orderPageVo.getStatus() == 4) { //未交车
......@@ -287,7 +288,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
}
} else if (orderPageVo.getOrderTourDetail() != null) {
if(StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) {
if (StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) {
List<TourUser> list = tourFeign.getTourUsers(orderPageVo.getOrderTourDetail().getTourUserIds()).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
}
......@@ -297,7 +298,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER + "_" + DictionaryKey.ILLEGAL_RESERVE).getDetail());
orderPageVo.setIllegalReserve(illegalReserve);
orderPageVo.setItems(orderItemBiz.selectList(new OrderItem(){{
orderPageVo.setItems(orderItemBiz.selectList(new OrderItem() {{
setOrderId(orderPageVo.getId());
setType(104);
}}));
......@@ -346,19 +347,21 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
orderRentVehicleBiz.updateSelectiveById(orderPageVO.getOrderRentVehicleDetail());
//实际预定的天数
int actualDay = orderCalculateBiz.getIncludeDays(startTime, endTime);
Integer orderId = orderPageVO.getId();
List<OrderItem> items = orderItemBiz.selectList(new OrderItem() {{
setOrderId(orderId);
}});
//租车车辆单价
BigDecimal amount = new BigDecimal(0);
if (items != null && items.size() > 0) {
for (OrderItem orderItem : items) {
if (orderItem.getType() == ItemTypeEnum.VEHICLE_MODEL.getCode()) {
amount = orderItem.getUnitPrice();
break;
}
}
InProgressVO inProgressVO = orderCalculateBiz.inProgressCalculate(orderPageVO, userUsedDay);
JSONArray jsonArray = new JSONArray();
if (inProgressVO != null) {
//新增延长还车,不计免赔额,金额大于0才显示
if (inProgressVO.getDelayAddPriceVO().getDelayDamageSafeAmount() != null && inProgressVO.getDelayAddPriceVO().getDelayDamageSafeAmount().doubleValue() > 0) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("延长用车");
stringBuilder.append(inProgressVO.getDelayAddPriceVO().getDelayAddDays());
stringBuilder.append("天, 补扣不计免赔费用");
stringBuilder.append(inProgressVO.getDelayAddPriceVO().getDelayDamageSafeAmount());
stringBuilder.append("元");
initDedDetail(dedDetailDTO, OrderViolateEnum.DELAY_VEHICLE.getCode(), inProgressVO.getDelayAddPriceVO().getDelayDamageSafeAmount(), stringBuilder);
jsonArray.add(dedDetailDTO);
orderPageVO.setDelayVehicleDetail(jsonArray.toJSONString());
jsonArray.clear();
}
/**
* 提前还车
......@@ -368,10 +371,8 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
//提前的天数, 当天就算使用一天
int noUsedDay = actualDay - userUsedDay;
//退还未使用的天数,或者金额,扣除违约金,实际未使用天数的金额,最多3000元
InProgressVO inProgressVO = orderCalculateBiz.inProgressCalculate(orderPageVO, userUsedDay);
if (inProgressVO != null) {
//消费超额金
if(inProgressVO.getExtraAmount() != null) {
if (inProgressVO.getExtraAmount() != null) {
dedDetailDTO.setExcessCost(inProgressVO.getExtraAmount());
}
stringBuilder.append("违约金( ");
......@@ -379,7 +380,6 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
stringBuilder.append("天) = ");
stringBuilder.append(inProgressVO.getViolateAmount());
initDedDetail(dedDetailDTO, OrderViolateEnum.BEFORE.getCode(), inProgressVO.getViolateAmount(), stringBuilder);
}
/**
* 延期还车
*/
......@@ -387,10 +387,8 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("违约金( ");
//延期的天数, 延期违约金是延期天数*200%
InProgressVO inProgressVO = orderCalculateBiz.inProgressCalculate(orderPageVO, userUsedDay);
if (inProgressVO != null) {
int extraUsedDay = userUsedDay - actualDay;
if(extraUsedDay > 0) {
if (extraUsedDay > 0) {
stringBuilder.append(extraUsedDay);
stringBuilder.append("(天)");
stringBuilder.append(" x 2)");
......@@ -399,11 +397,9 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
stringBuilder.append("元");
initDedDetail(dedDetailDTO, OrderViolateEnum.AFTER.getCode(), inProgressVO.getViolateAmount(), stringBuilder);
}
}
}
JSONArray jsonArray = new JSONArray();
if ((dedDetailDTO.getCost() != null && dedDetailDTO.getCost().doubleValue() != 0) || (dedDetailDTO.getExcessCost()!=null && dedDetailDTO.getExcessCost().doubleValue() != 0)) {
if ((dedDetailDTO.getCost() != null && dedDetailDTO.getCost().doubleValue() != 0) || (dedDetailDTO.getExcessCost() != null && dedDetailDTO.getExcessCost().doubleValue() != 0)) {
jsonArray.add(dedDetailDTO);
}
DedDetailDTO dedDetailDTO1 = new DedDetailDTO();
......@@ -411,11 +407,11 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
if (orderPageVO.getOrderRentVehicleDetail() != null && orderPageVO.getOrderRentVehicleDetail().getBookRecordId() != null) {
//查询是否有更换还车记录
List<BookRecordUpdateLog> bookRecordUpdateLogs = vehicleFeign.get(orderPageVO.getOrderRentVehicleDetail().getBookRecordId()).getData();
if(bookRecordUpdateLogs != null && bookRecordUpdateLogs.size() > 0) {
if (bookRecordUpdateLogs != null && bookRecordUpdateLogs.size() > 0) {
orderPageVO.setBookRecordUpdateLogs(bookRecordUpdateLogs);
//有更换记录,则需要计算更换费用
//原始公司经纬度,列表中最后一个 bookRecordUpdateLogs.get(bookRecordUpdateLogs.size -1 ) 最后还车公司是列表中的第一条中的getNewRetCompanyId
BookRecordUpdateLog oldCompany = bookRecordUpdateLogs.get(bookRecordUpdateLogs.size() -1);
BookRecordUpdateLog oldCompany = bookRecordUpdateLogs.get(bookRecordUpdateLogs.size() - 1);
BookRecordUpdateLog newCompany = bookRecordUpdateLogs.get(0);
if (oldCompany != null && newCompany != null) {
CompanyDetail oldCompanyDetail = vehicleFeign.getCompanyDetail(oldCompany.getOldRetCompanyId()).getData();
......@@ -453,6 +449,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
/**
* 初始化违约金实体
*
* @param dedDetailDTO
* @param type
* @param cost
......@@ -469,6 +466,9 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
} else if (type == OrderViolateEnum.CHANGE.getCode()) {
dedDetailDTO.setType(OrderViolateEnum.CHANGE.getCode());
detailName = "更换还车公司";
} else if (type == OrderViolateEnum.DELAY_VEHICLE.getCode()) {
dedDetailDTO.setType(1);
detailName = "延长还车";
}
//900元+违约金(¥900x2天=)1800元
dedDetailDTO.setDeductions(stringBuilder.toString());
......@@ -480,6 +480,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
/**
* 获取驾驶人驾照
*
* @param orderPageVo
*/
public void getUserLicense(OrderPageVO orderPageVo) {
......@@ -497,8 +498,8 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
}
//设置违约明细
for (OrderVehicleCrosstownDto a : orderVehicleCrosstown) {
if(a.getType() != CrosstownTypeEnum.DEPARTURE.getCode()) {
if(StringUtils.isNotBlank(a.getViolateDetail())) {
if (a.getType() != CrosstownTypeEnum.DEPARTURE.getCode()) {
if (StringUtils.isNotBlank(a.getViolateDetail())) {
orderPageVo.setDedDetailDTO(a.getViolateDetail());
}
}
......@@ -526,8 +527,8 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
}
//设置违约明细
for (OrderVehicleCrosstownDto a : orderVehicleCrosstown) {
if(a.getType() != CrosstownTypeEnum.DEPARTURE.getCode()) {
if(StringUtils.isNotBlank(a.getViolateDetail())) {
if (a.getType() != CrosstownTypeEnum.DEPARTURE.getCode()) {
if (StringUtils.isNotBlank(a.getViolateDetail())) {
orderPageVo.setDedDetailDTO(a.getViolateDetail());
}
}
......@@ -538,6 +539,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
/**
* 获取驾驶人信息
*
* @param orderPageVo
*/
public void getDriverInfo(OrderPageVO orderPageVo) {
......@@ -569,6 +571,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
/**
* 修改订单还车公司
*
* @param orderRentVehicleDetail
* @return
*/
......@@ -584,11 +587,11 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
StringBuilder stringBuilder = new StringBuilder();
OrderRentVehicleDetail oldValue = orderRentVehicleBiz.selectById(orderRentVehicleDetail.getId());
if(oldValue == null) {
if (oldValue == null) {
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc());
}
stringBuilder.append("修改订单和预定记录还车公司成功, 订单ID:");
stringBuilder.append( oldValue.getOrderId());
stringBuilder.append(oldValue.getOrderId());
stringBuilder.append("; 原还车公司ID: ");
stringBuilder.append(oldValue.getEndCompanyId());
stringBuilder.append("; 更新后还车公司ID: ");
......@@ -608,14 +611,14 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
bookRecordUpdateLog.setCreateTime(new Date());
BeanUtil.copyProperties(orderRentVehicleDetail, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
CompanyDetail companyDetail = vehicleFeign.getCompanyDetail(orderRentVehicleDetail.getEndCompanyId()).getData();
if(companyDetail != null) {
if (companyDetail != null) {
oldValue.setEndCity(companyDetail.getAddrCity());
oldValue.setEndAddr(companyDetail.detailAddr());
}
oldValue.setEndCompanyId(orderRentVehicleDetail.getEndCompanyId());
orderRentVehicleBiz.updateSelectiveByIdRe(oldValue);
ObjectRestResponse objectRestResponse = vehicleFeign.update(bookRecordUpdateLog);
if (objectRestResponse!= null && objectRestResponse.getRel()) {
if (objectRestResponse != null && objectRestResponse.getRel()) {
log.info(stringBuilder.toString());
return ObjectRestResponse.succ();
}
......@@ -625,6 +628,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
/**
* 获取订单详情,包含驾驶人信息,违约金等信息
*
* @param no
* @return
*/
......@@ -649,7 +653,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
orderPageVo.setVehicalNumberPlat(restResponse.getData().getNumberPlate());
}
} else if (orderPageVo.getOrderTourDetail() != null) {
if(StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) {
if (StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) {
List<TourUser> list = tourFeign.getTourUsers(orderPageVo.getOrderTourDetail().getTourUserIds()).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
}
......@@ -658,7 +662,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER + "_" + DictionaryKey.ILLEGAL_RESERVE).getDetail());
orderPageVo.setIllegalReserve(illegalReserve);
orderPageVo.setItems(orderItemBiz.selectList(new OrderItem(){{
orderPageVo.setItems(orderItemBiz.selectList(new OrderItem() {{
setOrderId(orderPageVo.getId());
}}));
return ObjectRestResponse.succ(orderPageVo);
......@@ -758,7 +762,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
//处理后台用户提醒短信的发送
// orderMsgBiz.handelBgUserMsg4Pay(orvd, baseOrder, appUserDTO, OrderMsgBiz.RENT_PAY);
sendOrderMq(orvd, otd, omd, baseOrder, OrderMQDTO.ORDER_PAY);
if(OrderTypeEnum.MEMBER.getCode().equals(baseOrder.getType())) {
if (OrderTypeEnum.MEMBER.getCode().equals(baseOrder.getType())) {
sendOrderMq(orvd, otd, omd, baseOrder, OrderMQDTO.ORDER_FINISH);
}
}
......@@ -816,7 +820,6 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
}
// /**
// * 更新(不成功抛异常)
// * @param baseOrder
......@@ -847,7 +850,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
private void sendQueue(OrderMQDTO orderMQDTO, Integer sign) {
try {
orderMQDTO.setSign(sign);
SendMsgDTO sendMsgDTO = new SendMsgDTO(){{
SendMsgDTO sendMsgDTO = new SendMsgDTO() {{
setExchange(ORDER_TOPIC);
}};
sendMsgDTO.setJson(JSONUtil.toJsonStr(orderMQDTO));
......@@ -899,6 +902,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
/**
* 获取退还优惠卷
*
* @param orderId
*/
public List<Coupon> getReturnCouponByOrderId(Integer orderId) {
......
......@@ -348,6 +348,18 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
}
}
}
//延期扣除费用
if (StringUtils.isNotBlank(orderVehicleCrosstownDto.getDelayVehicleDetail())) {
JSONArray jsonArray = JSONArray.parseArray(orderVehicleCrosstownDto.getDelayVehicleDetail());
if (jsonArray != null && jsonArray.size() > 0) {
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = JSONObject.parseObject(jsonArray.get(i).toString());
if (jsonObject.getString("cost") != null) {
cost += Double.parseDouble(jsonObject.getString("cost"));
}
}
}
}
orderVehicleCrosstownDto.setUserLicenseImg(orderVehicleCrosstownDto.getLicenseImg());
//扣除费用,每次都是重新计算
BigDecimal amount = new BigDecimal(cost.toString()).divide(new BigDecimal("1"), 2, BigDecimal.ROUND_UP);
......
......@@ -62,7 +62,7 @@ import static com.github.wxiaoqi.security.common.constant.CommonConstants.DATE_T
import static com.github.wxiaoqi.security.common.constant.CommonConstants.YMR_SLASH_FORMATTER;
@Controller
@RequestMapping("baseOrder")
//@RequestMapping("baseOrder")
@Api(value = "订单后台相关", tags = {"订单后台相关"})
@Slf4j
public class BackStageOrderController extends CommonBaseController implements UserRestInterface {
......@@ -102,7 +102,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
return userFeign;
}
@RequestMapping(value = "/getOrderList", method = RequestMethod.GET)
@RequestMapping(value = "/baseOrder/getOrderList", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "获取后台订单列表")
@IgnoreClientToken
......@@ -278,7 +278,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
return new ObjectRestResponse<>().data(pageDataVO);
}
@RequestMapping(value = "/getVehicleList", method = RequestMethod.GET)
@RequestMapping(value = "/baseOrder/getVehicleList", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "交还车租车订单列表")
@IgnoreClientToken
......@@ -341,7 +341,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
return new ObjectRestResponse<>().data(pageDataVO);
}
@RequestMapping(value = "/getTourList", method = RequestMethod.GET)
@RequestMapping(value = "/baseOrder/getTourList", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "交还车旅游订单列表")
@IgnoreClientToken
......@@ -356,7 +356,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
return new ObjectRestResponse<>().data(pageDataVO);
}
@GetMapping(value = "/orderDetail")
@GetMapping(value = "/baseOrder/orderDetail")
@ApiOperation(value = "交还车获取订单详情,带驾驶人信息")
@IgnoreClientToken
@ResponseBody
......@@ -377,7 +377,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
@ApiOperation("结合后台人员所属公司查询订单详情")
@RequestMapping(value = "/company/{no}", method = RequestMethod.GET)
@RequestMapping(value = "/baseOrder/company/{no}", method = RequestMethod.GET)
@IgnoreClientToken
@ResponseBody
public ObjectRestResponse<OrderPageVO> companyGet(@PathVariable String no) {
......@@ -395,7 +395,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
}
@ApiOperation("更換車輛")
@RequestMapping(value = "/bg/change-vehicle", method = RequestMethod.POST)
@RequestMapping(value = "/baseOrder/bg/change-vehicle", method = RequestMethod.POST)
@IgnoreClientToken
@ResponseBody
public ObjectRestResponse<OrderPageVO> changeVehicle(@RequestBody ChangeVehicleDTO dto) {
......@@ -438,13 +438,25 @@ public class BackStageOrderController extends CommonBaseController implements Us
return ObjectRestResponse.succ();
}
@PostMapping("/updateEndCompany")
@ApiOperation("修改租车订单延期")
@RequestMapping(value = "/baseOrder/bg/delay-rent-order", method = RequestMethod.POST)
@IgnoreClientToken
@ResponseBody
public ObjectRestResponse<OrderPageVO> delayRentOrder(@RequestBody delayRentOrderDTO dto) {
checkAdminUser();
//根据订单号获取订单
return ObjectRestResponse.succ();
}
@PostMapping("/baseOrder/updateEndCompany")
@ResponseBody
public ObjectRestResponse updateEndCompany(@RequestBody OrderRentVehicleDetail orderRentVehicleDetail) {
return baseOrderBiz.save(orderRentVehicleDetail);
}
@GetMapping(value = "/getAll")
@GetMapping(value = "/baseOrder/getAll")
@ResponseBody
public ObjectRestResponse getAllOrderList(BaseOrderController.QueryOrderList dto) {
return backgroundBaseOrderBiz.getAllOrderList(dto);
......@@ -456,6 +468,12 @@ public class BackStageOrderController extends CommonBaseController implements Us
String numberPlate;
}
@Data
public static class delayRentOrderDTO {
Integer no;
Long delayEndTime;
}
private Query initCompanyQuery(String no) {
BackStageOrderController.QueryOrderDetailDTO qodd = new BackStageOrderController.QueryOrderDetailDTO();
//查询公司id
......
......@@ -204,4 +204,12 @@ public interface VehicleFeign {
@GetMapping("/branchCompany/company_info")
Map<Integer, String> findCompanyMap();
/**
* 订单修改订单时间,同时需要修改预定记录
* * @param bookVehicleVo
* @return
*/
@RequestMapping(value = "/vehicleInfo/bookRecord/order-update", method = RequestMethod.POST)
public RestResponse updateOrderBookRecord(@RequestBody BookVehicleVO bookVehicleVo) throws Exception;
}
......@@ -229,6 +229,24 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
return RestResponse.suc();
}
/**
* 订单修改订单时间,同时需要修改预定记录
* * @param bookVehicleVo
* @return
*/
@RequestMapping(value = "/bookRecord/order-update", method = RequestMethod.POST)
@ApiOperation(value = "订单修改订单时间")
public RestResponse updateOrderBookRecord(@RequestBody BookVehicleVO bookVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName();
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPROVE.getCode());
bookVehicleVo.setNotCheckTimeLegal(Boolean.FALSE);
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc();
}
/**
* 申请预定车辆 需要审核
*
......
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