Commit 08493dea authored by unset's avatar unset

修改支付信息

parent d69b1193
...@@ -2,6 +2,8 @@ package com.upyuns.platform.rs.website.dto; ...@@ -2,6 +2,8 @@ package com.upyuns.platform.rs.website.dto;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* @ClassName : ConfirmOrderDto * @ClassName : ConfirmOrderDto
* @Description : 确认订单 * @Description : 确认订单
...@@ -11,19 +13,5 @@ import lombok.Data; ...@@ -11,19 +13,5 @@ import lombok.Data;
@Data @Data
public class ConfirmOrderDto { public class ConfirmOrderDto {
/** List<ItemInfoDto> itemInfoDtoList;
* 类型: 1、标准数据,2、影像图库,3、行业应用信息, 4、购物车确认订单
*/
private Integer type;
/**
* 购物车或者商品id, 逗号分隔
* 如果是影像图库,传的是图像ID imageRelationInfo
*/
private String ids;
/**
* 数量
*/
private Integer number;
} }
package com.upyuns.platform.rs.website.dto;
import lombok.Data;
/**
* @ClassName : itemInfoDto
* @Description : 商品信息
* @Author : jiaoruizhen
* @Date: 2020-12-16 16:56
*/
@Data
public class ItemInfoDto {
Integer id;
Integer number;
/**
* 类型: 1、标准数据,2、影像图库,3、行业应用信息, 4、购物车确认订单
*/
private Integer type;
}
...@@ -50,30 +50,6 @@ public class ConfirmOrderInfoVo { ...@@ -50,30 +50,6 @@ public class ConfirmOrderInfoVo {
*/ */
private BigDecimal fee; private BigDecimal fee;
/** private List<ItemInfoVo> itemInfoVoList;
* 类型: 1、标准数据,2、影像图库,3、行业应用信息, 4、购物车确认订单
*/
private Integer type;
/**
* 购物车或者商品id, 逗号分隔
*/
String ids;
/**
* 购物车信息列表
*/
List<ShoppingCartInfo> shoppingCartInfoList;
/**
* 行业应用信息列表
*/
List<IndustryApplicationInfo> industryApplicationInfoList;
/**
* 影像图库信息列表
*/
List<ImageImgStorage> imageImgStorageList;
} }
...@@ -2,20 +2,20 @@ package com.upyuns.platform.rs.website.vo; ...@@ -2,20 +2,20 @@ package com.upyuns.platform.rs.website.vo;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* @ClassName : ItemInfoVo * @ClassName : ItemInfoVo
* @Description : 商品信息 * @Description : 商品信息
* @Author : jiaoruizhen * @Author : jiaoruizhen
* @Date: 2020-12-16 15:09 * @Date: 2020-12-16 16:59
*/ */
@Data @Data
public class ItemInfoVo { public class ItemInfoVo {
private Integer id;
private String name;
/**
* 商品参数
*/
private String detailJson; private String detailJson;
private Integer number;
private BigDecimal price;
private Integer type;
private String img;
} }
package com.upyuns.platform.rs.website.service; package com.upyuns.platform.rs.website.service;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.upyuns.platform.rs.universal.constant.DictionaryKey; import com.upyuns.platform.rs.universal.constant.DictionaryKey;
import com.upyuns.platform.rs.universal.entity.Dictionary; import com.upyuns.platform.rs.universal.entity.Dictionary;
import com.upyuns.platform.rs.universal.feign.ThirdFeign; import com.upyuns.platform.rs.universal.feign.ThirdFeign;
import com.upyuns.platform.rs.website.biz.*; import com.upyuns.platform.rs.website.biz.*;
import com.upyuns.platform.rs.website.dto.ConfirmOrderDto; import com.upyuns.platform.rs.website.dto.ConfirmOrderDto;
import com.upyuns.platform.rs.website.dto.UserAddressDto; import com.upyuns.platform.rs.website.dto.ItemInfoDto;
import com.upyuns.platform.rs.website.dto.UserInvoiceDto;
import com.upyuns.platform.rs.website.entity.*; import com.upyuns.platform.rs.website.entity.*;
import com.upyuns.platform.rs.website.type.OrderTypeEnum; import com.upyuns.platform.rs.website.type.OrderTypeEnum;
import com.upyuns.platform.rs.website.vo.ConfirmOrderInfoVo; import com.upyuns.platform.rs.website.vo.ConfirmOrderInfoVo;
import com.upyuns.platform.rs.website.vo.ItemInfoVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
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 java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Arrays; import java.util.*;
import java.util.List; import java.util.concurrent.atomic.AtomicReference;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -48,98 +47,91 @@ public class ConfirmOrderService { ...@@ -48,98 +47,91 @@ public class ConfirmOrderService {
@Autowired @Autowired
ThirdFeign thirdFeign; ThirdFeign thirdFeign;
@Autowired
UserAddressBiz userAddressBiz;
@Autowired
UserInvoiceBiz userInvoiceBiz;
/** /**
* 确认订单 * 确认订单
* @param confirmOrderDto * @param confirmOrderDto
* @return * @return
*/ */
public ObjectRestResponse confirmOrderInfo(ConfirmOrderDto confirmOrderDto) { public ObjectRestResponse confirmOrderInfo(ConfirmOrderDto confirmOrderDto) {
if (confirmOrderDto == null || confirmOrderDto.getType() == null || StringUtils.isBlank(confirmOrderDto.getIds())) { if (confirmOrderDto == null || confirmOrderDto.getItemInfoDtoList() == null) {
return ObjectRestResponse.paramIsEmpty(); return ObjectRestResponse.paramIsEmpty();
} }
String[] idArr = confirmOrderDto.getIds().split(",");
Set<Integer> idList = Arrays.asList(idArr).stream().map(s -> Integer.parseInt(s.trim())).collect(Collectors.toSet());
ConfirmOrderInfoVo confirmOrderInfoVo = new ConfirmOrderInfoVo(); ConfirmOrderInfoVo confirmOrderInfoVo = new ConfirmOrderInfoVo();
confirmOrderInfoVo.setType(confirmOrderDto.getType()); List<ItemInfoDto> itemInfoDtoList = confirmOrderDto.getItemInfoDtoList();
confirmOrderInfoVo.setIds(confirmOrderDto.getIds()); if (itemInfoDtoList != null && itemInfoDtoList.size() > 0) {
switch (OrderTypeEnum.getByCode(confirmOrderDto.getType())) { List<ItemInfoVo> itemInfoVoList = new ArrayList<>();
//标准数据 AtomicReference<Integer> number = new AtomicReference<>(0);
case STANDARD_DATA: AtomicReference<Double> amount = new AtomicReference<>((double) 0);
itemInfoDtoList.parallelStream().forEach(itemInfoDto -> {
break; switch (OrderTypeEnum.getByCode(itemInfoDto.getType())) {
//行业应用 //标准数据
case INDUSTRY_INFO: case STANDARD_DATA:
List<IndustryApplicationInfo> industryApplicationInfoList = industryApplicationInfoBiz.getAllByIds(idList);
if (industryApplicationInfoList != null && industryApplicationInfoList.size() > 0) { break;
confirmOrderInfoVo.setIndustryApplicationInfoList(industryApplicationInfoList); //行业应用
//总数量 case INDUSTRY_INFO:
Double amount = industryApplicationInfoList.stream().mapToDouble(e->e.getPrice().doubleValue()).reduce(0, Double::sum); IndustryApplicationInfo industryApplicationInfo = industryApplicationInfoBiz.getOneById(itemInfoDto.getId()).getData();
confirmOrderInfoVo.setTotalAmount(new BigDecimal(amount)); if (industryApplicationInfo != null) {
confirmOrderInfoVo.setNumber(industryApplicationInfoList.size()); ItemInfoVo itemInfoVo = new ItemInfoVo();
} itemInfoVo.setId(industryApplicationInfo.getId());
break; itemInfoVo.setDetailJson(JSONObject.toJSONString(industryApplicationInfo));
//影像图库 itemInfoVo.setImg(industryApplicationInfo.getCoverImg());
case IMAGE_STORAGE: itemInfoVo.setNumber(itemInfoDto.getNumber());
List<ImageInfoRelation> imageInfoRelationList = imageInfoRelationBiz.getAllByIds(confirmOrderDto.getIds()); itemInfoVo.setType(itemInfoDto.getType());
if (imageInfoRelationList != null && imageInfoRelationList.size() > 0) { itemInfoVo.setPrice(industryApplicationInfo.getPrice());
Map<Integer, List<ImageInfoRelation>> map = imageInfoRelationList.stream().collect(Collectors.groupingBy(ImageInfoRelation::getRelationId)); itemInfoVoList.add(itemInfoVo);
List<ImageImgStorage> imageImgStorageList = imageImgStorageBiz.getAllByIds(imageInfoRelationList.stream().map(ImageInfoRelation::getRelationId).collect(Collectors.toSet())); //总数量
if (imageImgStorageList != null && imageImgStorageList.size() > 0) { number.updateAndGet(v -> v + itemInfoDto.getNumber());
imageImgStorageList.parallelStream().forEach(imageImgStorage -> { BigDecimal totalAmount = industryApplicationInfo.getPrice().multiply(new BigDecimal(itemInfoDto.getNumber()));
if (map != null && map.get(imageImgStorage.getId()) != null) { amount.updateAndGet(v -> new Double((double) (v + totalAmount.doubleValue())));
imageImgStorage.setImageInfoRelationList(map.get(imageImgStorage.getId())); }
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);
ItemInfoVo itemInfoVo = new ItemInfoVo();
itemInfoVo.setId(imageImgStorage.getId());
itemInfoVo.setPrice(imageInfoRelation.getPrice());
itemInfoVo.setType(itemInfoDto.getType());
itemInfoVo.setNumber(itemInfoDto.getNumber());
itemInfoVo.setImg(imageImgStorage.getCoverImg());
itemInfoVo.setDetailJson(JSONObject.toJSONString(imageImgStorage));
itemInfoVoList.add(itemInfoVo);
//总数量
number.updateAndGet(v -> v + itemInfoDto.getNumber());
BigDecimal totalAmount = imageInfoRelation.getPrice().multiply(new BigDecimal(itemInfoDto.getNumber()));
amount.updateAndGet(v -> new Double((double) (v + totalAmount.doubleValue())));
} }
}); }
confirmOrderInfoVo.setImageImgStorageList(imageImgStorageList); break;
//总数量 //购物车
confirmOrderInfoVo.setNumber(imageInfoRelationList.size()); case SHOPPING_CART_INFO:
Double amount = imageInfoRelationList.stream().mapToDouble(e->e.getPrice().doubleValue()).reduce(0, Double::sum); ShoppingCartInfo shoppingCartInfo = shoppingCartInfoBiz.selectById(itemInfoDto.getId());
confirmOrderInfoVo.setTotalAmount(new BigDecimal(amount)); if (shoppingCartInfo != null) {
} number.updateAndGet(v -> v + itemInfoDto.getNumber());
} BigDecimal totalAmount = shoppingCartInfo.getTotalAmount();
break; amount.updateAndGet(v -> new Double((double) (v + totalAmount.doubleValue())));
//购物车 }
case SHOPPING_CART_INFO: break;
List<ShoppingCartInfo> shoppingCartInfoList = shoppingCartInfoBiz.getAllByIds(idList); default:
if (shoppingCartInfoList != null && shoppingCartInfoList.size() > 0) { break;
confirmOrderInfoVo.setShoppingCartInfoList(shoppingCartInfoList);
Double amount = shoppingCartInfoList.stream().mapToDouble(e->e.getTotalAmount().doubleValue()).reduce(0, Double::sum);
confirmOrderInfoVo.setTotalAmount(new BigDecimal(amount));
} }
break; });
default: confirmOrderInfoVo.setTotalAmount(new BigDecimal(amount.get()));
break; confirmOrderInfoVo.setNumber(number.get());
} }
confirmOrderInfoVo.setActAmount(confirmOrderInfoVo.getTotalAmount());
confirmOrderInfoVo.setActAmount(confirmOrderInfoVo.getTotalAmount());
Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(DictionaryKey.APP_ORDER, DictionaryKey.SEND_FEE); Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(DictionaryKey.APP_ORDER, DictionaryKey.SEND_FEE);
if (dictionary != null && StringUtils.isBlank(dictionary.getDetail())) { if (dictionary != null && StringUtils.isBlank(dictionary.getDetail())) {
confirmOrderInfoVo.setFee(new BigDecimal(dictionary.getDetail())); confirmOrderInfoVo.setFee(new BigDecimal(dictionary.getDetail()));
} }
try {
List<UserAddress> userAddressList = userAddressBiz.getUserAddress(new UserAddressDto(){{setPage(1); setLimit(Integer.MAX_VALUE);}}).getData().getData();
if (userAddressList != null && userAddressList.size() > 0) {
confirmOrderInfoVo.setUserAddressList(userAddressList);
}
} catch (Exception e) {
log.error("用户地址信息错误: {}", e);
}
try {
List<UserInvoice> userInvoiceList = userInvoiceBiz.getUserInvoiceInfo(new UserInvoiceDto(){{setPage(1); setLimit(Integer.MAX_VALUE);}}).getData().getData();
if (userInvoiceList != null && userInvoiceList.size() > 0) {
confirmOrderInfoVo.setUserInvoiceList(userInvoiceList);
}
} catch (Exception e) {
log.error("用户发票信息错误: {}", e);
}
return ObjectRestResponse.succ(confirmOrderInfoVo); return ObjectRestResponse.succ(confirmOrderInfoVo);
} }
......
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