Commit 15c84da9 authored by unset's avatar unset

修改支付信息

parent fbcbb56e
package com.upyuns.platform.rs.website.dto; package com.upyuns.platform.rs.website.dto;
import com.github.wxiaoqi.security.common.vo.PageParam; import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.util.List;
/** /**
* @ClassName : OrderInfoDto * @ClassName : OrderInfoDto
...@@ -13,18 +14,30 @@ import java.math.BigDecimal; ...@@ -13,18 +14,30 @@ import java.math.BigDecimal;
*/ */
@Data @Data
public class OrderInfoDto extends PageParam { public class OrderInfoDto extends PageParam {
//详情ID /**
Integer detailId; * 订单备注
*/
@ApiModelProperty(value = "订单备注")
private String remark;
//1、标准数据,2、影像图库,3、行业应用信息 /**
Integer type; * 配送方式:1、线上配送,2、快递配送
*/
@ApiModelProperty(value = "配送方式:1、线上配送,2、快递配送")
private Integer sendType;
//数量 /**
Integer number; * 地址ID
*/
private Integer userAddressId;
//单价 /**
BigDecimal price; * 发票ID
*/
private Integer userInvoiceId;
//文件地址 /**
String filePath; * 商品信息ID
*/
private List<ItemInfoDto> itemInfoDtoList;
} }
...@@ -177,7 +177,7 @@ public class OrderInfo implements Serializable { ...@@ -177,7 +177,7 @@ public class OrderInfo implements Serializable {
* *
*/ */
@Column(name = "type") @Column(name = "type")
@ApiModelProperty(value = "") @ApiModelProperty(value = "1、普通订单,2、定制订单")
private Integer type; private Integer type;
......
...@@ -2,23 +2,35 @@ package com.upyuns.platform.rs.website.biz; ...@@ -2,23 +2,35 @@ package com.upyuns.platform.rs.website.biz;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.OrderUtil; import com.github.wxiaoqi.security.common.util.OrderUtil;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.upyuns.platform.rs.universal.constant.DictionaryKey;
import com.upyuns.platform.rs.universal.entity.Dictionary;
import com.upyuns.platform.rs.universal.feign.ThirdFeign;
import com.upyuns.platform.rs.website.dto.ItemInfoDto;
import com.upyuns.platform.rs.website.dto.OrderInfoDto;
import com.upyuns.platform.rs.website.dto.UserOrderDto; import com.upyuns.platform.rs.website.dto.UserOrderDto;
import com.upyuns.platform.rs.website.entity.OrderItem; import com.upyuns.platform.rs.website.entity.*;
import com.upyuns.platform.rs.website.entity.ShoppingCartInfo;
import com.upyuns.platform.rs.website.mapper.OrderItemMapper; import com.upyuns.platform.rs.website.mapper.OrderItemMapper;
import com.upyuns.platform.rs.website.type.OrderTypeEnum;
import com.upyuns.platform.rs.website.vo.ItemInfoVo;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.upyuns.platform.rs.website.entity.OrderInfo;
import com.upyuns.platform.rs.website.mapper.OrderInfoMapper; import com.upyuns.platform.rs.website.mapper.OrderInfoMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
/** /**
* 订单信息 * 订单信息
...@@ -31,7 +43,36 @@ import java.util.List; ...@@ -31,7 +43,36 @@ import java.util.List;
public class OrderInfoBiz extends BaseBiz<OrderInfoMapper, OrderInfo> { public class OrderInfoBiz extends BaseBiz<OrderInfoMapper, OrderInfo> {
@Autowired @Autowired
OrderItemMapper orderItemMapper; OrderItemBiz orderItemBiz;
@Autowired
IndustryApplicationInfoBiz industryApplicationInfoBiz;
@Autowired
ImageImgStorageBiz imageImgStorageBiz;
@Autowired
ShoppingCartInfoBiz shoppingCartInfoBiz;
@Autowired
ImageInfoRelationBiz imageInfoRelationBiz;
@Autowired
ThirdFeign thirdFeign;
@Autowired
UserFeign userFeign;
@Autowired
HttpServletRequest request;
@Autowired
UserAddressBiz userAddressBiz;
@Autowired
OrderEInvoiceBiz orderEInvoiceBiz;
@Autowired
UserInvoiceBiz userInvoiceBiz;
/** /**
* 添加订单 * 添加订单
...@@ -115,4 +156,155 @@ public class OrderInfoBiz extends BaseBiz<OrderInfoMapper, OrderInfo> { ...@@ -115,4 +156,155 @@ public class OrderInfoBiz extends BaseBiz<OrderInfoMapper, OrderInfo> {
} }
/**
* 提交订单
* @param orderInfoDto
* @return
*/
public ObjectRestResponse submitOrder(OrderInfoDto orderInfoDto) {
AppUserDTO appUserDTO = userFeign.userDetailByToken(request.getHeader("Authorization")).getData();
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
if (orderInfoDto == null || orderInfoDto.getItemInfoDtoList() == null) {
return ObjectRestResponse.paramIsEmpty();
}
List<ItemInfoDto> itemInfoDtoList = orderInfoDto.getItemInfoDtoList();
List<OrderItem> orderItemList = new ArrayList<>();
AtomicReference<Integer> number = new AtomicReference<>(0);
AtomicReference<Double> amount = new AtomicReference<>((double) 0);
itemInfoDtoList.parallelStream().forEach(itemInfoDto -> {
switch (OrderTypeEnum.getByCode(itemInfoDto.getType())) {
//标准数据
case STANDARD_DATA:
break;
//行业应用
case INDUSTRY_INFO:
IndustryApplicationInfo industryApplicationInfo = industryApplicationInfoBiz.getOneById(itemInfoDto.getId()).getData();
if (industryApplicationInfo != null) {
OrderItem orderItem = new OrderItem();
orderItem.setType(itemInfoDto.getType());
orderItem.setTotalAmount(industryApplicationInfo.getPrice().multiply(new BigDecimal(itemInfoDto.getNumber())));
orderItem.setPrice(industryApplicationInfo.getPrice());
orderItem.setNumber(itemInfoDto.getNumber());
orderItem.setName(industryApplicationInfo.getTitle());
orderItem.setItemPic(industryApplicationInfo.getCoverImg());
orderItem.setDetailJson(JSONObject.toJSONString(industryApplicationInfo));
orderItem.setDetailId(industryApplicationInfo.getId());
orderItemList.add(orderItem);
//总数量
number.updateAndGet(v -> v + itemInfoDto.getNumber());
BigDecimal totalAmount = industryApplicationInfo.getPrice().multiply(new BigDecimal(itemInfoDto.getNumber()));
amount.updateAndGet(v -> new Double((double) (v + totalAmount.doubleValue())));
}
break;
//影像图库
case IMAGE_STORAGE:
ImageInfoRelation imageInfoRelation = imageInfoRelationBiz.selectById(itemInfoDto.getId());
if (imageInfoRelation != null ) {
ImageImgStorage imageImgStorage = imageImgStorageBiz.getDetail(itemInfoDto.getId()).getData();
if (imageImgStorage != null) {
List<ImageInfoRelation> imageInfoRelationList = new ArrayList<>();
imageInfoRelationList.add(imageInfoRelation);
imageImgStorage.setImageInfoRelationList(imageInfoRelationList);
OrderItem orderItem = new OrderItem();
orderItem.setType(itemInfoDto.getType());
orderItem.setTotalAmount(imageInfoRelation.getPrice().multiply(new BigDecimal(itemInfoDto.getNumber())));
orderItem.setPrice(imageInfoRelation.getPrice());
orderItem.setNumber(itemInfoDto.getNumber());
orderItem.setName(imageImgStorage.getName());
orderItem.setItemPic(imageImgStorage.getCoverImg());
orderItem.setDetailJson(JSONObject.toJSONString(imageImgStorage));
orderItem.setDetailId(imageImgStorage.getId());
orderItemList.add(orderItem);
//总数量
number.updateAndGet(v -> v + itemInfoDto.getNumber());
BigDecimal totalAmount = imageInfoRelation.getPrice().multiply(new BigDecimal(itemInfoDto.getNumber()));
amount.updateAndGet(v -> new Double((double) (v + totalAmount.doubleValue())));
}
}
break;
//购物车
case SHOPPING_CART_INFO:
ShoppingCartInfo shoppingCartInfo = shoppingCartInfoBiz.selectById(itemInfoDto.getId());
if (shoppingCartInfo != null) {
OrderItem orderItem = new OrderItem();
orderItem.setType(itemInfoDto.getType());
orderItem.setTotalAmount(shoppingCartInfo.getPrice().multiply(new BigDecimal(itemInfoDto.getNumber())));
orderItem.setPrice(shoppingCartInfo.getPrice());
orderItem.setNumber(itemInfoDto.getNumber());
orderItem.setName(shoppingCartInfo.getName());
orderItem.setItemPic(shoppingCartInfo.getItemPic());
orderItem.setDetailJson(shoppingCartInfo.getDetailJson());
orderItem.setDetailId(shoppingCartInfo.getDetailId());
orderItemList.add(orderItem);
number.updateAndGet(v -> v + itemInfoDto.getNumber());
BigDecimal totalAmount = shoppingCartInfo.getTotalAmount();
amount.updateAndGet(v -> new Double((double) (v + totalAmount.doubleValue())));
}
break;
default:
break;
}
});
OrderInfo orderInfo = new OrderInfo();
orderInfo.setRealName(appUserDTO.getRealname());
orderInfo.setUserId(appUserDTO.getUserid());
orderInfo.setPhone(appUserDTO.getUsername());
orderInfo.setNickname(appUserDTO.getNickname());
orderInfo.setHeadImg(appUserDTO.getHeadimgurl());
if (orderInfoDto.getUserAddressId() != null) {
UserAddress userAddress = userAddressBiz.selectById(orderInfoDto.getUserAddressId());
if (userAddress != null) {
orderInfo.setReceiveName(userAddress.getConsigneeName());
orderInfo.setReceivePhone(userAddress.getConsigneePhone());
orderInfo.setReceiveAddress(userAddress.getProvince() + userAddress.getCity() + userAddress.getTown() + userAddress.getConsigneeAddress());
}
}
orderInfo.setRemark(orderInfoDto.getRemark());
orderInfo.setAmount(new BigDecimal(amount.get()));
Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(DictionaryKey.APP_ORDER, DictionaryKey.SEND_FEE);
if (dictionary != null && StringUtils.isNotBlank(dictionary.getDetail())) {
orderInfo.setFee(new BigDecimal(dictionary.getDetail()));
}
if (orderInfo.getFee() != null) {
orderInfo.setTotalAmount(orderInfo.getAmount().add(orderInfo.getFee()));
}
orderInfo.setSendType(orderInfoDto.getSendType());
orderInfo.setType(1);
/**
* 新增订单
*/
generateOrder(orderInfo);
orderItemList.parallelStream().forEach(orderItem -> {
orderItem.setOrderId(orderInfo.getOrderId());
orderItemBiz.insertSelective(orderItem);
});
//订单发票信息
if (orderInfoDto.getUserInvoiceId() != null) {
UserInvoice userInvoice = userInvoiceBiz.selectById(orderInfoDto.getUserInvoiceId());
if (userInvoice != null) {
OrderEInvoice orderEInvoice = new OrderEInvoice();
orderEInvoice.setAmount(orderInfo.getAmount());
orderEInvoice.setType(1);
orderEInvoice.setOrderIds(orderInfo.getOrderId() + "");
orderEInvoice.setTitleType(userInvoice.getTitleType());
orderEInvoice.setTitleName(userInvoice.getTitleName());
orderEInvoice.setTaxCode(userInvoice.getTaxCode());
orderEInvoice.setContentRemark(orderInfoDto.getRemark());
orderEInvoice.setContentAccount(userInvoice.getOpenBank() + " " + userInvoice.getAccount());
orderEInvoice.setContentContact(orderInfo.getReceiveAddress() + " " + orderInfo.getReceiveName() + " " + orderInfo.getReceivePhone());
//发票内容
orderEInvoice.setContentTitle("");
orderEInvoiceBiz.addUpdate(orderEInvoice);
}
}
return ObjectRestResponse.succ();
}
} }
\ No newline at end of file
...@@ -15,4 +15,5 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -15,4 +15,5 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
*/ */
@Service @Service
public class OrderItemBiz extends BaseBiz<OrderItemMapper,OrderItem> { public class OrderItemBiz extends BaseBiz<OrderItemMapper,OrderItem> {
} }
\ No newline at end of file
...@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; ...@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.upyuns.platform.rs.website.biz.OrderInfoBiz; import com.upyuns.platform.rs.website.biz.OrderInfoBiz;
import com.upyuns.platform.rs.website.dto.ConfirmOrderDto; import com.upyuns.platform.rs.website.dto.ConfirmOrderDto;
import com.upyuns.platform.rs.website.dto.OrderInfoDto;
import com.upyuns.platform.rs.website.entity.OrderInfo; import com.upyuns.platform.rs.website.entity.OrderInfo;
import com.upyuns.platform.rs.website.service.ConfirmOrderService; import com.upyuns.platform.rs.website.service.ConfirmOrderService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -24,5 +25,8 @@ public class OrderInfoWebController extends BaseController<OrderInfoBiz,OrderInf ...@@ -24,5 +25,8 @@ public class OrderInfoWebController extends BaseController<OrderInfoBiz,OrderInf
return confirmOrderService.confirmOrderInfo(confirmOrderDto); return confirmOrderService.confirmOrderInfo(confirmOrderDto);
} }
@PostMapping(value = "submitOrder")
public ObjectRestResponse submitOrder(@RequestBody OrderInfoDto orderInfoDto) {
return baseBiz.submitOrder(orderInfoDto);
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment