提交 9f520a47 作者: xiaowang

租赁订单

上级 71c0169a
......@@ -3,9 +3,11 @@ package com.mmc.oms.controller.lease;
import com.mmc.oms.common.result.ResultBody;
import com.mmc.oms.controller.BaseController;
import com.mmc.oms.model.dto.lease.LeaseOrderDTO;
import com.mmc.oms.model.dto.transtatus.TranStatusDicDTO;
import com.mmc.oms.model.qo.uav.UavOrderQO;
import com.mmc.oms.model.vo.lease.AddLeaseOrderVO;
import com.mmc.oms.model.vo.lease.LeaseOrderRefundVO;
import com.mmc.oms.model.vo.uav.UavOrderExpressVO;
import com.mmc.oms.service.lease.LeaseOrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -44,7 +46,7 @@ public class LeaseOrderController extends BaseController {
@ApiOperation(value = "买家申请退款(取消订单)")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("close")
@PostMapping("close")
public ResultBody close(@RequestBody LeaseOrderRefundVO leaseOrderRefundVO, HttpServletRequest request) {
return leaseOrderService.close(leaseOrderRefundVO, this.getCurrentAccount(request).getToken());
}
......@@ -55,4 +57,61 @@ public class LeaseOrderController extends BaseController {
public ResultBody<LeaseOrderDTO> list(@RequestBody UavOrderQO uavOrderQO, HttpServletRequest request) {
return leaseOrderService.list(uavOrderQO, this.getCurrentAccount(request));
}
@ApiOperation(value = "个人订单列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = LeaseOrderDTO.class)})
@PostMapping("listByUid")
public ResultBody<LeaseOrderDTO> listByUid(@RequestBody UavOrderQO uavOrderQO, HttpServletRequest request) {
return leaseOrderService.listByUid(uavOrderQO, this.getCurrentAccount(request));
}
@ApiOperation(value = "支付", hidden = true)
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("pay")
public ResultBody pay(@RequestParam Integer id, HttpServletRequest request) {
return leaseOrderService.pay(id, this.getCurrentAccount(request), request);
}
@ApiOperation(value = "发货")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("send")
public ResultBody send(@RequestBody UavOrderExpressVO param) {
return leaseOrderService.send(param);
}
@ApiOperation(value = "用户收货")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("receive")
public ResultBody receive(@RequestParam Integer id, HttpServletRequest request) {
return leaseOrderService.receive(id, this.getCurrentAccount(request));
}
@ApiOperation(value = "归还商品")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("giveBack")
public ResultBody giveBack(@RequestBody LeaseOrderRefundVO leaseOrderRefundVO, HttpServletRequest request) {
return leaseOrderService.giveBack(leaseOrderRefundVO, this.getCurrentAccount(request));
}
@ApiOperation(value = "平台确认归还")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("pfConfirmOrderWare")
public ResultBody pfConfirmOrderWare(HttpServletRequest request, @RequestBody LeaseOrderRefundVO param) {
return leaseOrderService.pfConfirmOrderWare(this.getCurrentAccount(request), param);
}
@ApiOperation(value = "订单状态列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = TranStatusDicDTO.class)})
@GetMapping("statusList")
public ResultBody statusList() {
return leaseOrderService.statusList();
}
@ApiOperation(value = "用户删除订单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("removeLeaseOrder")
public ResultBody removeLeaseOrder(@RequestParam Integer id) {
return leaseOrderService.removeLeaseOrder(id);
}
}
......@@ -3,8 +3,13 @@ package com.mmc.oms.dao.lease;
import com.mmc.oms.entity.lease.LeaseOrderDO;
import com.mmc.oms.entity.lease.LeaseOrderExpressDO;
import com.mmc.oms.entity.lease.LeaseRefundOrderDO;
import com.mmc.oms.entity.transtatus.TranStatusDicDO;
import com.mmc.oms.entity.uav.UavOrderDO;
import com.mmc.oms.model.qo.uav.UavOrderQO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author LW
* @date 2023/9/21 16:48
......@@ -23,4 +28,22 @@ public interface LeaseOrderDao {
void updateUavOrderStatus(Integer id, Integer code);
void addLeaseRefundOrder(LeaseRefundOrderDO leaseRefundOrderDO);
int countList(UavOrderQO uavOrderQO);
List<LeaseOrderDO> list(UavOrderQO uavOrderQO);
List<LeaseRefundOrderDO> getLeaseRefundOrder(List<Integer> ids);
UavOrderDO detailByNo(String orderNo);
void updateLeaseOrderExpress(LeaseOrderExpressDO leaseOrderExpressDO);
List<TranStatusDicDO> statusList();
void closeShowLeaseOrder(Integer id);
List<LeaseOrderExpressDO> listLeaseOrderExpress(List<Integer> expressIds);
void updateLeaseOrderProportion(Integer id, int proportion);
}
......@@ -154,6 +154,10 @@ public class LeaseOrderDO implements Serializable {
private String modeOfDeliveryInfo;
private BigDecimal shareCashPledge;
private BigDecimal salaryCashPledge;
public LeaseOrderDTO buildLeaseOrderDTO() {
return LeaseOrderDTO.builder().id(id).orderNo(orderNo).statusCode(statusCode).userAccountId(userAccountId)
.thirdBackUserAccountId(thirdBackUserAccountId).companyName(companyName).orderTotalAmount(orderTotalAmount)
......
......@@ -2,6 +2,8 @@ package com.mmc.oms.entity.lease;
import com.mmc.oms.entity.mall.UserAddressDO;
import com.mmc.oms.model.dto.uav.UavOrderExpressDTO;
import com.mmc.oms.model.vo.lease.LeaseOrderRefundVO;
import com.mmc.oms.model.vo.uav.UavOrderExpressVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -44,6 +46,10 @@ public class LeaseOrderExpressDO implements Serializable {
* 收货详细地址
*/
private String takeAddress;
private String returnExpNo;
private String returnExpCode;
private Date returnTime;
/**
* 发货时间
*/
......@@ -68,6 +74,26 @@ public class LeaseOrderExpressDO implements Serializable {
this.takeAddress = userAddressDO.getTakeAddress();
}
public LeaseOrderExpressDO(UavOrderExpressVO param) {
this.id = param.getId();
this.leaseOrderId = param.getUavOrderId();
this.sendExpNo = param.getSendExpNo();
this.sendExpCode = param.getSendExpCode();
this.takeName = param.getTakeName();
this.takePhone = param.getTakePhone();
this.takeRegion = param.getTakeRegion();
this.takeAddress = param.getTakeAddress();
this.sendTime = new Date();
}
public LeaseOrderExpressDO(LeaseOrderRefundVO leaseOrderRefundVO) {
this.id = leaseOrderRefundVO.getId();
this.leaseOrderId = leaseOrderRefundVO.getOrderId();
this.returnExpNo = leaseOrderRefundVO.getExpressNum();
this.returnExpCode = leaseOrderRefundVO.getExpressCode();
this.receiveTime = new Date();
}
public UavOrderExpressDTO buildUavOrderExpressDTO() {
return UavOrderExpressDTO.builder().id(this.id).uavOrderId(this.leaseOrderId).sendExpNo(this.sendExpNo).sendExpCode(this.sendExpCode).takeName(this.takeName)
.takePhone(this.takePhone).takeAddress(this.takeAddress).takeRegion(this.takeRegion).receive(this.receive).receiveTime(this.receiveTime)
......
package com.mmc.oms.entity.lease;
import com.mmc.oms.model.dto.lease.LeaseRefundOrderDTO;
import com.mmc.oms.model.vo.lease.LeaseOrderRefundVO;
import lombok.AllArgsConstructor;
import lombok.Data;
......@@ -44,12 +45,21 @@ public class LeaseRefundOrderDO implements Serializable {
private Date updateTime;
private Integer leaseOrderExpressId;
private Integer type;
public LeaseRefundOrderDO(LeaseOrderRefundVO leaseOrderRefundVO) {
this.leaseOrderId = leaseOrderRefundVO.getId();
this.leaseOrderId = leaseOrderRefundVO.getOrderId();
this.status = leaseOrderRefundVO.getStatus();
this.expressNum = leaseOrderRefundVO.getExpressNum();
this.file = leaseOrderRefundVO.getFile();
this.reason = leaseOrderRefundVO.getReason();
}
public LeaseRefundOrderDTO buildLeaseRefundOrderDTO() {
return LeaseRefundOrderDTO.builder().id(this.id).leaseOrderId(this.leaseOrderId)
.status(this.status).file(this.file).reason(this.reason)
.createTime(this.createTime).build();
}
}
......@@ -6,12 +6,13 @@ package com.mmc.oms.enums;
*/
public enum LeaseOrderStatus {
PLACED_AN_ORDER(100, "已下单", "待付款"),
PAID(200, "已付款", "发货"),
PAID(200, "已付款", "发货"),
SHIPPED(300, "卖家已发货", "待买家收货"),
TO_BE_RETURNED(400, "待归还", "待归还"),
WAITING_MERCHANT_CONFIRM(500, "等待商家确认", "等待商家确认"),
COMPLETE_TRANSACTION(600, "交易完成", "交易完成"),
APPLY_REFUND(700, "申请退款", "退款中"),
REMAIN_TO_BE_EVALUATED(600, "待评价", "待评价"),
COMPLETE_TRANSACTION(700, "交易完成", "交易完成"),
APPLY_REFUND(800, "申请退款", "退款中"),
CLOSE(999, "订单关闭", "订单关闭");
public Integer getCode() {
......
package com.mmc.oms.enums;
/**
* @author 作者 lw
* @version 创建时间:2023年09月26日 下午10:57:12
* @explain 类说明
*/
public enum OrderType {
REC(1, "客户收货"), RETURN(2, "归还"), PFREC(3, "平台收货"), RETREAT(4, "申请退款");
OrderType(Integer code, String status) {
this.code = code;
this.status = status;
}
private Integer code;
private String status;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
......@@ -91,5 +91,8 @@ public class LeaseOrderDTO implements Serializable {
private String skuImg;
@ApiModelProperty("运费")
private String modeOfDeliveryInfo;
@ApiModelProperty("发货后申请退款")
private LeaseRefundOrderDTO leaseRefundOrder;
@ApiModelProperty("商户确认收货信息")
private LeaseRefundOrderDTO storeReceiveOrder;
}
package com.mmc.oms.model.dto.lease;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author LW
* @date 2023/9/25 14:19
* 概要:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class LeaseRefundOrderDTO implements Serializable {
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("订单id")
private Integer leaseOrderId;
@ApiModelProperty("归还状态:0已归还 1无需归还")
private Integer status;
@ApiModelProperty("快递单号")
private String expressNum;
@ApiModelProperty("物流编号")
private String expressCode;
@ApiModelProperty("图片文件")
private String file;
@ApiModelProperty("退款原因")
private String reason;
@ApiModelProperty("创建时间")
private Date createTime;
}
......@@ -17,12 +17,13 @@ import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
//@ApiModel(value = "com.mmc.csf.model.dto.TranStatusDicDTO", description = "订单状态DTO")
public class TranStatusDicDTO implements Serializable {
private static final long serialVersionUID = -5956006425413101797L;
@ApiModelProperty(value = "状态码")
private String status;
@ApiModelProperty(value = "当前状态描述")
private String doing;
@ApiModelProperty(value = "等待状态描述")
private String waiting;
private String leaseOrderStatus;
}
......@@ -33,6 +33,10 @@ public class AddLeaseOrderVO implements Serializable {
private BigDecimal walletAmount;
@ApiModelProperty(value = "抵扣云享金余额", hidden = true)
private BigDecimal shareAmount;
@ApiModelProperty(value = "云享金抵扣押金金额", hidden = true)
private BigDecimal shareCashPledgeAmount;
@ApiModelProperty(value = "余额抵扣押金金额", hidden = true)
private BigDecimal salaryCashPledgeAmount;
@ApiModelProperty(value = "其他方式支付额度", hidden = true)
private BigDecimal otherAmount;
@ApiModelProperty(value = "租期", hidden = true)
......
......@@ -16,12 +16,18 @@ import java.io.Serializable;
@AllArgsConstructor
@NoArgsConstructor
public class LeaseOrderRefundVO implements Serializable {
@ApiModelProperty("订单id")
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("归还状态 0已归还 1无需归还")
@ApiModelProperty("订单id")
private Integer orderId;
@ApiModelProperty("归还状态 0已归还 1无需归还(注:发货后申请退款需要传,归还商品的时候不需要)")
private Integer status;
@ApiModelProperty("商家确认商品是否破损 0:未破损 1:破损")
private Integer damage;
@ApiModelProperty("物流单号")
private String expressNum;
@ApiModelProperty(value = "物流编码")
private String expressCode;
@ApiModelProperty("图片文件")
private String file;
@ApiModelProperty("原因")
......
......@@ -9,6 +9,7 @@ import com.mmc.oms.common.util.TDateUtil;
import com.mmc.oms.controller.demand.util.EmojiUtils;
import com.mmc.oms.dao.demand.DemandReleaseOrderDao;
import com.mmc.oms.dao.demand.PublishServiceOrderDao;
import com.mmc.oms.dao.lease.LeaseOrderDao;
import com.mmc.oms.dao.topup.TopUpOrderDao;
import com.mmc.oms.dao.uav.UavOrderDao;
import com.mmc.oms.dao.uav.UavPayWxDao;
......@@ -19,9 +20,7 @@ import com.mmc.oms.entity.demand.ServiceRequirementsDO;
import com.mmc.oms.entity.topup.TopUpOrderDO;
import com.mmc.oms.entity.uav.UavOrderDO;
import com.mmc.oms.entity.uav.UavPayWxDO;
import com.mmc.oms.enums.UavOrderStatus;
import com.mmc.oms.feign.UserAppApi;
import com.mmc.oms.model.dto.uav.PayWalletDTO;
import com.mmc.oms.model.vo.demand.CommonPaymentVO;
import com.mmc.oms.model.vo.demand.DemandReleaseOrderVO;
import com.mmc.oms.model.vo.demand.OrderRequestParamsVO;
......@@ -41,7 +40,6 @@ import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
......@@ -88,6 +86,9 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
@Autowired
private UserAppApi userAppApi;
@Autowired
private LeaseOrderDao leaseOrderDao;
@Override
public ResultBody publish(DemandReleaseOrderVO demandReleaseOrderVO, HttpServletRequest request) {
DemandReleaseOrderDO requirementsInfoDO = new DemandReleaseOrderDO(demandReleaseOrderVO);
......@@ -102,11 +103,13 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
switch (commonPaymentVO.getOrderPort().toString()) {
case "0":
return payUavOrder(commonPaymentVO, token);
case "1":
return payLeaseOrder(commonPaymentVO, token);
case "3":
return orderPost(commonPaymentVO, token);
case "4":
//发布服务需求支付
return publishServicePay(commonPaymentVO, token, userAccountId,request);
return publishServicePay(commonPaymentVO, token, userAccountId, request);
case "5":
return topUpOrder(commonPaymentVO, token, userAccountId);
default:
......@@ -114,9 +117,27 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
}
}
private ResultBody payLeaseOrder(CommonPaymentVO commonPaymentVO, String token) {
OrderRequestParamsVO orderRequestParamsVO = new OrderRequestParamsVO();
orderRequestParamsVO.setOrderNo(commonPaymentVO.getOrderNumber());
orderRequestParamsVO.setAmount(commonPaymentVO.getAmount());
orderRequestParamsVO.setAttach("LEASE_ORDER");
orderRequestParamsVO.setOrderPort(commonPaymentVO.getOrderPort());
UavOrderDO leaseOrder = leaseOrderDao.detailByNo(commonPaymentVO.getOrderNumber());
if (leaseOrder.getOtherAmount().multiply(BigDecimal.valueOf(100)).compareTo(BigDecimal.valueOf(commonPaymentVO.getAmount())) != 0) {
return ResultBody.error("支付金额不正确");
}
orderRequestParamsVO.setDescription("租赁订单" + leaseOrder.getOrderNo());
ResultBody resultBody = releaseOrder(orderRequestParamsVO, token);
if (!"200".equals(resultBody.getCode())) {
return ResultBody.error("调用微信支付方法失败");
}
return resultBody;
}
private ResultBody multiUavOrderPay(OrderRequestParamsVO orderRequestParamsVO, String token) {
UavPayWxDO uavPayWxDO = uavPayWxDao.getUavPayWx(orderRequestParamsVO.getOrderNo());
if (uavPayWxDO.getAmount().multiply(BigDecimal.valueOf(100)).compareTo(BigDecimal.valueOf(orderRequestParamsVO.getAmount())) !=0 ){
if (uavPayWxDO.getAmount().multiply(BigDecimal.valueOf(100)).compareTo(BigDecimal.valueOf(orderRequestParamsVO.getAmount())) != 0) {
return ResultBody.error("发起支付金额不正确");
}
orderRequestParamsVO.setDescription("商城多订单" + orderRequestParamsVO.getOrderNo());
......@@ -129,7 +150,7 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
private ResultBody singleUavOrderPay(OrderRequestParamsVO orderRequestParamsVO, String token) {
UavOrderDO uavOrderDO = uavOrderDao.detailByNo(orderRequestParamsVO.getOrderNo());
if (uavOrderDO.getOtherAmount().multiply(BigDecimal.valueOf(100)).compareTo(BigDecimal.valueOf(orderRequestParamsVO.getAmount())) !=0 ){
if (uavOrderDO.getOtherAmount().multiply(BigDecimal.valueOf(100)).compareTo(BigDecimal.valueOf(orderRequestParamsVO.getAmount())) != 0) {
return ResultBody.error("发起支付金额不正确");
}
orderRequestParamsVO.setDescription("商城订单" + uavOrderDO.getOrderNo());
......@@ -149,7 +170,7 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
// 购物车下单涉及多订单
if (commonPaymentVO.getOrderNumber().startsWith("m")) {
return multiUavOrderPay(orderRequestParamsVO, token);
}else {
} else {
return singleUavOrderPay(orderRequestParamsVO, token);
}
}
......@@ -190,9 +211,9 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
* @param userAccountId
* @return
*/
private ResultBody publishServicePay(CommonPaymentVO commonPaymentVO, String token,Integer userAccountId, HttpServletRequest request) {
private ResultBody publishServicePay(CommonPaymentVO commonPaymentVO, String token, Integer userAccountId, HttpServletRequest request) {
if ("4".equals(commonPaymentVO.getOrderPort().toString())){
if ("4".equals(commonPaymentVO.getOrderPort().toString())) {
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
......@@ -202,14 +223,14 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
String json = stringRedisTemplate.opsForValue().get(orderNumber);
GetOrderNumberDTO getOrderNumberDTO = JSONObject.parseObject(json, GetOrderNumberDTO.class);
GetOrderNumberDO getOrderNumberDO = new GetOrderNumberDO(getOrderNumberDTO);
if (getOrderNumberDTO.getRequirementsInfoId()!=null){
if (getOrderNumberDTO.getRequirementsInfoId() != null) {
int i = releaseOrderDao.selectOrderNumberDO(getOrderNumberDO.getRequirementsInfoId());
if (i!=0){
if (i != 0) {
return ResultBody.error("当前需求已有人支付");
}
ServiceRequirementsDO repertory = repertory(getOrderNumberDO.getRequirementsInfoId(), request);
Integer repertory1 = repertory.getRepertory();
if (repertory1!=null && repertory1<=0 ){
if (repertory1 != null && repertory1 <= 0) {
return ResultBody.error("需求已被人抢走");
}
}
......@@ -220,7 +241,7 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
OrderRequestParamsVO orderRequestParamsVO = getOrderNumberDO.orderRequestParamsVO();
orderRequestParamsVO.setAmount(i);
ResultBody resultBody = releaseOrder(orderRequestParamsVO, token);
stringRedisTemplate.opsForValue().set(getOrderNumberDO.getPaymentOrderNumber()+getOrderNumberDO.getUserAccountId(), JsonUtil.parseObjToJson(getOrderNumberDO));
stringRedisTemplate.opsForValue().set(getOrderNumberDO.getPaymentOrderNumber() + getOrderNumberDO.getUserAccountId(), JsonUtil.parseObjToJson(getOrderNumberDO));
return resultBody;
}
return ResultBody.success();
......
......@@ -6,6 +6,9 @@ import com.mmc.oms.model.dto.user.BaseAccountDTO;
import com.mmc.oms.model.qo.uav.UavOrderQO;
import com.mmc.oms.model.vo.lease.AddLeaseOrderVO;
import com.mmc.oms.model.vo.lease.LeaseOrderRefundVO;
import com.mmc.oms.model.vo.uav.UavOrderExpressVO;
import javax.servlet.http.HttpServletRequest;
/**
* @Author LW
......@@ -21,4 +24,20 @@ public interface LeaseOrderService {
ResultBody close(LeaseOrderRefundVO leaseOrderRefundVO, String token);
ResultBody<LeaseOrderDTO> list(UavOrderQO uavOrderQO, BaseAccountDTO currentAccount);
ResultBody<LeaseOrderDTO> listByUid(UavOrderQO uavOrderQO, BaseAccountDTO currentAccount);
ResultBody pay(Integer id, BaseAccountDTO currentAccount, HttpServletRequest request);
ResultBody send(UavOrderExpressVO param);
ResultBody receive(Integer id, BaseAccountDTO currentAccount);
ResultBody statusList();
ResultBody removeLeaseOrder(Integer id);
ResultBody giveBack(LeaseOrderRefundVO leaseOrderRefundVO, BaseAccountDTO currentAccount);
ResultBody pfConfirmOrderWare(BaseAccountDTO currentAccount, LeaseOrderRefundVO param);
}
package com.mmc.oms.service.lease.impl;
import com.alibaba.fastjson2.JSONObject;
import com.mmc.oms.common.ResultEnum;
import com.mmc.oms.common.constant.UavOrderProportion;
import com.mmc.oms.common.json.JsonUtil;
import com.mmc.oms.common.result.PageResult;
import com.mmc.oms.common.result.ResultBody;
import com.mmc.oms.common.util.CodeUtil;
import com.mmc.oms.common.util.KdnExpressUtil;
......@@ -11,39 +14,49 @@ import com.mmc.oms.entity.lease.LeaseOrderDO;
import com.mmc.oms.entity.lease.LeaseOrderExpressDO;
import com.mmc.oms.entity.lease.LeaseRefundOrderDO;
import com.mmc.oms.entity.mall.UserAddressDO;
import com.mmc.oms.entity.transtatus.TranStatusDicDO;
import com.mmc.oms.enums.LeaseOrderStatus;
import com.mmc.oms.enums.LeaseTermInfo;
import com.mmc.oms.enums.OrderType;
import com.mmc.oms.feign.PaymentAppApi;
import com.mmc.oms.feign.PmsAppApi;
import com.mmc.oms.feign.UserAppApi;
import com.mmc.oms.model.dto.kdn.KdnExpDTO;
import com.mmc.oms.model.dto.lease.LeaseOrderDTO;
import com.mmc.oms.model.dto.lease.LeaseRefundOrderDTO;
import com.mmc.oms.model.dto.order.ExpStationsDTO;
import com.mmc.oms.model.dto.transtatus.TranStatusDicDTO;
import com.mmc.oms.model.dto.uav.PayWalletDTO;
import com.mmc.oms.model.dto.user.BaseAccountDTO;
import com.mmc.oms.model.dto.user.UserAccountSimpleDTO;
import com.mmc.oms.model.qo.UserAccountQO;
import com.mmc.oms.model.qo.uav.UavOrderQO;
import com.mmc.oms.model.vo.ApplyRefundVO;
import com.mmc.oms.model.vo.demand.CommonPaymentVO;
import com.mmc.oms.model.vo.lease.AddLeaseOrderVO;
import com.mmc.oms.model.vo.lease.LeaseGoodsVO;
import com.mmc.oms.model.vo.lease.LeaseOrderRefundVO;
import com.mmc.oms.model.vo.lease.LeasePriceStockVO;
import com.mmc.oms.model.vo.uav.GoodsResourcesVO;
import com.mmc.oms.model.vo.uav.PayUavWalletVO;
import com.mmc.oms.model.vo.uav.UavOrderExpressVO;
import com.mmc.oms.service.demand.DemandReleaseOrderService;
import com.mmc.oms.service.lease.LeaseOrderService;
import com.mmc.oms.service.uav.UavOrderService;
import com.mmc.oms.util.TDateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Author LW
......@@ -65,6 +78,8 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
private UserAppApi userAppApi;
@Resource
private PaymentAppApi paymentAppApi;
@Resource
DemandReleaseOrderService demandReleaseOrderService;
@Override
@Transactional
......@@ -121,8 +136,16 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
BigDecimal orderTotalAmount = param.getUnitPrice().multiply(BigDecimal.valueOf(param.getLeaseTerm()))
.multiply(BigDecimal.valueOf(param.getWareNum())).add(param.getDeposit().multiply(BigDecimal.valueOf(param.getWareNum())));
BigDecimal otherAmount = BigDecimal.ZERO;
// 用来进行操作的总金额
otherAmount = otherAmount.add(orderTotalAmount);
// 判断云享金或余额是否够抵扣
// 总押金金额
BigDecimal totalDeposit = param.getDeposit().multiply(BigDecimal.valueOf(param.getWareNum()));
// 用来操作的总押金
BigDecimal otherCashPledge = BigDecimal.ZERO;
otherCashPledge = otherCashPledge.add(totalDeposit);
// 云享金押金金额,余额押金金额
BigDecimal shareCashPledge = BigDecimal.ZERO;
BigDecimal salaryCashPledge = BigDecimal.ZERO;
// 校验云享金、钱包余额是否足够抵扣
BigDecimal shareAmount = BigDecimal.ZERO;
BigDecimal salaryAmount = BigDecimal.ZERO;
......@@ -301,8 +324,9 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
}
@Override
@Transactional
public ResultBody close(LeaseOrderRefundVO leaseOrderRefundVO, String token) {
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(leaseOrderRefundVO.getId());
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(leaseOrderRefundVO.getOrderId());
if (leaseOrderDO == null) {
return ResultBody.error("订单信息不存在!");
}
......@@ -312,11 +336,22 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
return ResultBody.error("当前状态不可申请退款");
}
// 判断商品是否需要归还
if (leaseOrderRefundVO.getStatus().equals(0) && leaseOrderRefundVO.getExpressNum() == null) {
return ResultBody.error("请填充物流编号");
if (leaseOrderRefundVO.getStatus().equals(0)) {
if (leaseOrderRefundVO.getExpressCode() == null || leaseOrderRefundVO.getExpressNum() == null) {
return ResultBody.error("请完善物流信息");
}
}
// 插入退货地址信息
LeaseOrderExpressDO leaseOrderExpressDO = new LeaseOrderExpressDO();
leaseOrderExpressDO.setLeaseOrderId(leaseOrderRefundVO.getOrderId());
leaseOrderExpressDO.setReturnExpCode(leaseOrderRefundVO.getExpressCode());
leaseOrderExpressDO.setReturnExpNo(leaseOrderRefundVO.getExpressNum());
leaseOrderExpressDO.setReturnTime(new Date());
leaseOrderDao.addAddress(leaseOrderExpressDO);
// 插入退款订单信息
LeaseRefundOrderDO leaseRefundOrderDO = new LeaseRefundOrderDO(leaseOrderRefundVO);
leaseRefundOrderDO.setLeaseOrderExpressId(leaseOrderExpressDO.getId());
leaseRefundOrderDO.setType(OrderType.RETREAT.getCode());
leaseOrderDao.addLeaseRefundOrder(leaseRefundOrderDO);
// 修改订单状态
leaseOrderDao.updateUavOrderStatus(leaseOrderRefundVO.getStatus(), LeaseOrderStatus.APPLY_REFUND.getCode());
......@@ -348,7 +383,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
}
}
// 修改订单状态
this.updateLeaseOrderStatus(leaseOrderRefundVO.getId(), LeaseOrderStatus.CLOSE);
this.updateLeaseOrderStatus(leaseOrderRefundVO.getOrderId(), LeaseOrderStatus.CLOSE);
return ResultBody.success();
}
}
......@@ -360,6 +395,236 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
@Override
public ResultBody<LeaseOrderDTO> list(UavOrderQO uavOrderQO, BaseAccountDTO currentAccount) {
return null;
if (!currentAccount.getRoleInfo().getSuperAdmin().equals(1)) {
uavOrderQO.setThirdBackUserAccountId(currentAccount.getUserAccountId());
}
int count = leaseOrderDao.countList(uavOrderQO);
if (count == 0) {
return ResultBody.success(PageResult.buildPage(uavOrderQO.getPageNo(), uavOrderQO.getPageSize(), count));
}
Integer pageNo = uavOrderQO.getPageNo();
uavOrderQO.buildCurrentPage();
List<LeaseOrderDO> leaseOrderDOS = leaseOrderDao.list(uavOrderQO);
Map<Integer, LeaseOrderDTO> leaseOrderDTOMap = new HashMap<>();
List<Integer> ids = new ArrayList<>();
List<Integer> userIds = new ArrayList<>();
for (LeaseOrderDO leaseOrderDO : leaseOrderDOS) {
LeaseOrderDTO leaseOrderDTO = leaseOrderDO.buildLeaseOrderDTO();
leaseOrderDTOMap.put(leaseOrderDO.getId(), leaseOrderDTO);
if (leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.APPLY_REFUND.getCode()) || leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.WAITING_MERCHANT_CONFIRM.getCode())) {
ids.add(leaseOrderDO.getId());
}
userIds.add(leaseOrderDTO.getUserAccountId());
}
buildRefundOrder(leaseOrderDTOMap, ids);
UserAccountQO userAccountQO = new UserAccountQO();
userAccountQO.setUserIds(userIds);
List<UserAccountSimpleDTO> userDTOS = userAppApi.feignListAppUserAccount(userAccountQO, currentAccount.getToken());
if (CollectionUtils.isNotEmpty(userDTOS)) {
Map<Integer, UserAccountSimpleDTO> userDTOMap = userDTOS.stream().collect(Collectors.toMap(UserAccountSimpleDTO::getId, user -> user, (k1, k2) -> k2));
for (LeaseOrderDTO leaseOrderDTO : leaseOrderDTOMap.values()) {
UserAccountSimpleDTO user = userDTOMap.get(leaseOrderDTO.getUserAccountId());
if (user != null) {
leaseOrderDTO.setPhoneNum(user.getPhoneNum());
leaseOrderDTO.setNickname(user.getNickName());
leaseOrderDTO.setUserName(user.getUserName());
}
}
}
return ResultBody.success(PageResult.buildPage(pageNo, uavOrderQO.getPageSize(), count, new ArrayList<>(leaseOrderDTOMap.values())));
}
@Override
public ResultBody<LeaseOrderDTO> listByUid(UavOrderQO uavOrderQO, BaseAccountDTO currentAccount) {
uavOrderQO.setUserAccountId(currentAccount.getUserAccountId());
uavOrderQO.setShowUserPort(1);
int count = leaseOrderDao.countList(uavOrderQO);
if (count == 0) {
return ResultBody.success(PageResult.buildPage(uavOrderQO.getPageNo(), uavOrderQO.getPageSize(), count));
}
Integer pageNo = uavOrderQO.getPageNo();
uavOrderQO.buildCurrentPage();
List<LeaseOrderDO> leaseOrderDOS = leaseOrderDao.list(uavOrderQO);
Map<Integer, LeaseOrderDTO> leaseOrderDTOMap = new HashMap<>();
List<Integer> ids = new ArrayList<>();
for (LeaseOrderDO leaseOrderDO : leaseOrderDOS) {
LeaseOrderDTO leaseOrderDTO = leaseOrderDO.buildLeaseOrderDTO();
leaseOrderDTOMap.put(leaseOrderDO.getId(), leaseOrderDTO);
if (leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.APPLY_REFUND.getCode())) {
ids.add(leaseOrderDO.getId());
}
}
buildRefundOrder(leaseOrderDTOMap, ids);
return ResultBody.success(PageResult.buildPage(pageNo, uavOrderQO.getPageSize(), count, new ArrayList<>(leaseOrderDTOMap.values())));
}
private void buildRefundOrder(Map<Integer, LeaseOrderDTO> leaseOrderDTOMap, List<Integer> ids) {
if (ids.size() > 0) {
List<LeaseRefundOrderDO> leaseRefundOrderDO = leaseOrderDao.getLeaseRefundOrder(ids);
List<Integer> expressIds = leaseRefundOrderDO.stream().map(LeaseRefundOrderDO::getLeaseOrderExpressId).collect(Collectors.toList());
List<LeaseOrderExpressDO> expressDOS = leaseOrderDao.listLeaseOrderExpress(expressIds);
Map<Integer, LeaseOrderExpressDO> expressDOMap = expressDOS.stream().collect(Collectors.toMap(LeaseOrderExpressDO::getId, Function.identity()));
for (LeaseRefundOrderDO refundOrderDO : leaseRefundOrderDO) {
LeaseRefundOrderDTO refundOrderDTO = refundOrderDO.buildLeaseRefundOrderDTO();
LeaseOrderExpressDO expressDO = expressDOMap.get(refundOrderDO.getLeaseOrderExpressId());
if (expressDO != null) {
refundOrderDTO.setExpressCode(expressDO.getReturnExpCode());
refundOrderDTO.setExpressNum(expressDO.getReturnExpNo());
}
LeaseOrderDTO correspondingLeaseOrderDTO = leaseOrderDTOMap.get(refundOrderDTO.getLeaseOrderId());
if (correspondingLeaseOrderDTO != null) {
if (refundOrderDO.getType().equals(OrderType.RETREAT.getCode())) {
correspondingLeaseOrderDTO.setLeaseRefundOrder(refundOrderDTO);
} else {
correspondingLeaseOrderDTO.setStoreReceiveOrder(refundOrderDTO);
}
}
}
}
}
@Override
public ResultBody pay(Integer id, BaseAccountDTO currentAccount, HttpServletRequest request) {
// 发起微信支付
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(id);
if (!leaseOrderDO.getStatusCode().toString().equals(LeaseOrderStatus.PLACED_AN_ORDER.getCode().toString())) {
return ResultBody.error("操作有误,请重试!");
}
CommonPaymentVO commonPaymentVO = new CommonPaymentVO();
int shouldPay = leaseOrderDO.getOtherAmount().multiply(BigDecimal.valueOf(100)).intValue();
if (shouldPay <= 0) {
return ResultBody.success("已支付完成");
}
commonPaymentVO.setAmount(shouldPay);
commonPaymentVO.setDescription(leaseOrderDO.getOrderName());
commonPaymentVO.setOrderNumber(leaseOrderDO.getOrderNo());
commonPaymentVO.setOrderPort(1);
ResultBody resultBody = demandReleaseOrderService.orderPayment(commonPaymentVO, request, currentAccount.getUserAccountId());
return resultBody;
}
@Override
public ResultBody send(UavOrderExpressVO param) {
// 修改订单状态
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(param.getUavOrderId());
if (!leaseOrderDO.getStatusCode().toString().equals(LeaseOrderStatus.PAID.getCode().toString())) {
return ResultBody.error("状态流程有误,请重试!");
}
this.updateLeaseOrderStatus(param.getUavOrderId(), LeaseOrderStatus.SHIPPED);
// 修改收货信息
LeaseOrderExpressDO leaseOrderExpressDO = new LeaseOrderExpressDO(param);
leaseOrderDao.updateLeaseOrderExpress(leaseOrderExpressDO);
return ResultBody.success();
}
@Override
public ResultBody receive(Integer id, BaseAccountDTO currentAccount) {
// 修改订单状态
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(id);
if (!leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.SHIPPED.getCode())) {
return ResultBody.error("状态流程有误,请重试!");
}
// 修改收货信息
LeaseOrderExpressDO leaseOrderExpress = leaseOrderDao.getLeaseOrderExpress(id);
leaseOrderExpress.setReceive(1);
leaseOrderExpress.setReceiveTime(new Date());
leaseOrderDao.updateLeaseOrderExpress(leaseOrderExpress);
this.updateLeaseOrderStatus(id, LeaseOrderStatus.TO_BE_RETURNED);
return ResultBody.success();
}
@Override
public ResultBody statusList() {
List<TranStatusDicDO> statusDOS = leaseOrderDao.statusList();
List<TranStatusDicDTO> uavOrderStatusDTOS = statusDOS.stream().map(TranStatusDicDO::buildTranStatusDicDTO).collect(Collectors.toList());
return ResultBody.success(uavOrderStatusDTOS);
}
@Override
public ResultBody removeLeaseOrder(Integer id) {
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(id);
log.info("leaseOrderDO:{}", JSONObject.toJSONString(leaseOrderDO));
if (leaseOrderDO.getStatusCode().compareTo(LeaseOrderStatus.COMPLETE_TRANSACTION.getCode()) < 0) {
return ResultBody.error("该订单状态不可删除!");
}
leaseOrderDao.closeShowLeaseOrder(id);
return ResultBody.success();
}
@Override
public ResultBody giveBack(LeaseOrderRefundVO leaseOrderRefundVO, BaseAccountDTO currentAccount) {
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(leaseOrderRefundVO.getOrderId());
log.info("leaseOrderDO:{}", JSONObject.toJSONString(leaseOrderDO));
if (!leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.TO_BE_RETURNED.getCode())) {
return ResultBody.error("状态流程有误,请重试!");
}
LeaseOrderExpressDO leaseOrderExpressDO = new LeaseOrderExpressDO(leaseOrderRefundVO);
leaseOrderDao.updateLeaseOrderExpress(leaseOrderExpressDO);
this.updateLeaseOrderStatus(leaseOrderRefundVO.getOrderId(), LeaseOrderStatus.WAITING_MERCHANT_CONFIRM);
return ResultBody.success();
}
@Override
@Transactional
public ResultBody pfConfirmOrderWare(BaseAccountDTO currentAccount, LeaseOrderRefundVO param) {
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(param.getOrderId());
log.info("leaseOrderDO:{}", JSONObject.toJSONString(leaseOrderDO));
if (!leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.WAITING_MERCHANT_CONFIRM.getCode())) {
return ResultBody.error("状态流程有误,请重试!");
}
if (param.getDamage().equals(0)) {
// 解冻用户钱包金额
if (leaseOrderDO.getShareAmount().compareTo(BigDecimal.ZERO) > 0 || leaseOrderDO.getSalaryAmount().compareTo(BigDecimal.ZERO) > 0) {
PayUavWalletVO userPayUavWalletVO = new PayUavWalletVO();
userPayUavWalletVO.setRemark("租赁订单金额解冻");
userPayUavWalletVO.setCashAmount(leaseOrderDO.getShareAmount());
userPayUavWalletVO.setSalaryAmount(leaseOrderDO.getSalaryAmount());
userPayUavWalletVO.setUserAccountId(leaseOrderDO.getUserAccountId());
userPayUavWalletVO.setOrderStatus(999);
ResultBody resultBody = userAppApi.feignPayUavWallet(userPayUavWalletVO, currentAccount.getToken());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return resultBody;
}
}
BigDecimal thirdAmount = leaseOrderDO.getOrderTotalAmount().multiply(
BigDecimal.valueOf(100).subtract(UavOrderProportion.PROPORTION).divide(BigDecimal.valueOf(100)));
PayUavWalletVO payUavWalletVO = new PayUavWalletVO();
payUavWalletVO.setSalaryAmount(thirdAmount);
payUavWalletVO.setCashAmount(BigDecimal.ZERO);
payUavWalletVO.setRemark("租赁订单收入,订单编号" + leaseOrderDO.getOrderNo());
payUavWalletVO.setOrderStatus(1500);
// 拿到商家管理员的用户id
ResultBody managerRes = userAppApi.getManagerIdByBackUserId(leaseOrderDO.getThirdBackUserAccountId(), null);
if (!managerRes.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return managerRes;
}
payUavWalletVO.setUserAccountId((Integer) managerRes.getResult());
ResultBody resultBody = userAppApi.feignPayUavWallet(payUavWalletVO, currentAccount.getToken());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return resultBody;
}
leaseOrderDao.updateLeaseOrderProportion(leaseOrderDO.getId(), UavOrderProportion.PROPORTION.intValue());
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.REMAIN_TO_BE_EVALUATED);
return ResultBody.success();
} else {
// todo 进行相应赔偿
return ResultBody.success();
}
}
}
......@@ -22,27 +22,92 @@
ware_num,
deposit,
start_date,
end_date)
share_cash_pledge,
salary_cash_pledge,
end_date,
sku)
values (#{orderNo}, #{statusCode}, #{userAccountId}, #{leaseGoodsId}, #{companyName}, #{thirdBackUserAccountId},
#{orderName}, #{skuImg}, #{orderTotalAmount}, #{salaryAmount}, #{shareAmount}, #{otherAmount},
#{userAddressId},
#{payTime}, #{userRemark}, #{unitPrice}, #{wareNum}, #{deposit}, #{startDate}, #{endDate});
#{payTime}, #{userRemark}, #{unitPrice}, #{wareNum}, #{deposit}, #{startDate}, #{shareCashPledge},
#{salaryCashPledge}, #{endDate}, #{sku});
</insert>
<insert id="addAddress">
<insert id="addAddress" keyProperty="id" useGeneratedKeys="true"
parameterType="com.mmc.oms.entity.lease.LeaseOrderExpressDO">
insert into lease_order_express(lease_order_id, send_exp_no, send_exp_code, take_name, take_phone, take_region,
take_address, create_time)
take_address, create_time, return_exp_no, return_exp_code, return_time)
values (#{leaseOrderId}, #{sendExpNo}, #{sendExpCode}, #{takeName}, #{takePhone}, #{takeRegion}, #{takeAddress},
NOW())
NOW(), #{returnExpNo}, #{returnExpCode}, #{returnTime})
</insert>
<insert id="addLeaseRefundOrder">
insert into lease_order_id,status,express_num,file,reason
values (#{leaseOrderId}, #{status}, #{expressNum}, #{file}, #{reason})
<insert id="addLeaseRefundOrder" parameterType="com.mmc.oms.entity.lease.LeaseRefundOrderDO" useGeneratedKeys="true"
keyProperty="id">
insert into lease_refund_order(lease_order_id, status, file, reason, type, lease_order_express_id)
values (#{leaseOrderId}, #{status}, #{file}, #{reason}, #{type}, #{leaseOrderExpressId})
</insert>
<update id="updateUavOrderStatus">
update lease_order
set status_code = #{code}
where id = #{id}
</update>
<update id="updateLeaseOrderExpress">
update lease_order_express
<set>
<if test="sendExpNo != null">
send_exp_no = #{sendExpNo},
</if>
<if test="sendExpCode != null">
send_exp_code = #{sendExpCode},
</if>
<if test="takeName != null">
take_name = #{takeName},
</if>
<if test="takePhone != null">
take_phone = #{takePhone},
</if>
<if test="takeRegion != null">
take_region = #{takeRegion},
</if>
<if test="takeAddress != null">
take_address = #{takeAddress},
</if>
<if test="sendTime != null">
send_time = #{sendTime},
</if>
<if test="takeAddress != null">
take_address = #{takeAddress},
</if>
<if test="receive != null">
is_receive = #{receive},
</if>
<if test="receiveTime != null">
receive_time = #{receiveTime},
</if>
<if test="takeAddress != null">
take_address = #{takeAddress},
</if>
<if test="returnExpNo != null">
return_exp_no = #{returnExpNo},
</if>
<if test="returnExpCode != null">
return_exp_code = #{returnExpCode},
</if>
<if test="returnTime != null">
return_time = #{returnTime},
</if>
</set>
where
id = #{id}
</update>
<update id="closeShowLeaseOrder">
update lease_order
set show_user_port = 0
where id = #{id}
</update>
<update id="updateLeaseOrderProportion">
update lease_order
set proportion = #{proportion}
where id = #{id}
</update>
<sql id="lease_order_column">
id
......@@ -60,8 +125,8 @@ proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,st
<sql id="lease_order_express_column">
id
, lease_order_id, send_exp_no, send_exp_code, take_name, take_phone, take_region, take_address, send_time,
is_receive as receive, receive_time, update_time, create_time
,lease_order_id,send_exp_no,send_exp_code,take_name,take_phone,take_region,take_address,send_time,is_receive
,receive_time,return_exp_no,return_exp_code,return_time,update_time,create_time
</sql>
<select id="getLeaseOrderExpress" resultType="com.mmc.oms.entity.lease.LeaseOrderExpressDO">
select
......@@ -69,4 +134,99 @@ proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,st
from lease_order_express
where lease_order_id = #{id}
</select>
<select id="countList" resultType="java.lang.Integer">
select count(*) from lease_order lo
where 1 = 1
<if test="keyword != null">
and order_no = #{keyword}
</if>
<if test="userAccountId != null">
and user_account_id = #{userAccountId}
</if>
<if test="statusCode != null">
and status_code = #{statusCode}
</if>
<if test="thirdBackUserAccountId != null">
and third_back_user_account_id = #{thirdBackUserAccountId}
</if>
<if test="startTime != null">
and create_time >= #{startTime}
</if>
<if test="endTime != null">
and #{endTime} >= create_time
</if>
<if test="showUserPort != null">
and show_user_port = #{showUserPort}
</if>
</select>
<select id="list" resultType="com.mmc.oms.entity.lease.LeaseOrderDO">
SELECT
<include refid="lease_order_column"/>
FROM
lease_order lo
WHERE
1 = 1
<if test="keyword != null">
and lo.order_no = #{keyword}
</if>
<if test="uid != null">
and lo.user_account_id = #{uid}
</if>
<if test="userAccountId != null">
and lo.user_account_id = #{userAccountId}
</if>
<if test="statusCode != null">
and lo.status_code = #{statusCode}
</if>
<if test="thirdBackUserAccountId != null">
and lo.third_back_user_account_id = #{thirdBackUserAccountId}
</if>
<if test="startTime != null">
and lo.create_time >= #{startTime}
</if>
<if test="endTime != null">
and #{endTime} >= lo.create_time
</if>
<if test="showUserPort != null">
and show_user_port = #{showUserPort}
</if>
order by lo.id desc
limit #{pageNo}, #{pageSize}
</select>
<sql id="lease_refund_order_column">
id
,lease_order_express_id,lease_order_id,status,type,file,reason,create_time
</sql>
<select id="getLeaseRefundOrder" resultType="com.mmc.oms.entity.lease.LeaseRefundOrderDO">
select
<include refid="lease_refund_order_column"/>
from lease_refund_order
<where>
<foreach collection="list" item="item" open="and lease_order_id in(" separator="," close=")">
lease_order_id = #{item}
</foreach>
</where>
</select>
<select id="detailByNo" resultType="com.mmc.oms.entity.uav.UavOrderDO">
select
<include refid="lease_order_column"/>
from lease_order
where order_no = #{orderNo}
</select>
<select id="statusList" resultType="com.mmc.oms.entity.transtatus.TranStatusDicDO">
select t.id, t.`status`, t.doing, t.waiting
from tran_status_dic t
order by t.sort asc
</select>
<select id="listLeaseOrderExpress" resultType="com.mmc.oms.entity.lease.LeaseOrderExpressDO">
select
<include refid="lease_order_express_column"/>
from lease_order_express
<where>
<foreach collection="list" item="item" open="and id in(" separator="," close=")">
id = #{item}
</foreach>
</where>
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论