提交 bf111e73 作者: zhenjie

购物车相关接口

上级 7f7eba61
...@@ -2,6 +2,7 @@ package com.mmc.oms.controller.uav; ...@@ -2,6 +2,7 @@ package com.mmc.oms.controller.uav;
import com.mmc.oms.common.result.ResultBody; import com.mmc.oms.common.result.ResultBody;
import com.mmc.oms.controller.BaseController; import com.mmc.oms.controller.BaseController;
import com.mmc.oms.model.dto.uav.UavCartCompanyDTO;
import com.mmc.oms.model.dto.uav.UavCartDTO; import com.mmc.oms.model.dto.uav.UavCartDTO;
import com.mmc.oms.model.dto.uav.UavOrderDTO; import com.mmc.oms.model.dto.uav.UavOrderDTO;
import com.mmc.oms.model.qo.uav.UavCartQO; import com.mmc.oms.model.qo.uav.UavCartQO;
...@@ -49,7 +50,7 @@ public class UavCartController extends BaseController { ...@@ -49,7 +50,7 @@ public class UavCartController extends BaseController {
} }
@ApiOperation(value = "购物车列表") @ApiOperation(value = "购物车列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = UavCartDTO.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = UavCartCompanyDTO.class)})
@PostMapping("list") @PostMapping("list")
public ResultBody list(@RequestBody UavCartQO uavCartQO, public ResultBody list(@RequestBody UavCartQO uavCartQO,
HttpServletRequest request) { HttpServletRequest request) {
......
...@@ -3,6 +3,7 @@ package com.mmc.oms.controller.uav; ...@@ -3,6 +3,7 @@ package com.mmc.oms.controller.uav;
import com.mmc.oms.common.result.ResultBody; import com.mmc.oms.common.result.ResultBody;
import com.mmc.oms.controller.BaseController; import com.mmc.oms.controller.BaseController;
import com.mmc.oms.model.dto.ContractInfoDTO; import com.mmc.oms.model.dto.ContractInfoDTO;
import com.mmc.oms.model.dto.uav.UavCartCompanyDTO;
import com.mmc.oms.model.dto.uav.UavOrderDTO; import com.mmc.oms.model.dto.uav.UavOrderDTO;
import com.mmc.oms.model.dto.uav.UavOrderStatusDTO; import com.mmc.oms.model.dto.uav.UavOrderStatusDTO;
import com.mmc.oms.model.qo.uav.UavOrderQO; import com.mmc.oms.model.qo.uav.UavOrderQO;
...@@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.List;
/** /**
* @author: zj * @author: zj
...@@ -35,6 +37,14 @@ public class UavOrderController extends BaseController { ...@@ -35,6 +37,14 @@ public class UavOrderController extends BaseController {
return uavOrderService.addOrder(param, this.getCurrentAccount(request)); return uavOrderService.addOrder(param, this.getCurrentAccount(request));
} }
@ApiOperation(value = "提交订单-购物车")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = UavOrderDTO.class)})
@PostMapping("addOrderByCart")
public ResultBody<UavOrderDTO> addOrderByCart(@RequestBody AddUavOrderByCartQO orderByCartQO,
HttpServletRequest request) {
return uavOrderService.addOrderByCart(orderByCartQO, this.getCurrentAccount(request));
}
@ApiOperation(value = "订单详情") @ApiOperation(value = "订单详情")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = UavOrderDTO.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = UavOrderDTO.class)})
@GetMapping("detail") @GetMapping("detail")
......
package com.mmc.oms.entity.uav; package com.mmc.oms.entity.uav;
import com.mmc.oms.model.dto.uav.UavCartDTO;
import com.mmc.oms.model.dto.uav.UavOrderSkuDTO; import com.mmc.oms.model.dto.uav.UavOrderSkuDTO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -52,4 +53,15 @@ public class UavOrderSkuDO implements Serializable { ...@@ -52,4 +53,15 @@ public class UavOrderSkuDO implements Serializable {
.skuNo(this.skuNo).createTime(this.createTime).build(); .skuNo(this.skuNo).createTime(this.createTime).build();
} }
public UavOrderSkuDO(UavCartDTO uavCartDTO){
this.mallGoodsId = uavCartDTO.getMallGoodsId();
this.orderNum = uavCartDTO.getOrderNum();
this.unitPrice = uavCartDTO.getSalePrice();
this.productSpec = uavCartDTO.getProductSpec();
this.tradeName = uavCartDTO.getTradeName();
this.skuNo = uavCartDTO.getSkuNo();
this.skuImage = uavCartDTO.getSkuImage();
this.priceStockId = uavCartDTO.getPriceStockId();
}
} }
package com.mmc.oms.model.dto.uav; package com.mmc.oms.model.dto.uav;
import com.mmc.oms.entity.uav.UavCartDO; import com.mmc.oms.entity.uav.UavCartDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
...@@ -19,7 +20,10 @@ import java.util.List; ...@@ -19,7 +20,10 @@ import java.util.List;
@NoArgsConstructor @NoArgsConstructor
public class UavCartCompanyDTO implements Serializable { public class UavCartCompanyDTO implements Serializable {
private static final long serialVersionUID = -6785504068213761405L; private static final long serialVersionUID = -6785504068213761405L;
@ApiModelProperty(value = "商家id")
private Integer thirdBackUserAccountId; private Integer thirdBackUserAccountId;
@ApiModelProperty(value = "商家名称")
private String companyName; private String companyName;
@ApiModelProperty(value = "购物车对应规格")
private List<UavCartDTO> uavCartDOS; private List<UavCartDTO> uavCartDOS;
} }
...@@ -48,4 +48,6 @@ public class UavCartDTO implements Serializable { ...@@ -48,4 +48,6 @@ public class UavCartDTO implements Serializable {
private Date createTime; private Date createTime;
@ApiModelProperty(value = "是否展示价格,0 不显示 1显示") @ApiModelProperty(value = "是否展示价格,0 不显示 1显示")
private Integer priceShow; private Integer priceShow;
@ApiModelProperty(value = "是否上架状态:0: 下架 1:上架")
private Integer shelfStatus;
} }
package com.mmc.oms.model.vo.uav;
import com.mmc.oms.model.dto.uav.UavCartCompanyDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author: zj
* @Date: 2023/9/20 9:46
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AddUavOrderByCartQO implements Serializable {
private static final long serialVersionUID = 2749055915328197141L;
@ApiModelProperty("收货地址")
private Integer userAddressId;
@ApiModelProperty("订单类型,0正常直接支付订单,1意向沟通订单")
private Integer orderType;
@ApiModelProperty("用户备注")
private String userRemark;
@ApiModelProperty("是否抵扣云享金,0否,1是")
private Integer deductShareAmount;
@ApiModelProperty("是否抵扣余额,0否,1是")
private Integer deductSalaryAmount;
@ApiModelProperty("每家商户对应的规格")
private List<UavCartCompanyDTO> cartCompanyDTOS;
}
package com.mmc.oms.service.uav; package com.mmc.oms.service.uav;
import com.mmc.oms.common.result.ResultBody; import com.mmc.oms.common.result.ResultBody;
import com.mmc.oms.model.dto.uav.UavCartCompanyDTO;
import com.mmc.oms.model.dto.user.BaseAccountDTO; import com.mmc.oms.model.dto.user.BaseAccountDTO;
import com.mmc.oms.model.qo.uav.UavCartQO; import com.mmc.oms.model.qo.uav.UavCartQO;
import com.mmc.oms.model.vo.uav.UavCartVO; import com.mmc.oms.model.vo.uav.UavCartVO;
...@@ -19,4 +20,6 @@ public interface UavCartService { ...@@ -19,4 +20,6 @@ public interface UavCartService {
ResultBody updateNum(Integer id, Integer changeNum); ResultBody updateNum(Integer id, Integer changeNum);
ResultBody list(UavCartQO uavCartQO, BaseAccountDTO currentAccount); ResultBody list(UavCartQO uavCartQO, BaseAccountDTO currentAccount);
void buildUavCartCompany(Integer orderType, List<UavCartCompanyDTO> uavCartCompanyDTOS);
} }
...@@ -2,12 +2,15 @@ package com.mmc.oms.service.uav; ...@@ -2,12 +2,15 @@ package com.mmc.oms.service.uav;
import com.mmc.oms.common.result.ResultBody; import com.mmc.oms.common.result.ResultBody;
import com.mmc.oms.model.dto.ContractInfoDTO; import com.mmc.oms.model.dto.ContractInfoDTO;
import com.mmc.oms.model.dto.uav.UavCartCompanyDTO;
import com.mmc.oms.model.dto.uav.UavOrderDTO;
import com.mmc.oms.model.dto.user.BaseAccountDTO; import com.mmc.oms.model.dto.user.BaseAccountDTO;
import com.mmc.oms.model.qo.uav.UavOrderQO; import com.mmc.oms.model.qo.uav.UavOrderQO;
import com.mmc.oms.model.vo.uav.*; import com.mmc.oms.model.vo.uav.*;
import com.mmc.oms.model.vo.wallet.TopUpOrderVO; import com.mmc.oms.model.vo.wallet.TopUpOrderVO;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.List;
/** /**
* @author: zj * @author: zj
...@@ -49,4 +52,6 @@ public interface UavOrderService { ...@@ -49,4 +52,6 @@ public interface UavOrderService {
ResultBody uavOrderFinishSign(String orderNo); ResultBody uavOrderFinishSign(String orderNo);
ResultBody removeUavOrder(Integer id); ResultBody removeUavOrder(Integer id);
ResultBody addOrderByCart(AddUavOrderByCartQO orderByCartQO, BaseAccountDTO currentAccount);
} }
...@@ -81,7 +81,8 @@ public class UavCartServiceImpl implements UavCartService { ...@@ -81,7 +81,8 @@ public class UavCartServiceImpl implements UavCartService {
return ResultBody.success(PageResult.buildPage(pageNo, uavCartQO.getPageSize(), list.size(), uavCartCompanyDTOS)); return ResultBody.success(PageResult.buildPage(pageNo, uavCartQO.getPageSize(), list.size(), uavCartCompanyDTOS));
} }
private void buildUavCartCompany(Integer orderType, List<UavCartCompanyDTO> uavCartCompanyDTOS){ @Override
public void buildUavCartCompany(Integer orderType, List<UavCartCompanyDTO> uavCartCompanyDTOS){
List<PriceStockQO> priceStockQOS = new ArrayList<>(); List<PriceStockQO> priceStockQOS = new ArrayList<>();
for (UavCartCompanyDTO uavCartCompanyDTO : uavCartCompanyDTOS) { for (UavCartCompanyDTO uavCartCompanyDTO : uavCartCompanyDTOS) {
for (UavCartDTO uavCartDO : uavCartCompanyDTO.getUavCartDOS()) { for (UavCartDTO uavCartDO : uavCartCompanyDTO.getUavCartDOS()) {
......
...@@ -33,6 +33,7 @@ import com.mmc.oms.model.vo.demand.CommonPaymentVO; ...@@ -33,6 +33,7 @@ import com.mmc.oms.model.vo.demand.CommonPaymentVO;
import com.mmc.oms.model.vo.uav.*; import com.mmc.oms.model.vo.uav.*;
import com.mmc.oms.model.vo.wallet.TopUpOrderVO; import com.mmc.oms.model.vo.wallet.TopUpOrderVO;
import com.mmc.oms.service.demand.DemandReleaseOrderService; import com.mmc.oms.service.demand.DemandReleaseOrderService;
import com.mmc.oms.service.uav.UavCartService;
import com.mmc.oms.service.uav.UavOrderService; import com.mmc.oms.service.uav.UavOrderService;
import com.mmc.oms.service.uav.UavPOService; import com.mmc.oms.service.uav.UavPOService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -655,4 +656,55 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -655,4 +656,55 @@ public class UavOrderServiceImpl implements UavOrderService {
uavOrderDao.closeShowUavOrder(id); uavOrderDao.closeShowUavOrder(id);
return ResultBody.success(); return ResultBody.success();
} }
@Autowired
private UavCartService uavCartService;
@Transactional
@Override
public ResultBody addOrderByCart(AddUavOrderByCartQO orderByCartQO, BaseAccountDTO currentAccount) {
uavCartService.buildUavCartCompany(orderByCartQO.getOrderType(), orderByCartQO.getCartCompanyDTOS());
// 可以多商家多商品,为每个商家生成一个订单
List<UavOrderDO> orders = new ArrayList<UavOrderDO>();
BigDecimal allAmount = BigDecimal.ZERO;
// 意向订单只能下一个商家的
if (orderByCartQO.getOrderType().equals(UavOrderType.SIGN.getCode()) && orderByCartQO.getCartCompanyDTOS().size() > 1) {
return ResultBody.error("意向订单仅限下单个商家的商品");
}
// 生成订单信息
for (UavCartCompanyDTO companyDTO : orderByCartQO.getCartCompanyDTOS()) {
BigDecimal singleOrderAmount = BigDecimal.ZERO;
UavOrderDO uavOrderDO = new UavOrderDO();
List<UavOrderSkuDO> skuDOS = new ArrayList<UavOrderSkuDO>();
String orderNo = CodeUtil.uavOrderCode();
if (CollectionUtils.isNotEmpty(companyDTO.getUavCartDOS())) {
for (UavCartDTO uavCartDTO : companyDTO.getUavCartDOS()) {
UavOrderSkuDO uavOrderSkuDO = new UavOrderSkuDO(uavCartDTO);
skuDOS.add(uavOrderSkuDO);
singleOrderAmount = singleOrderAmount.add(uavCartDTO.getSalePrice().multiply(BigDecimal.valueOf(uavCartDTO.getOrderNum())));
}
}
// 设置订单状态
// uavOrderDO.setStatusCode();
uavOrderDO.setOrderTotalAmount(singleOrderAmount);
uavOrderDO.setUserAccountId(currentAccount.getUserAccountId());
uavOrderDO.setUserAddressId(orderByCartQO.getUserAddressId());
uavOrderDO.setThirdBackUserAccountId(companyDTO.getThirdBackUserAccountId());
uavOrderDO.setCompanyName(companyDTO.getCompanyName());
uavOrderDO.setOrderType(orderByCartQO.getOrderType());
uavOrderDO.setUserRemark(orderByCartQO.getUserRemark());
uavOrderDO.setOrderNo(orderNo);
uavOrderDO.setSkuDOS(skuDOS);
orders.add(uavOrderDO);
allAmount = allAmount.add(singleOrderAmount);
}
// 云享金、余额扣除相关
ResultBody<PayWalletDTO> payResInfo = userAppApi.getCurrentUserPayWalletInfo(currentAccount.getToken());
if (!payResInfo.getCode().equals(ResultEnum.SUCCESS.getResultCode()) || payResInfo.getResult() == null){
return payResInfo;
}
PayWalletDTO payWalletDTO = payResInfo.getResult();
return ResultBody.success();
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论