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; ...@@ -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.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.vo.ImiVo; import com.github.wxiaoqi.security.admin.vo.ImiVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; 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.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.mongodb.client.result.DeleteResult; import com.mongodb.client.result.DeleteResult;
...@@ -24,6 +25,7 @@ import com.xxfc.platform.universal.constant.DictionaryKey; ...@@ -24,6 +25,7 @@ import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary; import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -124,6 +126,37 @@ public class MsgBiz { ...@@ -124,6 +126,37 @@ public class MsgBiz {
return ObjectRestResponse.succ(goodPageInfo); 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) { public ObjectRestResponse get(String id) {
//获取所有朋友圈 //获取所有朋友圈
AppUserDTO appUserDTO = userBiz.getUserInfo(); AppUserDTO appUserDTO = userBiz.getUserInfo();
......
...@@ -61,5 +61,8 @@ public class MsgController { ...@@ -61,5 +61,8 @@ public class MsgController {
return msgBiz.getMsgList(msgQueryDto); 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 { ...@@ -8,6 +8,7 @@ public enum OrderViolateEnum {
BEFORE(1, "提前"), BEFORE(1, "提前"),
AFTER(2, "延期"), AFTER(2, "延期"),
CHANGE(3, "更换还车公司"), CHANGE(3, "更换还车公司"),
DELAY_VEHICLE(4, "延长还车不计免赔")
; ;
/** /**
* 编码 * 编码
......
...@@ -52,7 +52,7 @@ public class OrderLog implements Serializable { ...@@ -52,7 +52,7 @@ public class OrderLog implements Serializable {
* 操作者id,另外 -1为系统 * 操作者id,另外 -1为系统
*/ */
@Column(name = "log_user_id") @Column(name = "log_user_id")
@ApiModelProperty(value = "操作者id,另外 -1为系统") @ApiModelProperty(value = "操作者id,另外 -1为系统 -1+id 为后台人员")
private Integer logUserId; private Integer logUserId;
/** /**
...@@ -68,13 +68,27 @@ public class OrderLog implements Serializable { ...@@ -68,13 +68,27 @@ public class OrderLog implements Serializable {
@Column(name = "crt_time") @Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true ) @ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime; private Long crtTime;
/**
* 更新时间
*/
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
/** /**
* 日志类型 11--创建订单;12--创建订单 * 日志类型 101--创建订单;102--
*/ */
@Column(name = "type") @Column(name = "type")
@ApiModelProperty(value = "日志类型 11--创建订单;12--创建订单;") @ApiModelProperty(value = "日志类型 101--创建订单;102--创建订单;201--")
private Integer type; private Integer type;
/**
* 详情
*/
@Column(name = "detail")
@ApiModelProperty(value = "详情")
private Integer detail;
} }
...@@ -112,6 +112,12 @@ public class OrderVehicleCrosstown { ...@@ -112,6 +112,12 @@ public class OrderVehicleCrosstown {
@Column(name = "violate_amount_detail") @Column(name = "violate_amount_detail")
private String violateDetail; private String violateDetail;
/**
* 延期还车,不计免赔额计算
*/
@Column(name = "delay_vehicle_detail")
private String delayVehicleDetail;
/** /**
* 1、交车, 2、还车, 3、定损还车 * 1、交车, 2、还车, 3、定损还车
*/ */
......
...@@ -33,6 +33,7 @@ public class DedDetailDTO { ...@@ -33,6 +33,7 @@ public class DedDetailDTO {
//作为:DedDetail :2、车辆损坏 3、其他 //作为:DedDetail :2、车辆损坏 3、其他
//作为:violate_amount_detail 1--提前还车 2--延期还车 3--更换还车公司费用 //作为:violate_amount_detail 1--提前还车 2--延期还车 3--更换还车公司费用
//作为:delay_vehicle_detail
Integer type; Integer type;
//小雨都不知道什么东西 //小雨都不知道什么东西
......
package com.xxfc.platform.order.pojo.calculate; package com.xxfc.platform.order.pojo.calculate;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.xxfc.platform.order.pojo.price.DelayAddPriceVO;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO; import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import lombok.Data; import lombok.Data;
import org.assertj.core.util.Lists; import org.assertj.core.util.Lists;
...@@ -96,4 +97,10 @@ public class InProgressVO { ...@@ -96,4 +97,10 @@ public class InProgressVO {
* 违约金 费用详情列表 * 违约金 费用详情列表
*/ */
List<VMCalendarPriceCostDTO> violateAmountList = CollUtil.newArrayList(); List<VMCalendarPriceCostDTO> violateAmountList = CollUtil.newArrayList();
/**
* 添加的延期费用
*/
DelayAddPriceVO delayAddPriceVO = new DelayAddPriceVO();
} }
...@@ -40,6 +40,8 @@ public class OrderPageVO extends BaseOrder { ...@@ -40,6 +40,8 @@ public class OrderPageVO extends BaseOrder {
private String positionName; private String positionName;
//订单违约金 //订单违约金
private String dedDetailDTO; 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();
}
...@@ -348,6 +348,18 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -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()); orderVehicleCrosstownDto.setUserLicenseImg(orderVehicleCrosstownDto.getLicenseImg());
//扣除费用,每次都是重新计算 //扣除费用,每次都是重新计算
BigDecimal amount = new BigDecimal(cost.toString()).divide(new BigDecimal("1"), 2, BigDecimal.ROUND_UP); 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 ...@@ -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; import static com.github.wxiaoqi.security.common.constant.CommonConstants.YMR_SLASH_FORMATTER;
@Controller @Controller
@RequestMapping("baseOrder") //@RequestMapping("baseOrder")
@Api(value = "订单后台相关", tags = {"订单后台相关"}) @Api(value = "订单后台相关", tags = {"订单后台相关"})
@Slf4j @Slf4j
public class BackStageOrderController extends CommonBaseController implements UserRestInterface { public class BackStageOrderController extends CommonBaseController implements UserRestInterface {
...@@ -102,7 +102,7 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -102,7 +102,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
return userFeign; return userFeign;
} }
@RequestMapping(value = "/getOrderList", method = RequestMethod.GET) @RequestMapping(value = "/baseOrder/getOrderList", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@ApiOperation(value = "获取后台订单列表") @ApiOperation(value = "获取后台订单列表")
@IgnoreClientToken @IgnoreClientToken
...@@ -278,7 +278,7 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -278,7 +278,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
return new ObjectRestResponse<>().data(pageDataVO); return new ObjectRestResponse<>().data(pageDataVO);
} }
@RequestMapping(value = "/getVehicleList", method = RequestMethod.GET) @RequestMapping(value = "/baseOrder/getVehicleList", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@ApiOperation(value = "交还车租车订单列表") @ApiOperation(value = "交还车租车订单列表")
@IgnoreClientToken @IgnoreClientToken
...@@ -341,7 +341,7 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -341,7 +341,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
return new ObjectRestResponse<>().data(pageDataVO); return new ObjectRestResponse<>().data(pageDataVO);
} }
@RequestMapping(value = "/getTourList", method = RequestMethod.GET) @RequestMapping(value = "/baseOrder/getTourList", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@ApiOperation(value = "交还车旅游订单列表") @ApiOperation(value = "交还车旅游订单列表")
@IgnoreClientToken @IgnoreClientToken
...@@ -356,7 +356,7 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -356,7 +356,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
return new ObjectRestResponse<>().data(pageDataVO); return new ObjectRestResponse<>().data(pageDataVO);
} }
@GetMapping(value = "/orderDetail") @GetMapping(value = "/baseOrder/orderDetail")
@ApiOperation(value = "交还车获取订单详情,带驾驶人信息") @ApiOperation(value = "交还车获取订单详情,带驾驶人信息")
@IgnoreClientToken @IgnoreClientToken
@ResponseBody @ResponseBody
...@@ -377,7 +377,7 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -377,7 +377,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
@ApiOperation("结合后台人员所属公司查询订单详情") @ApiOperation("结合后台人员所属公司查询订单详情")
@RequestMapping(value = "/company/{no}", method = RequestMethod.GET) @RequestMapping(value = "/baseOrder/company/{no}", method = RequestMethod.GET)
@IgnoreClientToken @IgnoreClientToken
@ResponseBody @ResponseBody
public ObjectRestResponse<OrderPageVO> companyGet(@PathVariable String no) { public ObjectRestResponse<OrderPageVO> companyGet(@PathVariable String no) {
...@@ -395,7 +395,7 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -395,7 +395,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
} }
@ApiOperation("更換車輛") @ApiOperation("更換車輛")
@RequestMapping(value = "/bg/change-vehicle", method = RequestMethod.POST) @RequestMapping(value = "/baseOrder/bg/change-vehicle", method = RequestMethod.POST)
@IgnoreClientToken @IgnoreClientToken
@ResponseBody @ResponseBody
public ObjectRestResponse<OrderPageVO> changeVehicle(@RequestBody ChangeVehicleDTO dto) { public ObjectRestResponse<OrderPageVO> changeVehicle(@RequestBody ChangeVehicleDTO dto) {
...@@ -438,13 +438,25 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -438,13 +438,25 @@ public class BackStageOrderController extends CommonBaseController implements Us
return ObjectRestResponse.succ(); 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 @ResponseBody
public ObjectRestResponse updateEndCompany(@RequestBody OrderRentVehicleDetail orderRentVehicleDetail) { public ObjectRestResponse updateEndCompany(@RequestBody OrderRentVehicleDetail orderRentVehicleDetail) {
return baseOrderBiz.save(orderRentVehicleDetail); return baseOrderBiz.save(orderRentVehicleDetail);
} }
@GetMapping(value = "/getAll") @GetMapping(value = "/baseOrder/getAll")
@ResponseBody @ResponseBody
public ObjectRestResponse getAllOrderList(BaseOrderController.QueryOrderList dto) { public ObjectRestResponse getAllOrderList(BaseOrderController.QueryOrderList dto) {
return backgroundBaseOrderBiz.getAllOrderList(dto); return backgroundBaseOrderBiz.getAllOrderList(dto);
...@@ -456,6 +468,12 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -456,6 +468,12 @@ public class BackStageOrderController extends CommonBaseController implements Us
String numberPlate; String numberPlate;
} }
@Data
public static class delayRentOrderDTO {
Integer no;
Long delayEndTime;
}
private Query initCompanyQuery(String no) { private Query initCompanyQuery(String no) {
BackStageOrderController.QueryOrderDetailDTO qodd = new BackStageOrderController.QueryOrderDetailDTO(); BackStageOrderController.QueryOrderDetailDTO qodd = new BackStageOrderController.QueryOrderDetailDTO();
//查询公司id //查询公司id
......
...@@ -204,4 +204,12 @@ public interface VehicleFeign { ...@@ -204,4 +204,12 @@ public interface VehicleFeign {
@GetMapping("/branchCompany/company_info") @GetMapping("/branchCompany/company_info")
Map<Integer, String> findCompanyMap(); 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 ...@@ -229,6 +229,24 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
return RestResponse.suc(); 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