提交 fac87e81 作者: xiaowang

Merge branch 'develop'

......@@ -14,4 +14,4 @@ patches:
images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/oms
newTag: b7b6292e8a4fd03a5ea0c9ad7cb8d3079ed995ad
newTag: 1a194fd7d926274c664924e84d1ca181726cd9b9
......@@ -261,7 +261,7 @@ public class CodeUtil {
Date now = new Date();
String dateString = sdf.format(now);
int count = counter.incrementAndGet();
return "ORD" + dateString + String.format("%04d", count);
return "L" + dateString + String.format("%04d", count);
}
}
......@@ -8,6 +8,7 @@ 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.model.vo.uav.UavOrderRemarkVO;
import com.mmc.oms.service.lease.LeaseOrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -81,14 +82,14 @@ public class LeaseOrderController extends BaseController {
@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));
@PostMapping("receive")
public ResultBody receive(@RequestBody LeaseOrderRefundVO leaseOrderRefundVO, HttpServletRequest request) {
return leaseOrderService.receive(leaseOrderRefundVO, this.getCurrentAccount(request));
}
@ApiOperation(value = "归还商品")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("giveBack")
@PostMapping("giveBack")
public ResultBody giveBack(@RequestBody LeaseOrderRefundVO leaseOrderRefundVO, HttpServletRequest request) {
return leaseOrderService.giveBack(leaseOrderRefundVO, this.getCurrentAccount(request));
}
......@@ -114,4 +115,19 @@ public class LeaseOrderController extends BaseController {
return leaseOrderService.removeLeaseOrder(id);
}
@ApiOperation(value = "小程序确认结算")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("confirmSettlement")
public ResultBody confirmSettlement(@RequestParam Integer id, HttpServletRequest request) {
return leaseOrderService.confirmSettlement(id, this.getCurrentAccount(request));
}
@ApiOperation(value = "评价订单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("remarkOrder")
public ResultBody remarkOrder(@RequestBody UavOrderRemarkVO uavOrderRemarkVO) {
return leaseOrderService.remarkOrder(uavOrderRemarkVO);
}
}
......@@ -5,6 +5,7 @@ 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.entity.uav.UavOrderRemarkDO;
import com.mmc.oms.model.qo.uav.UavOrderQO;
import org.apache.ibatis.annotations.Mapper;
......@@ -25,7 +26,7 @@ public interface LeaseOrderDao {
LeaseOrderExpressDO getLeaseOrderExpress(Integer id);
void updateUavOrderStatus(Integer id, Integer code);
void updateLeaseOrderStatus(Integer id, Integer code);
void addLeaseRefundOrder(LeaseRefundOrderDO leaseRefundOrderDO);
......@@ -46,4 +47,10 @@ public interface LeaseOrderDao {
List<LeaseOrderExpressDO> listLeaseOrderExpress(List<Integer> expressIds);
void updateLeaseOrderProportion(Integer id, int proportion);
LeaseRefundOrderDO selectGiveBackByOrderId(Integer id, Integer type);
void updateLeaseOrderRemarkStatus(Integer id);
void addRemarkOrder(UavOrderRemarkDO uavOrderRemarkDO);
}
......@@ -158,12 +158,16 @@ public class LeaseOrderDO implements Serializable {
private BigDecimal salaryCashPledge;
private BigDecimal otherPledge;
public LeaseOrderDTO buildLeaseOrderDTO() {
return LeaseOrderDTO.builder().id(id).orderNo(orderNo).statusCode(statusCode).userAccountId(userAccountId)
return LeaseOrderDTO.builder().id(id).orderNo(orderNo).orderName(orderName).statusCode(statusCode).userAccountId(userAccountId)
.thirdBackUserAccountId(thirdBackUserAccountId).companyName(companyName).orderTotalAmount(orderTotalAmount)
.salaryAmount(salaryAmount).shareAmount(shareAmount).otherAmount(otherAmount).payType(payType).payTime(payTime)
.startDate(startDate).endDate(endDate).userRemark(userRemark).sellerRemark(sellerRemark).createTime(createTime)
.confirmReceiptTime(confirmReceiptTime).remarkStatus(remarkStatus).modeOfDeliveryInfo(modeOfDeliveryInfo).sku(sku).skuImg(skuImg).build();
.confirmReceiptTime(confirmReceiptTime).remarkStatus(remarkStatus).modeOfDeliveryInfo(modeOfDeliveryInfo).depositBackTime(confirmReceiptTime)
.unitPrice(unitPrice).deposit(deposit).wareNum(wareNum).sku(sku).skuImg(skuImg).leaseGoodsId(leaseGoodsId).otherPledge(otherPledge)
.salaryCashPledge(salaryCashPledge).shareCashPledge(shareCashPledge).modeOfDeliveryInfo(modeOfDeliveryInfo).build();
}
}
......@@ -7,6 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
......@@ -49,17 +50,20 @@ public class LeaseRefundOrderDO implements Serializable {
private Integer type;
private BigDecimal modifiedDeposit;
public LeaseRefundOrderDO(LeaseOrderRefundVO leaseOrderRefundVO) {
this.leaseOrderId = leaseOrderRefundVO.getOrderId();
this.status = leaseOrderRefundVO.getStatus();
this.file = leaseOrderRefundVO.getFile();
this.reason = leaseOrderRefundVO.getReason();
this.modifiedDeposit = leaseOrderRefundVO.getDeductionAmount();
}
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();
.createTime(this.createTime).modifiedDeposit(modifiedDeposit).build();
}
}
......@@ -13,6 +13,8 @@ public enum LeaseOrderStatus {
REMAIN_TO_BE_EVALUATED(600, "待评价", "待评价"),
COMPLETE_TRANSACTION(700, "交易完成", "交易完成"),
APPLY_REFUND(800, "申请退款", "退款中"),
MODIFIED_DEPOSIT_TO_BE_CONFIRMED(900, "待确认修改后押金", "待确认修改后押金"),
MODIFIED_DEPOSIT_REFUND(950, "待确认修改后押金", "待确认修改后押金"),
CLOSE(999, "订单关闭", "订单关闭");
public Integer getCode() {
......
......@@ -29,6 +29,8 @@ public class LeaseOrderDTO implements Serializable {
private Integer id;
@ApiModelProperty("订单编号")
private String orderNo;
@ApiModelProperty("订单名称")
private String orderName;
@ApiModelProperty("订单状态")
private Integer statusCode;
@ApiModelProperty("买家id")
......@@ -51,8 +53,14 @@ public class LeaseOrderDTO implements Serializable {
private BigDecimal salaryAmount;
@ApiModelProperty("抵扣云享金余额")
private BigDecimal shareAmount;
@ApiModelProperty("云享金押金抵扣")
private BigDecimal shareCashPledge;
@ApiModelProperty("余额押金抵扣")
private BigDecimal salaryCashPledge;
@ApiModelProperty("其他方式支付额度")
private BigDecimal otherAmount;
@ApiModelProperty("其他方式支付额度")
private BigDecimal otherPledge;
@ApiModelProperty("wechatpay微信,alipay支付宝,offline线下")
private String payType;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
......@@ -83,8 +91,20 @@ public class LeaseOrderDTO implements Serializable {
private Date updateTime;
@ApiModelProperty("用户收货地址信息")
private UavOrderExpressDTO uavOrderExpressDTO;
@ApiModelProperty("快递信息")
@ApiModelProperty("发货快递信息")
private KdnExpDTO kdnExpDTO;
@ApiModelProperty("归还快递信息")
private KdnExpDTO returnKdnExpDTO;
@ApiModelProperty("确认收货的信息")
private LeaseRefundOrderDTO confirmReceipt;
@ApiModelProperty("购买数量")
private Integer wareNum;
@ApiModelProperty(value = "单价", hidden = true)
private BigDecimal unitPrice;
@ApiModelProperty(value = "押金", hidden = true)
private BigDecimal deposit;
@ApiModelProperty("租赁商品id")
private Integer leaseGoodsId;
@ApiModelProperty("订单规格列表")
private String sku;
@ApiModelProperty("sku图片")
......@@ -93,6 +113,10 @@ public class LeaseOrderDTO implements Serializable {
private String modeOfDeliveryInfo;
@ApiModelProperty("发货后申请退款")
private LeaseRefundOrderDTO leaseRefundOrder;
@ApiModelProperty("商户收货后上传的破损信息")
private LeaseRefundOrderDTO storeDamageOrder;
@ApiModelProperty("商户确认收货信息")
private LeaseRefundOrderDTO storeReceiveOrder;
@ApiModelProperty("押金退回时间")
private Date depositBackTime;
}
......@@ -7,6 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
......@@ -33,6 +34,8 @@ public class LeaseRefundOrderDTO implements Serializable {
private String file;
@ApiModelProperty("退款原因")
private String reason;
@ApiModelProperty("修改后的押金")
private BigDecimal modifiedDeposit;
@ApiModelProperty("创建时间")
private Date createTime;
......
......@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author LW
......@@ -32,4 +33,6 @@ public class LeaseOrderRefundVO implements Serializable {
private String file;
@ApiModelProperty("原因")
private String reason;
@ApiModelProperty("扣除的押金")
private BigDecimal deductionAmount;
}
......@@ -7,6 +7,7 @@ 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.model.vo.uav.UavOrderRemarkVO;
import javax.servlet.http.HttpServletRequest;
......@@ -31,7 +32,7 @@ public interface LeaseOrderService {
ResultBody send(UavOrderExpressVO param);
ResultBody receive(Integer id, BaseAccountDTO currentAccount);
ResultBody receive(LeaseOrderRefundVO leaseOrderRefundVO, BaseAccountDTO currentAccount);
ResultBody statusList();
......@@ -40,4 +41,8 @@ public interface LeaseOrderService {
ResultBody giveBack(LeaseOrderRefundVO leaseOrderRefundVO, BaseAccountDTO currentAccount);
ResultBody pfConfirmOrderWare(BaseAccountDTO currentAccount, LeaseOrderRefundVO param);
ResultBody confirmSettlement(Integer id, BaseAccountDTO currentAccount);
ResultBody remarkOrder(UavOrderRemarkVO uavOrderRemarkVO);
}
......@@ -15,6 +15,7 @@ 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.entity.uav.UavOrderRemarkDO;
import com.mmc.oms.enums.LeaseOrderStatus;
import com.mmc.oms.enums.LeaseTermInfo;
import com.mmc.oms.enums.OrderType;
......@@ -40,6 +41,7 @@ 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.model.vo.uav.UavOrderRemarkVO;
import com.mmc.oms.service.demand.DemandReleaseOrderService;
import com.mmc.oms.service.lease.LeaseOrderService;
import com.mmc.oms.service.uav.UavOrderService;
......@@ -149,6 +151,8 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
// 校验云享金、钱包余额是否足够抵扣
BigDecimal shareAmount = BigDecimal.ZERO;
BigDecimal salaryAmount = BigDecimal.ZERO;
// 其他抵扣押金
BigDecimal otherPledge = BigDecimal.ZERO;
Integer statusCode = null;
// 获取用户钱包信息
if (param.getDeductSalaryAmount().equals(1) || param.getDeductShareAmount().equals(1)) {
......@@ -166,6 +170,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
// 够抵扣押金
shareCashPledge = otherCashPledge;
}
}
otherCashPledge = otherCashPledge.subtract(shareCashPledge);
if (otherCashPledge.compareTo(BigDecimal.ZERO) == 0) {
otherAmount = otherAmount.subtract(shareCashPledge);
......@@ -179,11 +184,11 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
otherCashPledge = otherCashPledge.subtract(salaryCashPledge);
if (otherCashPledge.compareTo(BigDecimal.ZERO) == 0) {
otherAmount = otherAmount.subtract(salaryCashPledge.add(shareCashPledge));
} else {
otherPledge = otherCashPledge;
}
}
}
}
// 抵扣完后当押金为0的时候 继续抵扣其余金额
if (otherCashPledge.compareTo(BigDecimal.ZERO) == 0) {
if (param.getDeductShareAmount().equals(1)) {
......@@ -236,6 +241,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
leaseOrderDO.setCompanyName(param.getCompanyName());
leaseOrderDO.setThirdBackUserAccountId(param.getThirdBackUserAccountId());
leaseOrderDO.setOrderName(leaseGoodsVO.getTradeName());
leaseOrderDO.setOtherPledge(otherPledge);
leaseOrderDO.setModeOfDeliveryInfo(leaseGoodsVO.getModeOfDeliveryInfo());
if (priceStock.getSkuImage() != null) {
leaseOrderDO.setSkuImg(priceStock.getSkuImage());
......@@ -319,27 +325,56 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
return ResultBody.error("订单信息不存在!");
}
LeaseOrderDTO leaseOrderDTO = leaseOrderDO.buildLeaseOrderDTO();
if (leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.PLACED_AN_ORDER.getCode())) {
Integer statusCode = leaseOrderDO.getStatusCode();
if (statusCode.equals(LeaseOrderStatus.PLACED_AN_ORDER.getCode())) {
leaseOrderDTO.setNeedPayAmount(leaseOrderDO.getOtherAmount());
}
// 收货信息、付款信息、规格信息、快递信息、签署信息
LeaseOrderExpressDO leaseOrderExpressDO = leaseOrderDao.getLeaseOrderExpress(id);
if (leaseOrderExpressDO != null) {
leaseOrderDTO.setUavOrderExpressDTO(leaseOrderExpressDO.buildUavOrderExpressDTO());
// 快递信息
KdnExpDTO kdnExpDTO = this.getOrderExpInfo(leaseOrderExpressDO);
leaseOrderDTO.setKdnExpDTO(kdnExpDTO);
}
// 判断订单状态是否是已归还状态
if (statusCode.compareTo(LeaseOrderStatus.WAITING_MERCHANT_CONFIRM.getCode()) >= 0) {
// 快递信息
KdnExpDTO returnKdnExpDTO = this.getReturnOrderExpInfo(leaseOrderDO, leaseOrderExpressDO);
leaseOrderDTO.setReturnKdnExpDTO(returnKdnExpDTO);
}
// 设置确认收货信息
setConfirmReceiptInfo(id, OrderType.REC.getCode(), leaseOrderDTO);
// 设置退款信息
setConfirmReceiptInfo(id, OrderType.RETREAT.getCode(), leaseOrderDTO);
// 设置破损信息
setConfirmReceiptInfo(id, OrderType.PFREC.getCode(), leaseOrderDTO);
// 设置个人信息
UserAccountSimpleDTO userAccountSimpleDTO = userAppApi.feignGetUserSimpleInfo(leaseOrderDO.getUserAccountId(), currentAccount.getToken());
if (userAccountSimpleDTO != null) {
leaseOrderDTO.setUserName(userAccountSimpleDTO.getUserName());
leaseOrderDTO.setNickname(userAccountSimpleDTO.getNickName());
leaseOrderDTO.setPhoneNum(userAccountSimpleDTO.getPhoneNum());
leaseOrderDTO.setUserName(userAccountSimpleDTO.getUserName());
}
return ResultBody.success(leaseOrderDTO);
}
private void setConfirmReceiptInfo(Integer id, Integer orderType, LeaseOrderDTO leaseOrderDTO) {
LeaseRefundOrderDO leaseRefundOrderDO = leaseOrderDao.selectGiveBackByOrderId(id, orderType);
switch (orderType) {
case 1:
leaseOrderDTO.setConfirmReceipt(leaseRefundOrderDO == null ? null : leaseRefundOrderDO.buildLeaseRefundOrderDTO());
break;
case 4:
leaseOrderDTO.setLeaseRefundOrder(leaseRefundOrderDO == null ? null : leaseRefundOrderDO.buildLeaseRefundOrderDTO());
break;
case 3:
leaseOrderDTO.setStoreDamageOrder(leaseRefundOrderDO == null ? null : leaseRefundOrderDO.buildLeaseRefundOrderDTO());
break;
default:
break;
}
}
private KdnExpDTO getOrderExpInfo(LeaseOrderExpressDO exp) throws Exception {
String json = "";
if ("SF".equals(exp.getSendExpCode())) {
......@@ -357,6 +392,31 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
return kdn;
}
private KdnExpDTO getReturnOrderExpInfo(LeaseOrderDO leaseOrderDO, LeaseOrderExpressDO exp) throws Exception {
Integer leaseGoodsId = leaseOrderDO.getLeaseGoodsId();
ResultBody<LeaseGoodsVO> leaseGoodsVOResultBody = pmsAppApi.leaseGoodsDetails(leaseGoodsId);
if (!leaseGoodsVOResultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return null;
}
LeaseGoodsVO leaseGoodsVO = leaseGoodsVOResultBody.getResult();
Integer returnAddress = leaseGoodsVO.getReturnAddress();
UserAddressDO userAddressDO = userAddressDao.selectById(returnAddress);
String json = "";
if ("SF".equals(exp.getReturnExpCode())) {
json = KdnExpressUtil.SF(userAddressDO.getTakePhone(), exp.getReturnExpNo());
} else if ("JD".equals(exp.getReturnExpCode())) {
json = KdnExpressUtil.JD("", exp.getReturnExpNo());
} else {
json = KdnExpressUtil.others(exp.getReturnExpCode(), exp.getReturnExpNo());
}
KdnExpDTO kdn = JsonUtil.parseJsonToObj(json, KdnExpDTO.class);
kdn.setLogisticCode(exp.getReturnExpNo());
if (!org.springframework.util.CollectionUtils.isEmpty(kdn.getTraces())) {
Collections.sort(kdn.getTraces(), Comparator.comparing(ExpStationsDTO::getAcceptTime).reversed());// 升序
}
return kdn;
}
@Override
@Transactional
public ResultBody close(LeaseOrderRefundVO leaseOrderRefundVO, String token) {
......@@ -374,37 +434,35 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
if (leaseOrderRefundVO.getExpressCode() == null || leaseOrderRefundVO.getExpressNum() == null) {
return ResultBody.error("请完善物流信息");
}
}
// 插入退货地址信息
LeaseOrderExpressDO leaseOrderExpressDO = new LeaseOrderExpressDO();
leaseOrderExpressDO.setId(leaseOrderRefundVO.getId());
leaseOrderExpressDO.setLeaseOrderId(leaseOrderRefundVO.getOrderId());
leaseOrderExpressDO.setReturnExpCode(leaseOrderRefundVO.getExpressCode());
leaseOrderExpressDO.setReturnExpNo(leaseOrderRefundVO.getExpressNum());
leaseOrderExpressDO.setReturnTime(new Date());
leaseOrderDao.addAddress(leaseOrderExpressDO);
leaseOrderDao.updateLeaseOrderExpress(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());
leaseOrderDao.updateLeaseOrderStatus(leaseOrderRefundVO.getOrderId(), LeaseOrderStatus.APPLY_REFUND.getCode());
}
return ResultBody.success();
} else {
// 退云享金、佣金
if (leaseOrderDO.getShareAmount().compareTo(BigDecimal.ZERO) > 0 || leaseOrderDO.getSalaryAmount().compareTo(BigDecimal.ZERO) > 0) {
PayUavWalletVO payUavWalletVO = new PayUavWalletVO();
payUavWalletVO.setCashAmount(leaseOrderDO.getShareAmount());
payUavWalletVO.setSalaryAmount(leaseOrderDO.getSalaryAmount());
payUavWalletVO.setOrderStatus(1400);
payUavWalletVO.setUserAccountId(leaseOrderDO.getUserAccountId());
ResultBody resultBody = userAppApi.feignPayUavWallet(payUavWalletVO, token);
if (leaseOrderDO.getShareAmount().compareTo(BigDecimal.ZERO) > 0 || leaseOrderDO.getSalaryAmount().compareTo(BigDecimal.ZERO) > 0 ||
leaseOrderDO.getSalaryCashPledge().compareTo(BigDecimal.ZERO) > 0 || leaseOrderDO.getShareCashPledge().compareTo(BigDecimal.ZERO) > 0) {
PayUavWalletVO userPayUavWalletVO = amountUnfreezing(leaseOrderDO, leaseOrderDO.getShareAmount(), leaseOrderDO.getSalaryAmount());
userPayUavWalletVO.setOrderStatus(1400);
ResultBody resultBody = userAppApi.feignPayUavWallet(userPayUavWalletVO, token);
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return resultBody;
}
}
// 微信退款
if ("wechatpay".equals(leaseOrderDO.getPayType())) {
if (leaseOrderDO.getOtherPledge() != null && leaseOrderDO.getOtherPledge().compareTo(BigDecimal.ZERO) > 0) {
ApplyRefundVO applyRefundVO = new ApplyRefundVO();
applyRefundVO.setOutTradeNo(leaseOrderDO.getOrderNo());
applyRefundVO.setReason("关闭租赁订单");
......@@ -424,7 +482,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
@Transactional(rollbackFor = Exception.class)
public void updateLeaseOrderStatus(Integer id, LeaseOrderStatus leaseOrderStatus) {
leaseOrderDao.updateUavOrderStatus(id, leaseOrderStatus.getCode());
leaseOrderDao.updateLeaseOrderStatus(id, leaseOrderStatus.getCode());
}
@Override
......@@ -440,7 +498,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
uavOrderQO.buildCurrentPage();
List<LeaseOrderDO> leaseOrderDOS = leaseOrderDao.list(uavOrderQO);
Map<Integer, LeaseOrderDTO> leaseOrderDTOMap = new HashMap<>();
Map<Integer, LeaseOrderDTO> leaseOrderDTOMap = new LinkedHashMap<>();
List<Integer> ids = new ArrayList<>();
List<Integer> userIds = new ArrayList<>();
......@@ -487,7 +545,7 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
Integer pageNo = uavOrderQO.getPageNo();
uavOrderQO.buildCurrentPage();
List<LeaseOrderDO> leaseOrderDOS = leaseOrderDao.list(uavOrderQO);
Map<Integer, LeaseOrderDTO> leaseOrderDTOMap = new HashMap<>();
Map<Integer, LeaseOrderDTO> leaseOrderDTOMap = new LinkedHashMap<>();
List<Integer> ids = new ArrayList<>();
for (LeaseOrderDO leaseOrderDO : leaseOrderDOS) {
LeaseOrderDTO leaseOrderDTO = leaseOrderDO.buildLeaseOrderDTO();
......@@ -554,28 +612,35 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
// 修改订单状态
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(param.getUavOrderId());
if (!leaseOrderDO.getStatusCode().toString().equals(LeaseOrderStatus.PAID.getCode().toString())) {
return ResultBody.error("状态流程有误,请重试!");
return ResultBody.error("状态流程有误!");
}
this.updateLeaseOrderStatus(param.getUavOrderId(), LeaseOrderStatus.SHIPPED);
// 修改收货信息
LeaseOrderExpressDO leaseOrderExpressDO = new LeaseOrderExpressDO(param);
leaseOrderExpressDO.setSendTime(new Date());
leaseOrderDao.updateLeaseOrderExpress(leaseOrderExpressDO);
return ResultBody.success();
}
@Override
public ResultBody receive(Integer id, BaseAccountDTO currentAccount) {
// 修改订单状态
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(id);
public ResultBody receive(LeaseOrderRefundVO leaseOrderRefundVO, BaseAccountDTO currentAccount) {
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(leaseOrderRefundVO.getOrderId());
if (!leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.SHIPPED.getCode())) {
return ResultBody.error("状态流程有误,请重试!");
return ResultBody.error("状态流程有误!");
}
if (StringUtils.isNotEmpty(leaseOrderRefundVO.getFile()) || StringUtils.isNotEmpty(leaseOrderRefundVO.getReason())) {
// 插入确认信息
LeaseRefundOrderDO leaseRefundOrderDO = new LeaseRefundOrderDO(leaseOrderRefundVO);
leaseRefundOrderDO.setStatus(1);
leaseRefundOrderDO.setType(OrderType.REC.getCode());
leaseOrderDao.addLeaseRefundOrder(leaseRefundOrderDO);
}
// 修改收货信息
LeaseOrderExpressDO leaseOrderExpress = leaseOrderDao.getLeaseOrderExpress(id);
LeaseOrderExpressDO leaseOrderExpress = leaseOrderDao.getLeaseOrderExpress(leaseOrderRefundVO.getOrderId());
leaseOrderExpress.setReceive(1);
leaseOrderExpress.setReceiveTime(new Date());
leaseOrderDao.updateLeaseOrderExpress(leaseOrderExpress);
this.updateLeaseOrderStatus(id, LeaseOrderStatus.TO_BE_RETURNED);
this.updateLeaseOrderStatus(leaseOrderRefundVO.getOrderId(), LeaseOrderStatus.TO_BE_RETURNED);
return ResultBody.success();
}
......@@ -599,11 +664,12 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
}
@Override
@Transactional
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("状态流程有误,请重试!");
return ResultBody.error("状态流程有误!");
}
LeaseOrderExpressDO leaseOrderExpressDO = new LeaseOrderExpressDO(leaseOrderRefundVO);
leaseOrderDao.updateLeaseOrderExpress(leaseOrderExpressDO);
......@@ -615,50 +681,298 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
@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("状态流程有误,请重试!");
log.info("平台确认归还操作,leaseOrderDO:{}", JSONObject.toJSONString(leaseOrderDO));
if (leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.REMAIN_TO_BE_EVALUATED.getCode())) {
return ResultBody.error("请勿重复操作");
}
boolean isWaitingMerchantConfirm = leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.WAITING_MERCHANT_CONFIRM.getCode());
boolean isApplyRefund = leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.APPLY_REFUND.getCode());
if (isWaitingMerchantConfirm || isApplyRefund) {
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);
BigDecimal shareAmount = leaseOrderDO.getShareAmount();
BigDecimal salaryAmount = leaseOrderDO.getSalaryAmount();
ApplyRefundVO applyRefundVO = null;
if (isApplyRefund && leaseOrderDO.getOtherAmount().compareTo(BigDecimal.ZERO) > 0) {
applyRefundVO = wxRefund(leaseOrderDO);
applyRefundVO.setRefund((leaseOrderDO.getOtherPledge().add(leaseOrderDO.getOtherAmount())).multiply(BigDecimal.valueOf(100)).longValue());
} else if (leaseOrderDO.getOtherPledge() != null && leaseOrderDO.getOtherPledge().compareTo(BigDecimal.ZERO) > 0) {
applyRefundVO = wxRefund(leaseOrderDO);
}
if (applyRefundVO != null) {
ResultBody refundOtherPledge = paymentAppApi.applyRefund(applyRefundVO, currentAccount.getToken());
if (!refundOtherPledge.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return refundOtherPledge;
}
}
if (shareAmount.compareTo(BigDecimal.ZERO) > 0 || salaryAmount.compareTo(BigDecimal.ZERO) > 0) {
// 金额解冻
PayUavWalletVO userPayUavWalletVO = amountUnfreezing(leaseOrderDO, shareAmount, salaryAmount);
userPayUavWalletVO.setOrderStatus(isWaitingMerchantConfirm ? 999 : 1400);
ResultBody resultBody = userAppApi.feignPayUavWallet(userPayUavWalletVO, currentAccount.getToken());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return resultBody;
}
// 如果是交易完成则退回押金
if (isWaitingMerchantConfirm) {
BigDecimal shareCashPledge = leaseOrderDO.getShareCashPledge();
BigDecimal salaryCashPledge = leaseOrderDO.getSalaryCashPledge();
if ((shareCashPledge.compareTo(BigDecimal.ZERO) > 0 || salaryCashPledge.compareTo(BigDecimal.ZERO) > 0)) {
moneyRefund(shareCashPledge, salaryCashPledge, currentAccount, leaseOrderDO);
}
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);
}
}
// 修改退款操作
if (isApplyRefund) {
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.CLOSE);
}
if (isWaitingMerchantConfirm) {
return businessIncome(currentAccount, param.getOrderId(), leaseOrderDO, 0);
}
} else {
// 有破损等待平台
if (StringUtils.isEmpty(param.getFile()) || StringUtils.isEmpty(param.getReason())) {
return ResultBody.error("请填充破损照片和原因!");
}
LeaseRefundOrderDO leaseRefundOrderDO = new LeaseRefundOrderDO(param);
leaseRefundOrderDO.setStatus(1);
leaseRefundOrderDO.setType(OrderType.PFREC.getCode());
leaseOrderDao.addLeaseRefundOrder(leaseRefundOrderDO);
// 修改订单状态
if (isWaitingMerchantConfirm) {
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.MODIFIED_DEPOSIT_TO_BE_CONFIRMED);
} else {
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.MODIFIED_DEPOSIT_REFUND);
}
}
} else {
return ResultBody.error("状态流程有误");
}
return ResultBody.success();
}
private ResultBody businessIncome(BaseAccountDTO currentAccount, Integer orderId, LeaseOrderDO leaseOrderDO, Integer flag) {
// 拿到商家管理员的用户id
ResultBody managerRes = userAppApi.getManagerIdByBackUserId(leaseOrderDO.getThirdBackUserAccountId(), null);
if (!managerRes.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return managerRes;
}
// 获取损坏的金额
LeaseRefundOrderDO leaseRefundOrderDO = leaseOrderDao.selectGiveBackByOrderId(leaseOrderDO.getId(), OrderType.PFREC.getCode());
if (leaseRefundOrderDO != null && leaseRefundOrderDO.getModifiedDeposit() != null) {
handleModifiedDeposit(currentAccount, leaseOrderDO, managerRes, leaseRefundOrderDO);
}
// 为0时标识订单收益,否则就是修改状态
if (flag == 0) {
handleOrderIncome(currentAccount, leaseOrderDO, managerRes);
this.updateLeaseOrderStatus(orderId, LeaseOrderStatus.REMAIN_TO_BE_EVALUATED);
} else {
// 修改退款操状态
this.updateLeaseOrderStatus(leaseOrderDO.getId(), LeaseOrderStatus.CLOSE);
}
return ResultBody.success();
}
private ResultBody handleModifiedDeposit(BaseAccountDTO currentAccount, LeaseOrderDO leaseOrderDO, ResultBody managerRes, LeaseRefundOrderDO leaseRefundOrderDO) {
PayUavWalletVO payUavWalletVO = new PayUavWalletVO();
payUavWalletVO.setCashAmount(BigDecimal.ZERO);
payUavWalletVO.setSalaryAmount(leaseRefundOrderDO.getModifiedDeposit());
payUavWalletVO.setRemark("租赁订单获赔,订单编号" + leaseOrderDO.getOrderNo());
payUavWalletVO.setOrderStatus(1800);
payUavWalletVO.setUserAccountId((Integer) managerRes.getResult());
ResultBody resultBody = userAppApi.feignPayUavWallet(payUavWalletVO, currentAccount.getToken());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return resultBody;
ResultBody resultIncomeBody = userAppApi.feignPayUavWallet(payUavWalletVO, currentAccount.getToken());
if (!resultIncomeBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return resultIncomeBody;
}
return ResultBody.success();
}
private ResultBody handleOrderIncome(BaseAccountDTO currentAccount, LeaseOrderDO leaseOrderDO, ResultBody managerRes) {
PayUavWalletVO payUavWalletVO = new PayUavWalletVO();
BigDecimal orderTotalAmount = leaseOrderDO.getOrderTotalAmount().subtract(leaseOrderDO.getDeposit());
BigDecimal thirdAmount = orderTotalAmount.multiply(
BigDecimal.valueOf(100).subtract(UavOrderProportion.PROPORTION).divide(BigDecimal.valueOf(100)));
payUavWalletVO.setCashAmount(BigDecimal.ZERO);
payUavWalletVO.setSalaryAmount(thirdAmount);
payUavWalletVO.setRemark("租赁订单收入,订单编号" + leaseOrderDO.getOrderNo());
payUavWalletVO.setOrderStatus(1500);
payUavWalletVO.setUserAccountId((Integer) managerRes.getResult());
ResultBody resultIncomeBody = userAppApi.feignPayUavWallet(payUavWalletVO, currentAccount.getToken());
if (!resultIncomeBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return resultIncomeBody;
}
leaseOrderDao.updateLeaseOrderProportion(leaseOrderDO.getId(), UavOrderProportion.PROPORTION.intValue());
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.REMAIN_TO_BE_EVALUATED);
return ResultBody.success();
}
private ResultBody moneyRefund(BigDecimal shareCashPledge, BigDecimal salaryCashPledge, BaseAccountDTO currentAccount, LeaseOrderDO leaseOrderDO) {
PayUavWalletVO refundUavWalletVO = new PayUavWalletVO();
refundUavWalletVO.setRemark("租赁押金退回");
refundUavWalletVO.setCashAmount(shareCashPledge);
refundUavWalletVO.setSalaryAmount(salaryCashPledge);
refundUavWalletVO.setUserAccountId(leaseOrderDO.getUserAccountId());
refundUavWalletVO.setOrderStatus(1600);
ResultBody giveBackPledge = userAppApi.feignPayUavWallet(refundUavWalletVO, currentAccount.getToken());
if (!giveBackPledge.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return giveBackPledge;
}
return ResultBody.success();
}
private ApplyRefundVO wxRefund(LeaseOrderDO leaseOrderDO) {
ApplyRefundVO applyRefundVO = new ApplyRefundVO();
applyRefundVO.setOutTradeNo(leaseOrderDO.getOrderNo());
applyRefundVO.setReason("租赁押金退款");
applyRefundVO.setRefund(leaseOrderDO.getOtherPledge().multiply(BigDecimal.valueOf(100)).longValue());
return applyRefundVO;
}
private PayUavWalletVO amountUnfreezing(LeaseOrderDO leaseOrderDO, BigDecimal shareAmount, BigDecimal salaryAmount) {
PayUavWalletVO userPayUavWalletVO = new PayUavWalletVO();
userPayUavWalletVO.setRemark("租赁订单金额解冻");
userPayUavWalletVO.setCashAmount(shareAmount.add(leaseOrderDO.getShareCashPledge()));
userPayUavWalletVO.setSalaryAmount(salaryAmount.add(leaseOrderDO.getSalaryCashPledge()));
userPayUavWalletVO.setUserAccountId(leaseOrderDO.getUserAccountId());
return userPayUavWalletVO;
}
@Override
public ResultBody confirmSettlement(Integer id, BaseAccountDTO currentAccount) {
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(id);
log.info("平台确认归还操作,leaseOrderDO:{}", JSONObject.toJSONString(leaseOrderDO));
if (leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.REMAIN_TO_BE_EVALUATED.getCode())) {
return ResultBody.error("请勿重复操作");
}
boolean isModifiedConfirmed = leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.MODIFIED_DEPOSIT_TO_BE_CONFIRMED.getCode());
boolean isRefund = leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.MODIFIED_DEPOSIT_REFUND.getCode());
if (isModifiedConfirmed || isRefund) {
// 根据订单id查询出修改后的押金
LeaseRefundOrderDO leaseRefundOrderDO = leaseOrderDao.selectGiveBackByOrderId(id, OrderType.PFREC.getCode());
BigDecimal operatingDeposit = BigDecimal.ZERO;
operatingDeposit = operatingDeposit.add(leaseRefundOrderDO.getModifiedDeposit());
// 判断用户之前的押金,然后进行操作:
// 1、分别获取用户之前抵扣掉的押金
BigDecimal shareCashPledge = leaseOrderDO.getShareCashPledge();
BigDecimal salaryCashPledge = leaseOrderDO.getSalaryCashPledge();
BigDecimal otherPledge = leaseOrderDO.getOtherPledge();
// 一一判断押金是否够扣减的
if (shareCashPledge.compareTo(BigDecimal.ZERO) > 0 || salaryCashPledge.compareTo(BigDecimal.ZERO) > 0) {
if (shareCashPledge.compareTo(operatingDeposit) >= 0) {
// 云享金押金足够抵扣
shareCashPledge = shareCashPledge.subtract(operatingDeposit);
} else {
operatingDeposit = operatingDeposit.subtract(shareCashPledge);
if (salaryCashPledge.compareTo(operatingDeposit) >= 0) {
// 云享金押金+余额押金足够抵扣
salaryCashPledge = salaryCashPledge.subtract(operatingDeposit);
// 进行后续操作
} else {
operatingDeposit = operatingDeposit.subtract(salaryCashPledge);
if (otherPledge.compareTo(operatingDeposit) >= 0) {
// 云享金押金+余额押金+其他押金足够抵扣
otherPledge = otherPledge.subtract(operatingDeposit);
// 进行后续操作
}
}
}
// 进行金额解冻
PayUavWalletVO userPayUavWalletVO = amountUnfreezing(leaseOrderDO, leaseOrderDO.getShareAmount(), leaseOrderDO.getSalaryAmount());
userPayUavWalletVO.setOrderStatus(999);
ResultBody resultBody = userAppApi.feignPayUavWallet(userPayUavWalletVO, currentAccount.getToken());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return resultBody;
}
// 进行多余的押金退回
if ((shareCashPledge.compareTo(BigDecimal.ZERO) > 0 || salaryCashPledge.compareTo(BigDecimal.ZERO) > 0)) {
moneyRefund(shareCashPledge, salaryCashPledge, currentAccount, leaseOrderDO);
}
} else {
// todo 进行相应赔偿
if (otherPledge.compareTo(operatingDeposit) >= 0) {
// 云享金押金+余额押金+其他押金足够抵扣
otherPledge = otherPledge.subtract(operatingDeposit);
}
}
// 退回微信支付的押金部分
if (otherPledge != null && otherPledge.compareTo(BigDecimal.ZERO) > 0) {
ApplyRefundVO applyRefundVO = wxRefund(leaseOrderDO);
applyRefundVO.setRefund(otherPledge.multiply(BigDecimal.valueOf(100)).longValue());
ResultBody refundOtherPledge = paymentAppApi.applyRefund(applyRefundVO, currentAccount.getToken());
if (!refundOtherPledge.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return refundOtherPledge;
}
}
if (isModifiedConfirmed) {
// 进行平台打款
return businessIncome(currentAccount, id, leaseOrderDO, 0);
}
if (isRefund) {
// 退回微信的钱
if (leaseOrderDO.getOtherAmount().compareTo(BigDecimal.ZERO) > 0) {
ApplyRefundVO applyRefundVO = wxRefund(leaseOrderDO);
applyRefundVO.setRefund((leaseOrderDO.getOtherPledge().add(leaseOrderDO.getOtherAmount())).multiply(BigDecimal.valueOf(100)).longValue());
ResultBody refundOtherPledge = paymentAppApi.applyRefund(applyRefundVO, currentAccount.getToken());
if (!refundOtherPledge.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return refundOtherPledge;
}
}
if (leaseOrderDO.getShareAmount().compareTo(BigDecimal.ZERO) > 0 || leaseOrderDO.getSalaryAmount().compareTo(BigDecimal.ZERO) > 0) {
// 退回云享金及余额
PayUavWalletVO userPayUavWalletVO = new PayUavWalletVO();
userPayUavWalletVO.setUserAccountId(leaseOrderDO.getUserAccountId());
userPayUavWalletVO.setCashAmount(leaseOrderDO.getShareAmount());
userPayUavWalletVO.setSalaryAmount(leaseOrderDO.getSalaryAmount());
userPayUavWalletVO.setRemark("租赁订单退款");
userPayUavWalletVO.setOrderStatus(1700);
ResultBody resultBody = userAppApi.feignPayUavWallet(userPayUavWalletVO, currentAccount.getToken());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return resultBody;
}
}
// 进行平台打款
return businessIncome(currentAccount, id, leaseOrderDO, 1);
}
return ResultBody.success();
} else {
return ResultBody.error("状态流程有误");
}
}
@Override
public ResultBody remarkOrder(UavOrderRemarkVO uavOrderRemarkVO) {
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(uavOrderRemarkVO.getUavOrderId());
if (!leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.REMAIN_TO_BE_EVALUATED.getCode())) {
return ResultBody.error("状态流程有误");
}
// 修改订单状态
this.updateLeaseOrderStatus(uavOrderRemarkVO.getUavOrderId(), LeaseOrderStatus.COMPLETE_TRANSACTION);
leaseOrderDao.updateLeaseOrderRemarkStatus(leaseOrderDO.getId());
// 填入评价内容
UavOrderRemarkDO uavOrderRemarkDO = new UavOrderRemarkDO(uavOrderRemarkVO);
uavOrderRemarkDO.setRemarkType(1);
uavOrderRemarkDO.setMallGoodsId(leaseOrderDO.getId());
leaseOrderDao.addRemarkOrder(uavOrderRemarkDO);
return ResultBody.success();
}
}
......@@ -24,13 +24,15 @@
start_date,
share_cash_pledge,
salary_cash_pledge,
other_pledge,
mode_of_delivery_Info,
end_date,
sku)
values (#{orderNo}, #{statusCode}, #{userAccountId}, #{leaseGoodsId}, #{companyName}, #{thirdBackUserAccountId},
#{orderName}, #{skuImg}, #{orderTotalAmount}, #{salaryAmount}, #{shareAmount}, #{otherAmount},
#{userAddressId},
#{payTime}, #{userRemark}, #{unitPrice}, #{wareNum}, #{deposit}, #{startDate}, #{shareCashPledge},
#{salaryCashPledge}, #{endDate}, #{sku});
#{salaryCashPledge}, #{otherPledge}, #{modeOfDeliveryInfo}, #{endDate}, #{sku});
</insert>
<insert id="addAddress" keyProperty="id" useGeneratedKeys="true"
parameterType="com.mmc.oms.entity.lease.LeaseOrderExpressDO">
......@@ -41,10 +43,16 @@
</insert>
<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 into lease_refund_order(lease_order_id, status, file, reason, type, lease_order_express_id,
modified_deposit)
values (#{leaseOrderId}, #{status}, #{file}, #{reason}, #{type}, #{leaseOrderExpressId}, #{modifiedDeposit})
</insert>
<update id="updateUavOrderStatus">
<insert id="addRemarkOrder">
insert into uav_order_remark (remark_type, mall_goods_id, uav_order_id, remark_level, uav_images, content,
create_time)
values (#{remarkType}, #{mallGoodsId}, #{uavOrderId}, #{remarkLevel}, #{uavImages}, #{content}, NOW())
</insert>
<update id="updateLeaseOrderStatus">
update lease_order
set status_code = #{code}
where id = #{id}
......@@ -105,7 +113,13 @@
</update>
<update id="updateLeaseOrderProportion">
update lease_order
set proportion = #{proportion}
set proportion = #{proportion},
confirm_receipt_time = NOW()
where id = #{id}
</update>
<update id="updateLeaseOrderRemarkStatus">
update lease_order
set remark_status = 1
where id = #{id}
</update>
......@@ -114,7 +128,8 @@
,order_no,status_code,user_account_id,lease_goods_id,company_name,third_back_user_account_id,
order_name,sku_img,sku,order_total_amount,salary_amount,share_amount,other_amount,pay_type,
user_address_id,user_remark,seller_remark,pay_time,confirm_receipt_time,version,remark_status,mode_of_delivery_Info,
proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,start_date,end_date,shut_reason,send_ware_time
proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,start_date,end_date,shut_reason,
share_cash_pledge,salary_cash_pledge,other_pledge
</sql>
<select id="detail" resultType="com.mmc.oms.entity.lease.LeaseOrderDO">
......@@ -138,7 +153,7 @@ proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,st
select count(*) from lease_order lo
where 1 = 1
<if test="keyword != null">
and order_no = #{keyword}
and (lo.order_no like CONCAT('%',#{keyword},'%') or lo.order_name like CONCAT('%',#{keyword},'%'))
</if>
<if test="userAccountId != null">
and user_account_id = #{userAccountId}
......@@ -167,7 +182,7 @@ proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,st
WHERE
1 = 1
<if test="keyword != null">
and lo.order_no = #{keyword}
and (lo.order_no like CONCAT('%',#{keyword},'%') or lo.order_name like CONCAT('%',#{keyword},'%'))
</if>
<if test="uid != null">
and lo.user_account_id = #{uid}
......@@ -190,12 +205,12 @@ proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,st
<if test="showUserPort != null">
and show_user_port = #{showUserPort}
</if>
order by lo.id desc
order by lo.create_time 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
,lease_order_express_id,lease_order_id,status,type,file,reason,create_time,modified_deposit
</sql>
<select id="getLeaseRefundOrder" resultType="com.mmc.oms.entity.lease.LeaseRefundOrderDO">
select
......@@ -229,4 +244,10 @@ proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,st
</foreach>
</where>
</select>
<select id="selectGiveBackByOrderId" resultType="com.mmc.oms.entity.lease.LeaseRefundOrderDO">
select
<include refid="lease_refund_order_column"/>
from lease_refund_order
where lease_order_id = #{id} and type = #{type}
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论