Commit 3934870b authored by unset's avatar unset

修改支付信息

parent 18cbc9a8
...@@ -89,4 +89,9 @@ public class DictionaryKey { ...@@ -89,4 +89,9 @@ public class DictionaryKey {
* 取消时间缓冲(分钟) * 取消时间缓冲(分钟)
*/ */
public static final String CANCEL_TIME_BUFFER = "CANCEL_TIME_BUFFER"; public static final String CANCEL_TIME_BUFFER = "CANCEL_TIME_BUFFER";
/**
* 运费
*/
public static final String SEND_FEE = "SEND_FEE";
} }
package com.upyuns.platform.rs.website.dto;
import lombok.Data;
/**
* @ClassName : ConfirmOrderDto
* @Description : 确认订单
* @Author : jiaoruizhen
* @Date: 2020-12-16 14:51
*/
@Data
public class ConfirmOrderDto {
/**
* 类型: 1、标准数据,2、影像图库,3、行业应用信息, 4、购物车确认订单
*/
private Integer type;
/**
* 购物车或者商品id, 逗号分隔
* 如果是影像图库,传的是图像ID imageRelationInfo
*/
private String ids;
/**
* 数量
*/
private Integer number;
}
package com.upyuns.platform.rs.website.entity; package com.upyuns.platform.rs.website.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
...@@ -143,6 +144,11 @@ public class IndustryApplicationInfo implements Serializable { ...@@ -143,6 +144,11 @@ public class IndustryApplicationInfo implements Serializable {
*/ */
private Integer customized; private Integer customized;
/**
* 价格信息
*/
private BigDecimal price;
@Transient @Transient
private String firstTitle; private String firstTitle;
......
...@@ -9,7 +9,8 @@ package com.upyuns.platform.rs.website.type; ...@@ -9,7 +9,8 @@ package com.upyuns.platform.rs.website.type;
public enum OrderTypeEnum { public enum OrderTypeEnum {
STANDARD_DATA(1, "标准数据"), STANDARD_DATA(1, "标准数据"),
INDUSTRY_INFO(3, "行业应用"), INDUSTRY_INFO(3, "行业应用"),
IMAGE_STORAGE(2, "影像图库"); IMAGE_STORAGE(2, "影像图库"),
SHOPPING_CART_INFO(4, "购物车下单");
private Integer type; private Integer type;
private String msg; private String msg;
......
package com.upyuns.platform.rs.website.vo;
import com.upyuns.platform.rs.website.entity.*;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @ClassName : ConfirmOrderInfoVo
* @Description : 确认订单
* @Author : jiaoruizhen
* @Date: 2020-12-16 14:57
*/
@Data
public class ConfirmOrderInfoVo {
/**
* 配送方式:1、线上配送,2、快递配送
*/
private Integer sendType;
/**
* 用户地址列表
*/
private List<UserAddress> userAddressList;
/**
* 用户发票列表
*/
private List<UserInvoice> userInvoiceList;
/**
* 订单商品数量
*/
private Integer number;
/**
* 总金额
*/
private BigDecimal totalAmount;
/**
* 实付金额
*/
private BigDecimal actAmount;
/**
* 运费
*/
private BigDecimal fee;
/**
* 类型: 1、标准数据,2、影像图库,3、行业应用信息, 4、购物车确认订单
*/
private Integer type;
/**
* 购物车或者商品id, 逗号分隔
*/
String ids;
/**
* 购物车信息列表
*/
List<ShoppingCartInfo> shoppingCartInfoList;
/**
* 行业应用信息列表
*/
List<IndustryApplicationInfo> industryApplicationInfoList;
/**
* 影像图库信息列表
*/
List<ImageImgStorage> imageImgStorageList;
}
package com.upyuns.platform.rs.website.vo;
import lombok.Data;
/**
* @ClassName : ItemInfoVo
* @Description : 商品信息
* @Author : jiaoruizhen
* @Date: 2020-12-16 15:09
*/
@Data
public class ItemInfoVo {
private String name;
/**
* 商品参数
*/
private String detailJson;
private String
}
...@@ -17,7 +17,9 @@ import com.upyuns.platform.rs.website.mapper.ImageImgStorageMapper; ...@@ -17,7 +17,9 @@ import com.upyuns.platform.rs.website.mapper.ImageImgStorageMapper;
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 java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* 影像图库 * 影像图库
...@@ -118,7 +120,7 @@ public class ImageImgStorageBiz extends BaseBiz<ImageImgStorageMapper,ImageImgSt ...@@ -118,7 +120,7 @@ public class ImageImgStorageBiz extends BaseBiz<ImageImgStorageMapper,ImageImgSt
* @param id * @param id
* @return * @return
*/ */
public ObjectRestResponse getDetail(Integer id) { public ObjectRestResponse<ImageImgStorage> getDetail(Integer id) {
if (id == null) { if (id == null) {
return ObjectRestResponse.paramIsEmpty(); return ObjectRestResponse.paramIsEmpty();
} }
...@@ -147,4 +149,14 @@ public class ImageImgStorageBiz extends BaseBiz<ImageImgStorageMapper,ImageImgSt ...@@ -147,4 +149,14 @@ public class ImageImgStorageBiz extends BaseBiz<ImageImgStorageMapper,ImageImgSt
return ObjectRestResponse.succ(mapper.selectByExample(example)); return ObjectRestResponse.succ(mapper.selectByExample(example));
} }
/**
* 根据ID List 获取所有图库信息
* @param idList
* @return
*/
public List<ImageImgStorage> getAllByIds(Set<Integer> idList) {
Example example = new Example(ImageImgStorage.class);
example.createCriteria().andIn("id", idList);
return mapper.selectByExample(example);
}
} }
\ No newline at end of file
...@@ -21,6 +21,7 @@ import tk.mybatis.mapper.entity.Example; ...@@ -21,6 +21,7 @@ import tk.mybatis.mapper.entity.Example;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -109,4 +110,16 @@ public class IndustryApplicationInfoBiz extends BaseBiz<IndustryApplicationInfoM ...@@ -109,4 +110,16 @@ public class IndustryApplicationInfoBiz extends BaseBiz<IndustryApplicationInfoM
} }
return ObjectRestResponse.succ(list); return ObjectRestResponse.succ(list);
} }
/**
* 根据ID List获取行业应用信息
* @param idList
* @return
*/
public List<IndustryApplicationInfo> getAllByIds(Set<Integer> idList) {
Example example = new Example(IndustryApplicationInfo.class);
example.createCriteria().andIn("id", idList);
return mapper.selectByExample(example);
}
} }
\ No newline at end of file
...@@ -26,6 +26,7 @@ import java.math.BigDecimal; ...@@ -26,6 +26,7 @@ import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* 购物车 * 购物车
...@@ -35,7 +36,7 @@ import java.util.List; ...@@ -35,7 +36,7 @@ import java.util.List;
* @date 2020-12-03 13:29:23 * @date 2020-12-03 13:29:23
*/ */
@Service @Service
public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,ShoppingCartInfo> { public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper, ShoppingCartInfo> {
@Autowired @Autowired
OrderInfoBiz orderInfoBiz; OrderInfoBiz orderInfoBiz;
...@@ -57,6 +58,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping ...@@ -57,6 +58,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping
/** /**
* 添加购物车 * 添加购物车
*
* @param shoppingCartInfo * @param shoppingCartInfo
* @return * @return
*/ */
...@@ -76,6 +78,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping ...@@ -76,6 +78,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping
/** /**
* 获取用户所有购物车商品 * 获取用户所有购物车商品
*
* @param orderInfoDto * @param orderInfoDto
* @return * @return
*/ */
...@@ -94,6 +97,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping ...@@ -94,6 +97,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping
/** /**
* 前端用户添加购物车 * 前端用户添加购物车
*
* @param orderInfoDto 商品详情ID * @param orderInfoDto 商品详情ID
* @return * @return
*/ */
...@@ -188,6 +192,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping ...@@ -188,6 +192,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping
/** /**
* 购物车转为订单 * 购物车转为订单
*
* @param cartOrderDto * @param cartOrderDto
* @return * @return
*/ */
...@@ -215,11 +220,12 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping ...@@ -215,11 +220,12 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping
/** /**
* 购物车转订单实现 * 购物车转订单实现
*
* @param cartInfoList * @param cartInfoList
*/ */
private void convertToOrderInfo(List<ShoppingCartInfo> cartInfoList, CartOrderDto cartOrderDto, AppUserDTO appUserDTO) { private void convertToOrderInfo(List<ShoppingCartInfo> cartInfoList, CartOrderDto cartOrderDto, AppUserDTO appUserDTO) {
//总金额 //总金额
double amount = cartInfoList.parallelStream().mapToDouble(shoppingCartInfo ->shoppingCartInfo.getTotalAmount().doubleValue()).sum(); double amount = cartInfoList.parallelStream().mapToDouble(shoppingCartInfo -> shoppingCartInfo.getTotalAmount().doubleValue()).sum();
//总数量 //总数量
Integer totalNumber = cartInfoList.parallelStream().mapToInt(ShoppingCartInfo::getNumber).sum(); Integer totalNumber = cartInfoList.parallelStream().mapToInt(ShoppingCartInfo::getNumber).sum();
OrderInfo orderInfo = new OrderInfo(); OrderInfo orderInfo = new OrderInfo();
...@@ -248,6 +254,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping ...@@ -248,6 +254,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping
/** /**
* 删除购物车 * 删除购物车
*
* @param id * @param id
* @return * @return
*/ */
...@@ -266,6 +273,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping ...@@ -266,6 +273,7 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping
/** /**
* 批量删除 * 批量删除
*
* @param ids * @param ids
* @return * @return
*/ */
...@@ -285,4 +293,15 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping ...@@ -285,4 +293,15 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
/**
* 根据ID List 查询所有购物车信息
* @param idList
* @return
*/
public List<ShoppingCartInfo> getAllByIds(Set<Integer> idList) {
Example example = new Example(ShoppingCartInfo.class);
example.createCriteria().andIn("id", idList);
return mapper.selectByExample(example);
}
} }
\ No newline at end of file
package com.upyuns.platform.rs.website.controller.web; package com.upyuns.platform.rs.website.controller.web;
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.entity.OrderInfo; import com.upyuns.platform.rs.website.entity.OrderInfo;
import com.upyuns.platform.rs.website.service.ConfirmOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -10,4 +16,13 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -10,4 +16,13 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("orderInfo/web") @RequestMapping("orderInfo/web")
public class OrderInfoWebController extends BaseController<OrderInfoBiz,OrderInfo> { public class OrderInfoWebController extends BaseController<OrderInfoBiz,OrderInfo> {
@Autowired
ConfirmOrderService confirmOrderService;
@PostMapping(value = "confirmOrder")
public ObjectRestResponse confirmOrder(@RequestBody ConfirmOrderDto confirmOrderDto) {
return confirmOrderService.confirmOrderInfo(confirmOrderDto);
}
} }
\ No newline at end of file
package com.upyuns.platform.rs.website.service;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
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.biz.ImageImgStorageBiz;
import com.upyuns.platform.rs.website.biz.ImageInfoRelationBiz;
import com.upyuns.platform.rs.website.biz.IndustryApplicationInfoBiz;
import com.upyuns.platform.rs.website.biz.ShoppingCartInfoBiz;
import com.upyuns.platform.rs.website.dto.ConfirmOrderDto;
import com.upyuns.platform.rs.website.entity.ImageImgStorage;
import com.upyuns.platform.rs.website.entity.ImageInfoRelation;
import com.upyuns.platform.rs.website.entity.IndustryApplicationInfo;
import com.upyuns.platform.rs.website.entity.ShoppingCartInfo;
import com.upyuns.platform.rs.website.type.OrderTypeEnum;
import com.upyuns.platform.rs.website.vo.ConfirmOrderInfoVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @ClassName : ConfirmOrderService
* @Description : 确认订单信息
* @Author : jiaoruizhen
* @Date: 2020-12-16 14:50
*/
@Service
@Slf4j
public class ConfirmOrderService {
@Autowired
IndustryApplicationInfoBiz industryApplicationInfoBiz;
@Autowired
ImageImgStorageBiz imageImgStorageBiz;
@Autowired
ShoppingCartInfoBiz shoppingCartInfoBiz;
@Autowired
ImageInfoRelationBiz imageInfoRelationBiz;
@Autowired
ThirdFeign thirdFeign;
/**
* 确认订单
* @param confirmOrderDto
* @return
*/
public ObjectRestResponse confirmOrderInfo(ConfirmOrderDto confirmOrderDto) {
if (confirmOrderDto == null || confirmOrderDto.getType() == null || StringUtils.isBlank(confirmOrderDto.getIds())) {
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.setType(confirmOrderDto.getType());
confirmOrderInfoVo.setIds(confirmOrderDto.getIds());
confirmOrderInfoVo.setNumber(confirmOrderDto.getNumber());
switch (OrderTypeEnum.getByCode(confirmOrderDto.getType())) {
//标准数据
case STANDARD_DATA:
break;
//行业应用
case INDUSTRY_INFO:
List<IndustryApplicationInfo> industryApplicationInfoList = industryApplicationInfoBiz.getAllByIds(idList);
if (industryApplicationInfoList != null && industryApplicationInfoList.size() > 0) {
confirmOrderInfoVo.setIndustryApplicationInfoList(industryApplicationInfoList);
//总数量
Integer totalNumber = confirmOrderInfoVo.getNumber();
BigDecimal totalAmount = industryApplicationInfoList.get(0).getPrice().multiply(new BigDecimal(totalNumber));
confirmOrderInfoVo.setTotalAmount(totalAmount);
}
break;
//影像图库
case IMAGE_STORAGE:
List<ImageInfoRelation> imageInfoRelationList = imageInfoRelationBiz.getAllByIds(confirmOrderDto.getIds());
if (imageInfoRelationList != null && imageInfoRelationList.size() > 0) {
Map<Integer, List<ImageInfoRelation>> map = imageInfoRelationList.stream().collect(Collectors.groupingBy(ImageInfoRelation::getRelationId));
List<ImageImgStorage> imageImgStorageList = imageImgStorageBiz.getAllByIds(imageInfoRelationList.stream().map(ImageInfoRelation::getRelationId).collect(Collectors.toSet()));
if (imageImgStorageList != null && imageImgStorageList.size() > 0) {
imageImgStorageList.parallelStream().forEach(imageImgStorage -> {
if (map != null && map.get(imageImgStorage.getId()) != null) {
imageImgStorage.setImageInfoRelationList(map.get(imageImgStorage.getId()));
}
});
confirmOrderInfoVo.setImageImgStorageList(imageImgStorageList);
//总数量
Integer totalNumber = confirmOrderInfoVo.getNumber();
BigDecimal totalAmount = imageInfoRelationList.get(0).getPrice().multiply(new BigDecimal(totalNumber));
confirmOrderInfoVo.setTotalAmount(totalAmount);
}
}
break;
//购物车
case SHOPPING_CART_INFO:
List<ShoppingCartInfo> shoppingCartInfoList = shoppingCartInfoBiz.getAllByIds(idList);
if (shoppingCartInfoList != null && shoppingCartInfoList.size() > 0) {
confirmOrderInfoVo.setShoppingCartInfoList(shoppingCartInfoList);
Double amount = shoppingCartInfoList.stream().mapToDouble(e->e.getTotalAmount().doubleValue()).reduce(0, Double::sum);
confirmOrderInfoVo.setTotalAmount(new BigDecimal(amount));
}
break;
default:
break;
}
confirmOrderInfoVo.setActAmount(confirmOrderInfoVo.getTotalAmount());
Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(DictionaryKey.APP_ORDER, DictionaryKey.SEND_FEE);
if (dictionary != null && StringUtils.isBlank(dictionary.getDetail())) {
confirmOrderInfoVo.setFee(new BigDecimal(dictionary.getDetail()));
}
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