提交 c403a03c 作者: zhenjie

商城订单-收货接口开发

上级 544c20d0
package com.mmc.oms.common.constant;
import java.math.BigDecimal;
/**
* @author: zj
* @Date: 2023/9/8 14:17
*/
public interface UavOrderProportion {
public static final BigDecimal PROPORTION = BigDecimal.valueOf(5);
}
......@@ -96,8 +96,8 @@ public class UavOrderController extends BaseController {
@ApiOperation(value = "收货")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("receive")
public ResultBody receive(@RequestParam Integer id) {
return uavOrderService.receive(id);
public ResultBody receive(@RequestParam Integer id, HttpServletRequest request) {
return uavOrderService.receive(id, this.getCurrentAccount(request));
}
@ApiOperation(value = "评价订单", hidden = true)
......
......@@ -6,10 +6,7 @@ import com.mmc.oms.model.dto.uav.PayWalletDTO;
import com.mmc.oms.model.vo.uav.PayUavWalletVO;
import com.mmc.oms.model.vo.wallet.TopUpOrderVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.*;
/**
* @author: zj
......@@ -26,4 +23,7 @@ public interface UserAppApi {
@PostMapping("pay/feignPayUavWallet")
public ResultBody feignPayUavWallet(@RequestBody PayUavWalletVO payUavWalletVO, @RequestHeader String token);
@GetMapping("company/getManagerIdByBackUserId")
public ResultBody getManagerIdByBackUserId(@RequestParam Integer backUserAccountId, @RequestHeader String token);
}
......@@ -32,4 +32,10 @@ public class UserAppApiHystrix implements UserAppApi {
log.error("熔断:UserAppApiHystrix.feignPayUavWallet==error==>param:{}", JSONObject.toJSONString(payUavWalletVO));
return ResultBody.error("-1", "远程调用失败");
}
@Override
public ResultBody getManagerIdByBackUserId(Integer backUserAccountId, String token) {
log.error("熔断:UserAppApiHystrix.getManagerIdByBackUserId==error==>param:{}", JSONObject.toJSONString(backUserAccountId));
return ResultBody.error("-1", "远程调用失败");
}
}
......@@ -30,7 +30,7 @@ public interface UavOrderService {
ResultBody send(UavOrderExpressVO param);
ResultBody receive(Integer id);
ResultBody receive(Integer id, BaseAccountDTO currentAccount);
ResultBody remarkOrder(UavOrderRemarkVO uavOrderRemarkVO);
......
......@@ -2,6 +2,7 @@ package com.mmc.oms.service.uav.impl;
import com.mmc.oms.client.PmsClient;
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;
......@@ -189,7 +190,7 @@ public class UavOrderServiceImpl implements UavOrderService {
UavOrderExpressDO uavOrderExpressDO = new UavOrderExpressDO(userAddressDO);
uavOrderExpressDO.setUavOrderId(uavOrderDO.getId());
uavOrderExpressDao.addAddress(uavOrderExpressDO);
return ResultBody.success();
return ResultBody.success(uavOrderDO.buildUavOrderDTO());
}
@Override
......@@ -240,10 +241,9 @@ public class UavOrderServiceImpl implements UavOrderService {
@Override
public ResultBody close(Integer id, String token) {
UavOrderDO uavOrderDO = uavOrderDao.detail(id);
// TODO 退款、修改订单状态
// 修改订单状态
this.updateUavOrderStatus(id, UavOrderStatus.CLOSE);
// 云享金、佣金
// 退云享金、佣金
PayUavWalletVO payUavWalletVO = new PayUavWalletVO();
payUavWalletVO.setCashAmount(uavOrderDO.getShareAmount());
payUavWalletVO.setSalaryAmount(uavOrderDO.getSalaryAmount());
......@@ -333,8 +333,9 @@ public class UavOrderServiceImpl implements UavOrderService {
return ResultBody.success();
}
@Transactional
@Override
public ResultBody receive(Integer id) {
public ResultBody receive(Integer id, BaseAccountDTO currentAccount) {
// 修改订单状态
UavOrderDO uavOrderDO = uavOrderDao.detail(id);
if (!uavOrderDO.getStatusCode().toString().equals(UavOrderStatus.WAITING_RECEIVE_GOODS.getCode().toString())) {
......@@ -346,8 +347,27 @@ public class UavOrderServiceImpl implements UavOrderService {
uavOrderExpressDO.setReceive(1);
uavOrderExpressDO.setReceiveTime(new Date());
uavOrderExpressDao.updateUavOrderExpressDO(uavOrderExpressDO);
// TODO 订单抽成设置
if (uavOrderDO.getOrderType().equals(0)) {
// 订单抽成设置
BigDecimal thirdAmount = uavOrderDO.getOrderTotalAmount().multiply(
BigDecimal.valueOf(100).subtract(UavOrderProportion.PROPORTION).divide(BigDecimal.valueOf(100)));
PayUavWalletVO payUavWalletVO = new PayUavWalletVO();
payUavWalletVO.setCashAmount(BigDecimal.ZERO);
payUavWalletVO.setSalaryAmount(thirdAmount);
payUavWalletVO.setOrderStatus(1500);
// 拿到商家管理员的用户id
ResultBody managerRes = userAppApi.getManagerIdByBackUserId(uavOrderDO.getThirdBackUserAccountId(), currentAccount.getToken());
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;
}
}
return ResultBody.success();
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论