format code
This commit is contained in:
@@ -28,7 +28,6 @@ import com.peanut.common.utils.PageUtils;
|
|||||||
import com.peanut.common.utils.R;
|
import com.peanut.common.utils.R;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单表
|
* 订单表
|
||||||
*
|
*
|
||||||
@@ -61,17 +60,17 @@ public class BuyOrderController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserEbookBuyService userEbookBuyService;
|
private UserEbookBuyService userEbookBuyService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private BookService bookService;
|
private BookService bookService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private BookShelfService bookShelfService;
|
private BookShelfService bookShelfService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserRecordService userRecordService;
|
private UserRecordService userRecordService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserFollowUpService userFollowUpService;
|
private UserFollowUpService userFollowUpService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private PayWechatOrderService payWechatOrderService;
|
private PayWechatOrderService payWechatOrderService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private PayZfbOrderService payZfbOrderService;
|
private PayZfbOrderService payZfbOrderService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单状态 - 待支付
|
* 订单状态 - 待支付
|
||||||
@@ -85,6 +84,31 @@ public class BuyOrderController {
|
|||||||
* 订单状态 - 待收货
|
* 订单状态 - 待收货
|
||||||
*/
|
*/
|
||||||
private static final String ORDER_STATUS_TO_BE_RECEIVED = "2";
|
private static final String ORDER_STATUS_TO_BE_RECEIVED = "2";
|
||||||
|
/**
|
||||||
|
* 支付方式 - 支付宝
|
||||||
|
*/
|
||||||
|
private static final String PAYMENT_METHOD_ALI_PAY = "1";
|
||||||
|
/**
|
||||||
|
* 支付方式
|
||||||
|
*/
|
||||||
|
private static final String PAYMENT_METHOD_WECHAT_PAY = "2";
|
||||||
|
/**
|
||||||
|
* 支付方式
|
||||||
|
*/
|
||||||
|
private static final String PAYMENT_METHOD_IOS = "3";
|
||||||
|
/**
|
||||||
|
* 支付方式
|
||||||
|
*/
|
||||||
|
private static final String PAYMENT_METHOD_VIRTUAL = "4";
|
||||||
|
/**
|
||||||
|
* 购买方式 - 直接购买
|
||||||
|
*/
|
||||||
|
private static final String BUY_TYPE_REDIRECT = "0";
|
||||||
|
/**
|
||||||
|
* 购买方式 - 购物车
|
||||||
|
*/
|
||||||
|
private static final String BUY_TYPE_CART = "1";
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ShopProudictBookService shopProudictBookService;
|
private ShopProudictBookService shopProudictBookService;
|
||||||
@@ -93,10 +117,9 @@ public class BuyOrderController {
|
|||||||
* 列表
|
* 列表
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/list")
|
@RequestMapping("/list")
|
||||||
// @RequiresPermissions("book:buyorder:list")
|
|
||||||
public R list(@RequestParam Map<String, Object> params) throws Exception {
|
public R list(@RequestParam Map<String, Object> params) throws Exception {
|
||||||
|
|
||||||
if("all".equals(params.get("orderStatus"))){
|
if ("all".equals(params.get("orderStatus"))) {
|
||||||
params.remove("orderStatus");
|
params.remove("orderStatus");
|
||||||
}
|
}
|
||||||
PageUtils page = buyOrderService.queryPage(params);
|
PageUtils page = buyOrderService.queryPage(params);
|
||||||
@@ -105,17 +128,15 @@ public class BuyOrderController {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @param params
|
* @param params
|
||||||
* @return 听书未购买页面展示
|
* @return 听书未购买页面展示
|
||||||
* (销量最多的书,最先放最前面展示。最新上线的书,预售的书,放最前面展示
|
* (销量最多的书,最先放最前面展示。最新上线的书,预售的书,放最前面展示
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/lists")
|
@RequestMapping("/lists")
|
||||||
// @RequiresPermissions("book:buyorder:list")
|
|
||||||
public R lists(@RequestParam Map<String, Object> params) throws Exception {
|
public R lists(@RequestParam Map<String, Object> params) throws Exception {
|
||||||
|
|
||||||
if("all".equals(params.get("orderStatus"))){
|
if ("all".equals(params.get("orderStatus"))) {
|
||||||
params.remove("orderStatus");
|
params.remove("orderStatus");
|
||||||
}
|
}
|
||||||
PageUtils page = buyOrderService.queryPages(params);
|
PageUtils page = buyOrderService.queryPages(params);
|
||||||
@@ -123,17 +144,12 @@ public class BuyOrderController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 信息
|
* 信息
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/info/{orderId}")
|
@RequestMapping("/info/{orderId}")
|
||||||
// @RequiresPermissions("book:buyorder:info")
|
public R info(@PathVariable("orderId") Integer orderId) {
|
||||||
public R info(@PathVariable("orderId") Integer orderId){
|
BuyOrderEntity buyOrder = buyOrderService.getById(orderId);
|
||||||
BuyOrderEntity buyOrder = buyOrderService.getById(orderId);
|
|
||||||
|
|
||||||
return R.ok().put("buyOrder", buyOrder);
|
return R.ok().put("buyOrder", buyOrder);
|
||||||
}
|
}
|
||||||
@@ -142,424 +158,144 @@ public class BuyOrderController {
|
|||||||
/**
|
/**
|
||||||
* 下单
|
* 下单
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/buysave")
|
@RequestMapping("/buySave")
|
||||||
@Transactional
|
@Transactional
|
||||||
public R buysave(@RequestBody BuyOrderEntity buyOrder){
|
public R buySave(@RequestBody BuyOrderEntity buyOrder) {
|
||||||
BigDecimal realMoney = new BigDecimal(0);
|
BigDecimal realMoney;
|
||||||
Lock l = new ReentrantLock();
|
// 根据订单获取订单详情
|
||||||
l.lock();
|
List<BuyOrderDetailEntity> products = buyOrder.getProducts();
|
||||||
try {
|
// ?
|
||||||
// 根据订单获取订单详情
|
BigDecimal totalPrice = new BigDecimal(0);
|
||||||
List<BuyOrderDetailEntity> products = buyOrder.getProducts();
|
List<BuyOrderDetailEntity> list = new ArrayList<>();
|
||||||
BigDecimal bigDecimal1 = new BigDecimal(0);
|
// 遍历商品 查询价格
|
||||||
ArrayList<BuyOrderDetailEntity> list = new ArrayList<>();
|
for (BuyOrderDetailEntity buyOrderDetail : products) {
|
||||||
|
BuyOrderDetailEntity buyOrderDetailEntity = new BuyOrderDetailEntity();
|
||||||
// 遍历商品 查询价格
|
Integer productId = buyOrderDetail.getProductId();
|
||||||
for (BuyOrderDetailEntity buyOrderDetail : products) {
|
ShopProductEntity product = shopProductService.getById(productId);
|
||||||
BuyOrderDetailEntity buyOrderDetailEntity = new BuyOrderDetailEntity();
|
BigDecimal activityPrice = product.getActivityPrice();
|
||||||
Integer productId = buyOrderDetail.getProductId();
|
// 实际执行价格
|
||||||
ShopProductEntity product = shopProductService.getById(productId);
|
BigDecimal price;
|
||||||
BigDecimal activityPrice = product.getActivityPrice();
|
if (activityPrice == null || activityPrice.equals(BigDecimal.ZERO)) {
|
||||||
BigDecimal big = new BigDecimal(0);
|
price = product.getPrice();
|
||||||
BigDecimal price=null;
|
} else {
|
||||||
|
price = product.getActivityPrice();
|
||||||
//activityPrice等于 0,则原价
|
|
||||||
if (activityPrice.equals(big)||activityPrice==null) {
|
|
||||||
price = product.getPrice();
|
|
||||||
}else {
|
|
||||||
price = product.getActivityPrice();
|
|
||||||
}
|
|
||||||
|
|
||||||
Integer quantity = buyOrderDetail.getQuantity();
|
|
||||||
BigDecimal bigDecimal = new BigDecimal(price.doubleValue() * quantity);
|
|
||||||
System.out.println("bigDecimal=================bigDecimal======================"+bigDecimal);
|
|
||||||
bigDecimal1 = bigDecimal1.add(bigDecimal);
|
|
||||||
|
|
||||||
if (product.getProductStock() - buyOrderDetail.getQuantity() < 0 ){
|
|
||||||
return R.error(500,"库存不足");
|
|
||||||
}
|
|
||||||
// 改写 商品库存
|
|
||||||
product.setProductStock(product.getProductStock() - buyOrderDetail.getQuantity());
|
|
||||||
product.setSumSales(product.getSumSales() + buyOrderDetail.getQuantity());
|
|
||||||
shopProductService.updateById(product);
|
|
||||||
|
|
||||||
BeanUtils.copyProperties(buyOrderDetail,buyOrderDetailEntity);
|
|
||||||
buyOrderDetailEntity.setProductName(product.getProductName());
|
|
||||||
buyOrderDetailEntity.setProductPrice(product.getPrice());
|
|
||||||
buyOrderDetailEntity.setAddressId(buyOrder.getAddressId());
|
|
||||||
buyOrderDetailEntity.setProductUrl(product.getProductImages());
|
|
||||||
buyOrderDetailEntity.setOrderStatus("0");
|
|
||||||
list.add(buyOrderDetailEntity);
|
|
||||||
}
|
}
|
||||||
|
int quantity = buyOrderDetail.getQuantity();
|
||||||
|
totalPrice = totalPrice.add(price.multiply(BigDecimal.valueOf(quantity)));
|
||||||
|
|
||||||
Integer couponId = buyOrder.getCouponId();
|
if (product.getProductStock() - quantity < 0) {
|
||||||
|
return R.error(500, "库存不足");
|
||||||
if (couponId != null) {
|
|
||||||
CouponHistoryEntity byId = couponHistoryService.getById(couponId);
|
|
||||||
CouponEntity coupon = couponService.getById(byId.getCouponId());
|
|
||||||
BigDecimal amount = coupon.getCouponAmount();
|
|
||||||
bigDecimal1 = bigDecimal1.subtract(amount);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
// 更新商品库存
|
||||||
|
product.setProductStock(product.getProductStock() - quantity);
|
||||||
|
product.setSumSales(product.getSumSales() + quantity);
|
||||||
|
shopProductService.updateById(product);
|
||||||
|
|
||||||
if (buyOrder.getShippingMoney() != null) {
|
BeanUtils.copyProperties(buyOrderDetail, buyOrderDetailEntity);
|
||||||
bigDecimal1 = bigDecimal1.add(buyOrder.getShippingMoney());
|
buyOrderDetailEntity.setProductName(product.getProductName());
|
||||||
}
|
buyOrderDetailEntity.setProductPrice(product.getPrice());
|
||||||
|
buyOrderDetailEntity.setAddressId(buyOrder.getAddressId());
|
||||||
// 减去优惠券金额
|
buyOrderDetailEntity.setProductUrl(product.getProductImages());
|
||||||
realMoney = buyOrder.getRealMoney();
|
buyOrderDetailEntity.setOrderStatus(ORDER_STATUS_TO_BE_PAID);
|
||||||
if (bigDecimal1.compareTo(realMoney) == 0) {
|
list.add(buyOrderDetailEntity);
|
||||||
//特定格式的时间ID
|
|
||||||
String timeId = IdWorker.getTimeId().substring(0,32);
|
|
||||||
buyOrder.setOrderSn(timeId);
|
|
||||||
if("4".equals(buyOrder.getPaymentMethod())){
|
|
||||||
buyOrder.setOrderStatus(ORDER_STATUS_TO_BE_SHIPPED);
|
|
||||||
}
|
|
||||||
buyOrder.setPaymentDate(new Date());
|
|
||||||
buyOrderService.save(buyOrder);
|
|
||||||
|
|
||||||
for (BuyOrderDetailEntity buyOrderDetailEntity : list) {
|
|
||||||
buyOrderDetailEntity.setOrderId(buyOrder.getOrderId());
|
|
||||||
buyOrderDetailEntity.setUserId(buyOrder.getUserId());
|
|
||||||
|
|
||||||
// 判断结算状态 下单 位置 0- 商品页直接下单 1- 购物车结算
|
|
||||||
String buyType = buyOrder.getBuyType();
|
|
||||||
|
|
||||||
if (buyType.equals("1")) {
|
|
||||||
// 更改购物车 状态
|
|
||||||
List<OrderCartEntity> list1 = orderCartService.getBaseMapper().selectList(new QueryWrapper<OrderCartEntity>()
|
|
||||||
.eq("user_id", buyOrder.getUserId()).eq("product_id", buyOrderDetailEntity.getProductId()));
|
|
||||||
if (list1.size() > 0){
|
|
||||||
List<Integer> collect = list1.stream().map(orderCartEntity -> {
|
|
||||||
Integer cartId = orderCartEntity.getCartId();
|
|
||||||
return cartId;
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
|
|
||||||
orderCartService.removeByIds(collect);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
buyOrderDetailService.saveBatch(list);
|
|
||||||
if(couponId!=null){
|
|
||||||
//更改优惠券状态
|
|
||||||
CouponHistoryEntity one = couponHistoryService.getById(couponId);
|
|
||||||
one.setUseStatus(1);
|
|
||||||
one.setUseTime(new Date());
|
|
||||||
one.setOrderId(Long.valueOf(buyOrder.getOrderId()));
|
|
||||||
one.setOrderSn(buyOrder.getOrderSn());
|
|
||||||
couponHistoryService.updateById(one);
|
|
||||||
}
|
|
||||||
if("4".equals(buyOrder.getPaymentMethod())){
|
|
||||||
MyUserEntity user = this.myUserService.getById(buyOrder.getUserId());
|
|
||||||
if(user.getPeanutCoin().compareTo(realMoney) >= 0){
|
|
||||||
user.setPeanutCoin(user.getPeanutCoin().subtract(realMoney));
|
|
||||||
this.myUserService.updateById(user);
|
|
||||||
// 添加消费信息
|
|
||||||
TransactionDetailsEntity transactionDetailsEntity = new TransactionDetailsEntity();
|
|
||||||
transactionDetailsEntity.setRemark("购买健康超市用品!订单编号为《 "+ buyOrder.getOrderSn() + "》");
|
|
||||||
transactionDetailsEntity.setUserId(user.getId());
|
|
||||||
transactionDetailsEntity.setUserName(user.getNickname());
|
|
||||||
transactionDetailsEntity.setChangeAmount(realMoney.negate());
|
|
||||||
transactionDetailsEntity.setUserBalance(user.getPeanutCoin());
|
|
||||||
transactionDetailsEntity.setTel(user.getTel());
|
|
||||||
transactionDetailsEntity.setOrderType("购买健康超市用品!");
|
|
||||||
transactionDetailsService.save(transactionDetailsEntity);
|
|
||||||
|
|
||||||
//购买成功后,添加书到个人表中
|
|
||||||
List<Integer> pros = products.stream().map(BuyOrderDetailEntity::getProductId).collect(Collectors.toList());
|
|
||||||
for (Integer s : pros){
|
|
||||||
List<Integer> collect = shopProudictBookService.getBaseMapper().selectList(new LambdaQueryWrapper<ShopProudictBookEntity>()
|
|
||||||
.eq(ShopProudictBookEntity::getProudictId, s)
|
|
||||||
.eq(ShopProudictBookEntity::getDelFlag, 0)).stream().map(ShopProudictBookEntity::getBookId).collect(Collectors.toList());
|
|
||||||
userEbookBuyService.addBookForUser(buyOrder.getUserId(),collect);
|
|
||||||
}
|
|
||||||
|
|
||||||
}else{
|
|
||||||
return R.error("余额不足!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch (Exception e){
|
|
||||||
e.printStackTrace();
|
|
||||||
}finally {
|
|
||||||
l.unlock();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return R.ok().put("orderSn",buyOrder.getOrderSn()).put("money",realMoney);
|
Integer couponId = buyOrder.getCouponId();
|
||||||
|
|
||||||
|
if (couponId != null) {
|
||||||
|
CouponHistoryEntity couponHistory = couponHistoryService.getById(couponId);
|
||||||
|
CouponEntity coupon = couponService.getById(couponHistory.getCouponId());
|
||||||
|
BigDecimal amount = coupon.getCouponAmount();
|
||||||
|
totalPrice = totalPrice.subtract(amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (buyOrder.getShippingMoney() != null) {
|
||||||
|
totalPrice = totalPrice.add(buyOrder.getShippingMoney());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 减去优惠券金额
|
||||||
|
realMoney = buyOrder.getRealMoney();
|
||||||
|
if (totalPrice.compareTo(realMoney) == 0) {
|
||||||
|
//特定格式的时间ID
|
||||||
|
String timeId = IdWorker.getTimeId().substring(0, 32);
|
||||||
|
buyOrder.setOrderSn(timeId);
|
||||||
|
if (PAYMENT_METHOD_VIRTUAL.equals(buyOrder.getPaymentMethod())) {
|
||||||
|
buyOrder.setOrderStatus(ORDER_STATUS_TO_BE_SHIPPED);
|
||||||
|
}
|
||||||
|
buyOrder.setPaymentDate(new Date());
|
||||||
|
buyOrderService.save(buyOrder);
|
||||||
|
|
||||||
|
for (BuyOrderDetailEntity buyOrderDetailEntity : list) {
|
||||||
|
buyOrderDetailEntity.setOrderId(buyOrder.getOrderId());
|
||||||
|
buyOrderDetailEntity.setUserId(buyOrder.getUserId());
|
||||||
|
// 判断结算状态
|
||||||
|
String buyType = buyOrder.getBuyType();
|
||||||
|
if (buyType.equals(BUY_TYPE_CART)) {
|
||||||
|
// 更改购物车 状态
|
||||||
|
List<OrderCartEntity> orderCartList = orderCartService.getBaseMapper().selectList(new QueryWrapper<OrderCartEntity>()
|
||||||
|
.eq("user_id", buyOrder.getUserId()).eq("product_id", buyOrderDetailEntity.getProductId()));
|
||||||
|
if (orderCartList.size() > 0) {
|
||||||
|
List<Integer> collect = orderCartList.stream().map(orderCartEntity -> {
|
||||||
|
Integer cartId = orderCartEntity.getCartId();
|
||||||
|
return cartId;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
orderCartService.removeByIds(collect);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
buyOrderDetailService.saveBatch(list);
|
||||||
|
if (couponId != null) {
|
||||||
|
//更改优惠券状态
|
||||||
|
CouponHistoryEntity one = couponHistoryService.getById(couponId);
|
||||||
|
one.setUseStatus(1);
|
||||||
|
one.setUseTime(new Date());
|
||||||
|
one.setOrderId(Long.valueOf(buyOrder.getOrderId()));
|
||||||
|
one.setOrderSn(buyOrder.getOrderSn());
|
||||||
|
couponHistoryService.updateById(one);
|
||||||
|
}
|
||||||
|
if ("4".equals(buyOrder.getPaymentMethod())) {
|
||||||
|
MyUserEntity user = this.myUserService.getById(buyOrder.getUserId());
|
||||||
|
if (user.getPeanutCoin().compareTo(realMoney) >= 0) {
|
||||||
|
user.setPeanutCoin(user.getPeanutCoin().subtract(realMoney));
|
||||||
|
this.myUserService.updateById(user);
|
||||||
|
// 添加消费信息
|
||||||
|
TransactionDetailsEntity transactionDetailsEntity = new TransactionDetailsEntity();
|
||||||
|
transactionDetailsEntity.setRemark("购买健康超市用品!订单编号为《 " + buyOrder.getOrderSn() + "》");
|
||||||
|
transactionDetailsEntity.setUserId(user.getId());
|
||||||
|
transactionDetailsEntity.setUserName(user.getNickname());
|
||||||
|
transactionDetailsEntity.setChangeAmount(realMoney.negate());
|
||||||
|
transactionDetailsEntity.setUserBalance(user.getPeanutCoin());
|
||||||
|
transactionDetailsEntity.setTel(user.getTel());
|
||||||
|
transactionDetailsEntity.setOrderType("购买健康超市用品!");
|
||||||
|
transactionDetailsService.save(transactionDetailsEntity);
|
||||||
|
|
||||||
|
//购买成功后,添加书到个人表中
|
||||||
|
List<Integer> pros = products.stream().map(BuyOrderDetailEntity::getProductId).collect(Collectors.toList());
|
||||||
|
for (Integer s : pros) {
|
||||||
|
List<Integer> collect = shopProudictBookService.getBaseMapper().selectList(new LambdaQueryWrapper<ShopProudictBookEntity>()
|
||||||
|
.eq(ShopProudictBookEntity::getProudictId, s)
|
||||||
|
.eq(ShopProudictBookEntity::getDelFlag, 0)).stream().map(ShopProudictBookEntity::getBookId).collect(Collectors.toList());
|
||||||
|
userEbookBuyService.addBookForUser(buyOrder.getUserId(), collect);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return R.error("余额不足!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return R.ok().put("orderSn", buyOrder.getOrderSn()).put("money", realMoney);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改购买书籍(赠送电子书,加鉴权)
|
* 修改
|
||||||
* @param buyOrder 订单表
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/buysave1")
|
|
||||||
@Transactional
|
|
||||||
public R buysave1(@RequestBody BuyOrderEntity buyOrder) {
|
|
||||||
|
|
||||||
BigDecimal realMoney = new BigDecimal(0);
|
|
||||||
|
|
||||||
Lock l = new ReentrantLock();
|
|
||||||
l.lock();
|
|
||||||
try {
|
|
||||||
|
|
||||||
List<BuyOrderDetailEntity> products = buyOrder.getProducts();
|
|
||||||
|
|
||||||
|
|
||||||
BigDecimal bigDecimal1 = new BigDecimal(0);
|
|
||||||
|
|
||||||
ArrayList<BuyOrderDetailEntity> list = new ArrayList<>();
|
|
||||||
|
|
||||||
// 遍历商品 查询价格
|
|
||||||
for (BuyOrderDetailEntity buyOrderDetail : products) {
|
|
||||||
BuyOrderDetailEntity buyOrderDetailEntity = new BuyOrderDetailEntity();
|
|
||||||
Integer productId = buyOrderDetail.getProductId();
|
|
||||||
ShopProductEntity product = shopProductService.getById(productId);
|
|
||||||
// BigDecimal price = product.getPrice();
|
|
||||||
Integer quantity = buyOrderDetail.getQuantity();
|
|
||||||
BigDecimal activityPrice = product.getActivityPrice();
|
|
||||||
BigDecimal big = new BigDecimal(0);
|
|
||||||
BigDecimal price=null;
|
|
||||||
//activityPrice等于0,则原价
|
|
||||||
if (activityPrice == big) {
|
|
||||||
price = product.getPrice();
|
|
||||||
|
|
||||||
}else {
|
|
||||||
price = product.getActivityPrice();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//价格*数量 = 单价*购买数量赋值给bigDecimal1
|
|
||||||
BigDecimal bigDecimal = new BigDecimal(price.doubleValue() * quantity);
|
|
||||||
System.out.println("bigDecimal========bigDecimal=========bigDecimal======================"+bigDecimal);
|
|
||||||
bigDecimal1 = bigDecimal1.add(bigDecimal);
|
|
||||||
|
|
||||||
if (product.getProductStock() - buyOrderDetail.getQuantity() < 0) {
|
|
||||||
return R.error(500, "库存不足");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 改写 商品库存
|
|
||||||
product.setProductStock(product.getProductStock() - buyOrderDetail.getQuantity());
|
|
||||||
product.setSumSales(product.getSumSales() + buyOrderDetail.getQuantity());
|
|
||||||
shopProductService.updateById(product);
|
|
||||||
//buyOrderDetail 对象中的属性值复制到 buyOrderDetailEntity 对象中的属性值中
|
|
||||||
BeanUtils.copyProperties(buyOrderDetail, buyOrderDetailEntity);
|
|
||||||
buyOrderDetailEntity.setProductName(product.getProductName());
|
|
||||||
buyOrderDetailEntity.setProductPrice(product.getPrice());
|
|
||||||
buyOrderDetailEntity.setAddressId(buyOrder.getAddressId());
|
|
||||||
buyOrderDetailEntity.setProductUrl(product.getProductImages());
|
|
||||||
buyOrderDetailEntity.setOrderStatus("0");
|
|
||||||
list.add(buyOrderDetailEntity);
|
|
||||||
}
|
|
||||||
//优惠券Id couponId
|
|
||||||
Integer couponId = buyOrder.getCouponId();
|
|
||||||
|
|
||||||
if (couponId != null) {
|
|
||||||
CouponHistoryEntity byId = couponHistoryService.getById(couponId);
|
|
||||||
CouponEntity coupon = couponService.getById(byId.getCouponId());
|
|
||||||
BigDecimal amount = coupon.getCouponAmount();
|
|
||||||
bigDecimal1 = bigDecimal1.subtract(amount);
|
|
||||||
}
|
|
||||||
if (buyOrder.getShippingMoney() != null) {
|
|
||||||
bigDecimal1 = bigDecimal1.add(buyOrder.getShippingMoney());
|
|
||||||
}
|
|
||||||
// 减去优惠券金额
|
|
||||||
realMoney = buyOrder.getRealMoney();
|
|
||||||
if (bigDecimal1.compareTo(realMoney) == 0) {
|
|
||||||
//特定格式的时间ID
|
|
||||||
String timeId = IdWorker.getTimeId().substring(0, 32);
|
|
||||||
|
|
||||||
buyOrder.setOrderSn(timeId);
|
|
||||||
if ("4".equals(buyOrder.getPaymentMethod())) {
|
|
||||||
buyOrder.setOrderStatus("1");
|
|
||||||
|
|
||||||
}
|
|
||||||
//todo 增加结束时间
|
|
||||||
buyOrder.setPaymentDate(new Date());
|
|
||||||
buyOrderService.save(buyOrder);
|
|
||||||
|
|
||||||
for (BuyOrderDetailEntity buyetailEntity : list) {
|
|
||||||
|
|
||||||
buyetailEntity.setOrderId(buyOrder.getOrderId());
|
|
||||||
buyetailEntity.setUserId(buyOrder.getUserId());
|
|
||||||
|
|
||||||
// 判断结算状态 下单 位置 0- 商品页直接下单 1- 购物车结算
|
|
||||||
String buyType = buyOrder.getBuyType();
|
|
||||||
if (buyType.equals("1")) {
|
|
||||||
// 更改购物车 状态
|
|
||||||
List<OrderCartEntity> list1 = orderCartService.getBaseMapper().selectList(new QueryWrapper<OrderCartEntity>()
|
|
||||||
.eq("user_id", buyOrder.getUserId()).eq("product_id", buyetailEntity.getProductId()));
|
|
||||||
//将购物车列表转换为流,并从中提取每个购物车的 cartId。removeByIds() 方法从数据库中删除这些购物车记录。
|
|
||||||
if (list1.size() > 0) {
|
|
||||||
List<Integer> collect = list1.stream().map(orderCartEntity -> {
|
|
||||||
Integer cartId = orderCartEntity.getCartId();
|
|
||||||
return cartId;
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
|
|
||||||
orderCartService.removeByIds(collect);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
buyOrderDetailService.saveBatch(list);
|
|
||||||
if (couponId != null) {
|
|
||||||
//更改优惠券状态
|
|
||||||
CouponHistoryEntity one = couponHistoryService.getById(couponId);
|
|
||||||
one.setUseStatus(1);
|
|
||||||
one.setUseTime(new Date());
|
|
||||||
one.setOrderId(Long.valueOf(buyOrder.getOrderId()));
|
|
||||||
one.setOrderSn(buyOrder.getOrderSn());
|
|
||||||
couponHistoryService.updateById(one);
|
|
||||||
|
|
||||||
}
|
|
||||||
// 购买书籍直接赠送电子书听书
|
|
||||||
TransactionDetailsEntity transaction = new TransactionDetailsEntity();
|
|
||||||
|
|
||||||
//避免重复购买
|
|
||||||
TransactionDetailsEntity entity = transactionDetailsService.getBaseMapper().selectOne(new QueryWrapper<TransactionDetailsEntity>().eq("user_id", transaction.getUserId())
|
|
||||||
.eq("relation_id", transaction.getRelationId()));
|
|
||||||
if (entity != null) {
|
|
||||||
return R.error("余额不足,请充值!!!!!!!!!!!!!!!!");
|
|
||||||
}
|
|
||||||
|
|
||||||
List<BuyOrderDetailEntity> produ = buyOrder.getProducts();
|
|
||||||
// 遍历商品 查询价格
|
|
||||||
for (BuyOrderDetailEntity buyOrdr : produ) {
|
|
||||||
Integer pId = buyOrdr.getProductId();
|
|
||||||
ShopProductEntity product1 = shopProductService.getById(pId);
|
|
||||||
String productName = product1.getProductName();
|
|
||||||
// 如果是虚拟币购买 减少用户的虚拟币数量
|
|
||||||
if ("4".equals(buyOrder.getPaymentMethod())) {
|
|
||||||
MyUserEntity user = this.myUserService.getById(buyOrder.getUserId());
|
|
||||||
if (user.getPeanutCoin().compareTo(realMoney) >= 0) {
|
|
||||||
user.setPeanutCoin(user.getPeanutCoin().subtract(realMoney));
|
|
||||||
this.myUserService.updateById(user);
|
|
||||||
// 添加消费信息
|
|
||||||
TransactionDetailsEntity transactionDetailsEntity = new TransactionDetailsEntity();
|
|
||||||
transactionDetailsEntity.setRemark("购买健康超市用品!订单编号为《 " + buyOrder.getOrderSn() + "》");
|
|
||||||
transactionDetailsEntity.setUserId(user.getId());
|
|
||||||
transactionDetailsEntity.setUserName(user.getNickname());
|
|
||||||
transactionDetailsEntity.setChangeAmount(realMoney.negate());
|
|
||||||
transactionDetailsEntity.setUserBalance(user.getPeanutCoin());
|
|
||||||
transactionDetailsEntity.setTel(user.getTel());
|
|
||||||
transactionDetailsEntity.setOrderType("购买《"+productName+"》赠送本书听书功能");
|
|
||||||
transactionDetailsService.save(transactionDetailsEntity);
|
|
||||||
} else {
|
|
||||||
return R.error("余额不足!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
for (BuyOrderDetailEntity buyOrderDetail : products) {
|
|
||||||
Integer productId = buyOrderDetail.getProductId();
|
|
||||||
ShopProductEntity product = shopProductService.getById(productId);
|
|
||||||
// 如果不等于空 则进行往下走
|
|
||||||
String authorName = "";
|
|
||||||
String bookId = product.getBookId();
|
|
||||||
if(null != bookId && !"".equals(bookId)){
|
|
||||||
List<String> bkids = new ArrayList<String>();
|
|
||||||
if(bookId.indexOf(",") == -1){
|
|
||||||
bkids.add(bookId);
|
|
||||||
}else {
|
|
||||||
for(String idObj : bookId.split(",")){
|
|
||||||
bkids.add(idObj);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for(String b_id : bkids){
|
|
||||||
if (b_id != null) {
|
|
||||||
List<BookEntity> book = bookService.getBaseMapper().selectList(new QueryWrapper<BookEntity>().eq("id", b_id));
|
|
||||||
for (BookEntity bo : book) {
|
|
||||||
Integer id = bo.getId();
|
|
||||||
String name = bo.getName();
|
|
||||||
String images = bo.getImages();
|
|
||||||
String authorId = bo.getAuthorId();
|
|
||||||
if (book != null) {
|
|
||||||
UserEbookBuyEntity userEbookBuyEntity = new UserEbookBuyEntity();
|
|
||||||
userEbookBuyEntity.setUserId(Integer.valueOf(buyOrder.getUserId()));
|
|
||||||
userEbookBuyEntity.setBookId(Integer.valueOf(id));
|
|
||||||
String[] authorIds = authorId.split(",");
|
|
||||||
List<String> authorList = Arrays.asList(authorIds);
|
|
||||||
List<AuthorEntity> authorEntities = authorService.getBaseMapper().selectList(new QueryWrapper<AuthorEntity>().in("id", authorList));
|
|
||||||
//购买书籍表 userId bookName 商品订单详情表 userId productName
|
|
||||||
List<UserEbookBuyEntity> userId = userEbookBuyService.getBaseMapper().selectList(new QueryWrapper<UserEbookBuyEntity>()
|
|
||||||
.eq("user_Id", buyOrder.getUserId())
|
|
||||||
.eq("book_id", id));
|
|
||||||
for (AuthorEntity authorEntity : authorEntities) {
|
|
||||||
authorName += "," + authorEntity.getAuthorName();
|
|
||||||
}
|
|
||||||
|
|
||||||
//查询dengyu,则往下执行赠送电子书详情
|
|
||||||
if (userId != null && !userId.isEmpty()) {
|
|
||||||
// 如果userId不等于空则不赠送图书不执行任何方法
|
|
||||||
// return R.ok("此书已存在于您的书架");
|
|
||||||
} else {
|
|
||||||
authorName = authorName.startsWith(",") ? authorName.substring(1) : authorName;
|
|
||||||
userEbookBuyEntity.setAuthor(authorName);
|
|
||||||
userEbookBuyEntity.setImage(images);
|
|
||||||
userEbookBuyEntity.setPayStatus("赠送成功");
|
|
||||||
//这里后期需要修改字段内容
|
|
||||||
userEbookBuyEntity.setPayType("point");
|
|
||||||
userEbookBuyEntity.setPayTime(new Date());
|
|
||||||
userEbookBuyEntity.setBookName(name);
|
|
||||||
userEbookBuyService.save(userEbookBuyEntity);
|
|
||||||
//判断是否加入书架如果没有就加入听书书架
|
|
||||||
Integer integer = bookShelfService.getBaseMapper().selectCount(new QueryWrapper<BookShelfEntity>()
|
|
||||||
.eq("book_id", id)
|
|
||||||
.eq("user_id", userId));
|
|
||||||
//如果integer<0代表数据库没有这条数据,则添加,有就不执行下面操作
|
|
||||||
if (integer < 0) {
|
|
||||||
//保存到书架表中
|
|
||||||
BookShelfEntity bookShelfEntity = new BookShelfEntity();
|
|
||||||
bookShelfEntity.setBookId(id);
|
|
||||||
bookShelfEntity.setBookName(name);
|
|
||||||
bookShelfEntity.setUserId(buyOrder.getUserId());
|
|
||||||
bookShelfEntity.setCreateTime(new Date());
|
|
||||||
bookShelfService.save(bookShelfEntity);
|
|
||||||
}
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// return R.error().put("赠送失败",buyOrder.getOrderSn());
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}catch (Exception e){
|
|
||||||
e.printStackTrace();
|
|
||||||
}finally {
|
|
||||||
l.unlock();
|
|
||||||
}
|
|
||||||
return R.ok().put("orderSn",buyOrder.getOrderSn()).put("money",realMoney);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改
|
|
||||||
*/
|
|
||||||
@RequestMapping("/update")
|
@RequestMapping("/update")
|
||||||
// @RequiresPermissions("book:buyorder:update")
|
// @RequiresPermissions("book:buyorder:update")
|
||||||
public R update(@RequestBody BuyOrderEntity buyOrder){
|
public R update(@RequestBody BuyOrderEntity buyOrder) {
|
||||||
buyOrderService.updateById(buyOrder);
|
buyOrderService.updateById(buyOrder);
|
||||||
|
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
@@ -569,8 +305,8 @@ public class BuyOrderController {
|
|||||||
*/
|
*/
|
||||||
@RequestMapping("/delete")
|
@RequestMapping("/delete")
|
||||||
// @RequiresPermissions("book:buyorder:delete")
|
// @RequiresPermissions("book:buyorder:delete")
|
||||||
public R delete(@RequestBody Integer[] orderIds){
|
public R delete(@RequestBody Integer[] orderIds) {
|
||||||
buyOrderService.removeByIds(Arrays.asList(orderIds));
|
buyOrderService.removeByIds(Arrays.asList(orderIds));
|
||||||
|
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
@@ -580,7 +316,7 @@ public class BuyOrderController {
|
|||||||
*/
|
*/
|
||||||
@RequestMapping("/appUserGetlist")
|
@RequestMapping("/appUserGetlist")
|
||||||
// @RequiresPermissions("book:buyorder:list")
|
// @RequiresPermissions("book:buyorder:list")
|
||||||
public R appUserGetlist(@RequestParam Map<String, Object> params){
|
public R appUserGetlist(@RequestParam Map<String, Object> params) {
|
||||||
PageUtils page = buyOrderService.queryPage1(params);
|
PageUtils page = buyOrderService.queryPage1(params);
|
||||||
|
|
||||||
return R.ok().put("page", page);
|
return R.ok().put("page", page);
|
||||||
@@ -593,7 +329,7 @@ public class BuyOrderController {
|
|||||||
@RequestMapping("/appDelete")
|
@RequestMapping("/appDelete")
|
||||||
// @RequiresPermissions("book:buyorder:delete")
|
// @RequiresPermissions("book:buyorder:delete")
|
||||||
@Transactional
|
@Transactional
|
||||||
public R appDelete(@RequestParam("orderId") Integer orderId){
|
public R appDelete(@RequestParam("orderId") Integer orderId) {
|
||||||
|
|
||||||
//1. 判断订单状态
|
//1. 判断订单状态
|
||||||
BuyOrderEntity byId = buyOrderService.getById(orderId);
|
BuyOrderEntity byId = buyOrderService.getById(orderId);
|
||||||
@@ -649,7 +385,7 @@ public class BuyOrderController {
|
|||||||
|
|
||||||
@RequestMapping("/randomOrderCode")
|
@RequestMapping("/randomOrderCode")
|
||||||
@Transactional
|
@Transactional
|
||||||
public R randomOrderCode(@RequestBody BuyOrderEntity buyOrder){
|
public R randomOrderCode(@RequestBody BuyOrderEntity buyOrder) {
|
||||||
|
|
||||||
|
|
||||||
// String re= String.valueOf(buyOrderService.randomOrderCode(buyOrder));
|
// String re= String.valueOf(buyOrderService.randomOrderCode(buyOrder));
|
||||||
@@ -659,37 +395,32 @@ public class BuyOrderController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 充值专用订单生成接口
|
* 充值专用订单生成接口
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/rechargeSave")
|
@RequestMapping("/rechargeSave")
|
||||||
@Transactional
|
@Transactional
|
||||||
public R rechargeSave(@RequestBody BuyOrderEntity buyOrder){
|
public R rechargeSave(@RequestBody BuyOrderEntity buyOrder) {
|
||||||
|
|
||||||
|
|
||||||
String timeId = IdWorker.getTimeId().substring(0,32);
|
|
||||||
buyOrder.setOrderSn(timeId);
|
|
||||||
buyOrderService.save(buyOrder);
|
|
||||||
return R.ok().put("orderSn",timeId);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
String timeId = IdWorker.getTimeId().substring(0, 32);
|
||||||
|
buyOrder.setOrderSn(timeId);
|
||||||
|
buyOrderService.save(buyOrder);
|
||||||
|
return R.ok().put("orderSn", timeId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 信息
|
* 信息
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/appGetOrderInfo/{type}")
|
@RequestMapping("/appGetOrderInfo/{type}")
|
||||||
public R appGetOrderInfo(@PathVariable String type , @RequestParam("orderId") Integer orderId){
|
public R appGetOrderInfo(@PathVariable String type, @RequestParam("orderId") Integer orderId) {
|
||||||
BuyOrderEntity buyOrder = buyOrderService.getById(orderId);
|
BuyOrderEntity buyOrder = buyOrderService.getById(orderId);
|
||||||
List<BuyOrderDetailEntity> orderDetail = null;
|
List<BuyOrderDetailEntity> orderDetail = null;
|
||||||
if("1".equals(type)){
|
if ("1".equals(type)) {
|
||||||
orderDetail = buyOrderDetailService.getBaseMapper().selectList(new QueryWrapper<BuyOrderDetailEntity>()
|
orderDetail = buyOrderDetailService.getBaseMapper().selectList(new QueryWrapper<BuyOrderDetailEntity>()
|
||||||
.eq("order_id", orderId));
|
.eq("order_id", orderId));
|
||||||
}else{
|
} else {
|
||||||
orderDetail = buyOrderDetailService.getBaseMapper().selectList(new QueryWrapper<BuyOrderDetailEntity>()
|
orderDetail = buyOrderDetailService.getBaseMapper().selectList(new QueryWrapper<BuyOrderDetailEntity>()
|
||||||
.eq("order_id", orderId));
|
.eq("order_id", orderId));
|
||||||
//TODO 根据shipping_sn快递单号分组,订单下无快递单号,我的订单同时无法显示,暂时注释
|
//TODO 根据shipping_sn快递单号分组,订单下无快递单号,我的订单同时无法显示,暂时注释
|
||||||
@@ -707,15 +438,13 @@ public class BuyOrderController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
List<BuyOrderDetailEntity> resultOrder = new ArrayList<BuyOrderDetailEntity>();
|
List<BuyOrderDetailEntity> resultOrder = new ArrayList<BuyOrderDetailEntity>();
|
||||||
Set<String> sn_no = new HashSet<String>();
|
Set<String> sn_no = new HashSet<String>();
|
||||||
for(BuyOrderDetailEntity buyOrderDetailEntity : orderDetail){
|
for (BuyOrderDetailEntity buyOrderDetailEntity : orderDetail) {
|
||||||
|
|
||||||
|
|
||||||
resultOrder.add(buyOrderDetailEntity);
|
resultOrder.add(buyOrderDetailEntity);
|
||||||
sn_no.add(buyOrderDetailEntity.getShippingSn());
|
sn_no.add(buyOrderDetailEntity.getShippingSn());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -723,38 +452,34 @@ public class BuyOrderController {
|
|||||||
UserRecordEntity userRecordEntity = userRecordService.getBaseMapper().selectOne(new QueryWrapper<UserRecordEntity>()
|
UserRecordEntity userRecordEntity = userRecordService.getBaseMapper().selectOne(new QueryWrapper<UserRecordEntity>()
|
||||||
.eq("orderSn", buyOrder.getOrderSn())
|
.eq("orderSn", buyOrder.getOrderSn())
|
||||||
.eq("userid", buyOrder.getUserId())
|
.eq("userid", buyOrder.getUserId())
|
||||||
.eq("orderdid",buyOrder.getOrderId())
|
.eq("orderdid", buyOrder.getOrderId())
|
||||||
.last("LIMIT 1"));
|
.last("LIMIT 1"));
|
||||||
|
|
||||||
|
|
||||||
|
Integer id = null;
|
||||||
Integer id =null;
|
|
||||||
if (userRecordEntity != null) {
|
if (userRecordEntity != null) {
|
||||||
id = userRecordEntity.getId();
|
id = userRecordEntity.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
buyOrder.setProducts(resultOrder);
|
buyOrder.setProducts(resultOrder);
|
||||||
Date createDate = buyOrder.getCreateTime();
|
Date createDate = buyOrder.getCreateTime();
|
||||||
|
|
||||||
|
|
||||||
|
return R.ok().put("buyOrder", buyOrder).put("CreateTime", createDate).put("userRecordid", id);
|
||||||
return R.ok().put("buyOrder", buyOrder).put("CreateTime",createDate).put("userRecordid",id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算快递费用
|
* 计算快递费用
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/getTransPrice/{area}")
|
@RequestMapping("/getTransPrice/{area}")
|
||||||
public R getTransPrice(@PathVariable String area, @RequestParam Map<String, Object> productMap){
|
public R getTransPrice(@PathVariable String area, @RequestParam Map<String, Object> productMap) {
|
||||||
|
|
||||||
Map<String,Object> params = new HashMap<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
params.put("kdCode","YD");
|
params.put("kdCode", "YD");
|
||||||
params.put("area",area);
|
params.put("area", area);
|
||||||
|
|
||||||
int price = this.buyOrderService.getProductGoodsType(params,productMap);
|
int price = this.buyOrderService.getProductGoodsType(params, productMap);
|
||||||
|
|
||||||
return R.ok().put("price", price);
|
return R.ok().put("price", price);
|
||||||
|
|
||||||
@@ -763,97 +488,92 @@ public class BuyOrderController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 后台发货按钮
|
* 后台发货按钮
|
||||||
|
*
|
||||||
* @Param shipperCode 快递公司编码
|
* @Param shipperCode 快递公司编码
|
||||||
* @Param sendType 0:订单列表发货 1:商品列表发货
|
* @Param sendType 0:订单列表发货 1:商品列表发货
|
||||||
* @Param type 合并发货/拆分发货
|
* @Param type 合并发货/拆分发货
|
||||||
* @Param ids 订单id串
|
* @Param ids 订单id串
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/delivery/{shipperCode}")
|
@RequestMapping("/delivery/{shipperCode}")
|
||||||
public R delivery(@PathVariable("shipperCode") String shipperCode,@RequestParam("shipperName") String shipperName, @RequestBody Integer[] ids){
|
public R delivery(@PathVariable("shipperCode") String shipperCode, @RequestParam("shipperName") String shipperName, @RequestBody Integer[] ids) {
|
||||||
|
|
||||||
buyOrderService.sendFMS(ids,shipperCode,shipperName);
|
buyOrderService.sendFMS(ids, shipperCode, shipperName);
|
||||||
|
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 及时查询快递信息
|
* 及时查询快递信息
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/queryFMS")
|
@RequestMapping("/queryFMS")
|
||||||
public R queryFMS(@RequestParam Map< String,String> params){
|
public R queryFMS(@RequestParam Map<String, String> params) {
|
||||||
List<BuyOrderDetailEntity> detailList = this.buyOrderDetailService.getBaseMapper().selectList(new QueryWrapper<BuyOrderDetailEntity>().eq("order_id", params.get("orderId")));
|
List<BuyOrderDetailEntity> detailList = this.buyOrderDetailService.getBaseMapper().selectList(new QueryWrapper<BuyOrderDetailEntity>().eq("order_id", params.get("orderId")));
|
||||||
List<JSONObject> jsonList = new ArrayList<>();
|
List<JSONObject> jsonList = new ArrayList<>();
|
||||||
JSONObject jsonObj =null;
|
JSONObject jsonObj = null;
|
||||||
for (BuyOrderDetailEntity detail : detailList) {
|
for (BuyOrderDetailEntity detail : detailList) {
|
||||||
jsonObj = buyOrderService.queryFMS(detail.getShipperCode(), detail.getShippingSn());
|
jsonObj = buyOrderService.queryFMS(detail.getShipperCode(), detail.getShippingSn());
|
||||||
if(Objects.isNull(jsonObj)){
|
if (Objects.isNull(jsonObj)) {
|
||||||
return R.ok("暂未查到物流信息!");
|
return R.ok("暂未查到物流信息!");
|
||||||
}
|
}
|
||||||
jsonObj.put("ShipperName",detail.getShipperName());
|
jsonObj.put("ShipperName", detail.getShipperName());
|
||||||
jsonList.add(jsonObj);
|
jsonList.add(jsonObj);
|
||||||
|
|
||||||
}
|
}
|
||||||
return R.ok().put("rntStr",jsonList);
|
return R.ok().put("rntStr", jsonList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查可合并的订单信息
|
* 检查可合并的订单信息
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/checkOrder")
|
@RequestMapping("/checkOrder")
|
||||||
public R checkOrder(@RequestParam Map<String, Object> params){
|
public R checkOrder(@RequestParam Map<String, Object> params) {
|
||||||
Page page = buyOrderService.checkOrder(params);
|
Page page = buyOrderService.checkOrder(params);
|
||||||
return R.ok().put("page",page);
|
return R.ok().put("page", page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* 检查传来的orderId 是否有可合并的其他订单信息
|
* 检查传来的orderId 是否有可合并的其他订单信息
|
||||||
*
|
*
|
||||||
* @param orderIds
|
* @param orderIds
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/checkMerge")
|
@RequestMapping("/checkMerge")
|
||||||
public R checkMerge(@RequestBody Integer[] orderIds){
|
public R checkMerge(@RequestBody Integer[] orderIds) {
|
||||||
List list = buyOrderService.checkOrder(orderIds);
|
List list = buyOrderService.checkOrder(orderIds);
|
||||||
return R.ok().put("list",list);
|
return R.ok().put("list", list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* 批量发货功能
|
* 批量发货功能
|
||||||
*
|
*
|
||||||
* @param orderDetailIds 订单详情
|
* @param orderDetailIds 订单详情
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/blendSendFMS/{shipperCode}")
|
@RequestMapping("/blendSendFMS/{shipperCode}")
|
||||||
public R blendSendFMS(@PathVariable("shipperCode") String shipperCode,@RequestParam("shipperName") String shipperName,@RequestBody Integer[] orderDetailIds){
|
public R blendSendFMS(@PathVariable("shipperCode") String shipperCode, @RequestParam("shipperName") String shipperName, @RequestBody Integer[] orderDetailIds) {
|
||||||
|
|
||||||
|
|
||||||
buyOrderService.blendSendFMS(orderDetailIds,shipperCode,shipperName);
|
buyOrderService.blendSendFMS(orderDetailIds, shipperCode, shipperName);
|
||||||
return R.ok();
|
return R.ok();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 后台取消订单接口
|
* 后台取消订单接口
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/cancelFMS")
|
@RequestMapping("/cancelFMS")
|
||||||
public R cancelFMS(@RequestParam Map<String,Object> params){
|
public R cancelFMS(@RequestParam Map<String, Object> params) {
|
||||||
buyOrderService.cancelFMS(params.get("orderSn").toString(), params.get("shipperCode").toString(),
|
buyOrderService.cancelFMS(params.get("orderSn").toString(), params.get("shipperCode").toString(),
|
||||||
params.get("expNo").toString());
|
params.get("expNo").toString());
|
||||||
// return R.ok()
|
// return R.ok()
|
||||||
return R.ok().put("paramsTEXT",params);
|
return R.ok().put("paramsTEXT", params);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -863,7 +583,7 @@ public class BuyOrderController {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/querySheetPage")
|
@RequestMapping("/querySheetPage")
|
||||||
public R querySheetPage(@RequestParam Map<String, Object> params){
|
public R querySheetPage(@RequestParam Map<String, Object> params) {
|
||||||
|
|
||||||
PageUtils page = buyOrderDetailService.querySheet(params);
|
PageUtils page = buyOrderDetailService.querySheet(params);
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
package com.peanut.modules.book.entity;
|
package com.peanut.modules.book.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品表
|
* 商品表
|
||||||
@@ -21,154 +19,148 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
@TableName("shop_product")
|
@TableName("shop_product")
|
||||||
public class ShopProductEntity implements Serializable {
|
public class ShopProductEntity implements Serializable {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@TableId
|
@TableId
|
||||||
private Integer productId;
|
private Integer productId;
|
||||||
/**
|
/**
|
||||||
* 商品名称
|
* 商品名称
|
||||||
*/
|
*/
|
||||||
private String productName;
|
private String productName;
|
||||||
/**
|
/**
|
||||||
* 商品价格
|
* 商品价格
|
||||||
*/
|
*/
|
||||||
private BigDecimal price;
|
private BigDecimal price;
|
||||||
/**
|
/**
|
||||||
* 商品活动价格
|
* 商品活动价格
|
||||||
*/
|
*/
|
||||||
private BigDecimal activityPrice;
|
private BigDecimal activityPrice;
|
||||||
/**
|
/**
|
||||||
* 商品重量
|
* 商品重量
|
||||||
*/
|
*/
|
||||||
private Float weight;
|
private Float weight;
|
||||||
/**
|
/**
|
||||||
* 上架状态
|
* 上架状态
|
||||||
*/
|
*/
|
||||||
private Integer publishStatus;
|
private Integer publishStatus;
|
||||||
/**
|
/**
|
||||||
* 商品介绍
|
* 商品介绍
|
||||||
*/
|
*/
|
||||||
private String productDetails;
|
private String productDetails;
|
||||||
/**
|
/**
|
||||||
* 商品分类id
|
* 商品分类id
|
||||||
*/
|
*/
|
||||||
private Integer productPid;
|
private Integer productPid;
|
||||||
/**
|
/**
|
||||||
* 商品 类型 0 - 预售 1 - 在售
|
* 商品 类型 0 - 预售 1 - 在售
|
||||||
*/
|
*/
|
||||||
private String productType;
|
private String productType;
|
||||||
/**
|
/**
|
||||||
* 商品库存
|
* 商品库存
|
||||||
*/
|
*/
|
||||||
private Integer productStock;
|
private Integer productStock;
|
||||||
/**
|
/**
|
||||||
* 商品图首页
|
* 商品图首页
|
||||||
*/
|
*/
|
||||||
private String productImages;
|
private String productImages;
|
||||||
/**
|
/**
|
||||||
* 商品 多图
|
* 商品 多图
|
||||||
*/
|
*/
|
||||||
private String productImageList;
|
private String productImageList;
|
||||||
/**
|
/**
|
||||||
* 商品销量
|
* 商品销量
|
||||||
*/
|
*/
|
||||||
private String productSalesVolume;
|
private String productSalesVolume;
|
||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
/**
|
/**
|
||||||
* 更新时间
|
* 更新时间
|
||||||
*/
|
*/
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
/**
|
/**
|
||||||
* 删除标记
|
* 删除标记
|
||||||
*/
|
*/
|
||||||
@TableLogic
|
@TableLogic
|
||||||
private Integer delFlag;
|
private Integer delFlag;
|
||||||
/**
|
/**
|
||||||
* 排序
|
* 排序
|
||||||
*/
|
*/
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<Integer> poids;
|
private List<Integer> poids;
|
||||||
/**
|
/**
|
||||||
* 作者
|
* 作者
|
||||||
*/
|
*/
|
||||||
private String author;
|
private String author;
|
||||||
/**
|
/**
|
||||||
* 出版方
|
* 出版方
|
||||||
*/
|
*/
|
||||||
private String publisher;
|
private String publisher;
|
||||||
/**
|
/**
|
||||||
* 出版时间
|
* 出版时间
|
||||||
*/
|
*/
|
||||||
@TableField(value = "pub_date" , updateStrategy = FieldStrategy.IGNORED)
|
@TableField(value = "pub_date", updateStrategy = FieldStrategy.IGNORED)
|
||||||
private String pubDate;
|
private String pubDate;
|
||||||
/**
|
/**
|
||||||
* 开本
|
* 开本
|
||||||
*/
|
*/
|
||||||
private String format;
|
private String format;
|
||||||
/**
|
/**
|
||||||
* 页数
|
* 页数
|
||||||
*/
|
*/
|
||||||
@TableField(value = "page_num" , updateStrategy = FieldStrategy.IGNORED)
|
@TableField(value = "page_num", updateStrategy = FieldStrategy.IGNORED)
|
||||||
private Integer pageNum;
|
private Integer pageNum;
|
||||||
/**
|
/**
|
||||||
* 内文用纸材质
|
* 内文用纸材质
|
||||||
*/
|
*/
|
||||||
private String quality;
|
private String quality;
|
||||||
/**
|
/**
|
||||||
* 总销量
|
* 总销量
|
||||||
*/
|
*/
|
||||||
private Integer sumSales;
|
private Integer sumSales;
|
||||||
/**
|
/**
|
||||||
* 商品类型 1: 画册 2:书 3:仪器,4:预售书
|
* 商品类型 1: 画册 2:书 3:仪器,4:预售书
|
||||||
*/
|
*/
|
||||||
private String goodsType;
|
private String goodsType;
|
||||||
private String goodsTypeCode;
|
private String goodsTypeCode;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否包邮 0:包邮 ,1:不包邮
|
* 是否包邮 0:包邮 ,1:不包邮
|
||||||
*/
|
*/
|
||||||
private Object isFreeMail;
|
private Object isFreeMail;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 绑定电子书id,
|
* 绑定电子书id,
|
||||||
*/
|
*/
|
||||||
@TableField("book_ids")
|
@TableField("book_ids")
|
||||||
private String bookId;
|
private String bookId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 多个电子书Id
|
* 多个电子书Id
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private ArrayList<String> bookids;
|
private ArrayList<String> bookids;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 多个电子书Id ArrayList<Map<String,String>>
|
* 多个电子书Id ArrayList<Map<String,String>>
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<Object> bookidsimages;
|
private List<Object> bookidsimages;
|
||||||
|
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<Object> shoproudBook;
|
private List<Object> shoproudBook;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<Object> shoproudIds;
|
private List<Object> shoproudIds;
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
private List<String> shoproudLabels;
|
|
||||||
|
|
||||||
|
|
||||||
// private Object bookidsimages;
|
|
||||||
//
|
|
||||||
//e
|
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private List<String> shoproudLabels;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ public class WechatPayConfig implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 支付通知回调地址
|
* 支付通知回调地址
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private String notifyUrl;
|
private String notifyUrl;
|
||||||
/**
|
/**
|
||||||
* 退款回调地址
|
* 退款回调地址
|
||||||
|
|||||||
@@ -109,7 +109,8 @@ public class WeChatPayController {
|
|||||||
// 订单编号
|
// 订单编号
|
||||||
paramMap.put("out_trade_no", order.getOrderSn());
|
paramMap.put("out_trade_no", order.getOrderSn());
|
||||||
// paramMap.put("attach",""); //自定义数据 支付完成后才能显示 在查询API和支付通知中原样返回,可作为自定义参数使用
|
// paramMap.put("attach",""); //自定义数据 支付完成后才能显示 在查询API和支付通知中原样返回,可作为自定义参数使用
|
||||||
paramMap.put("notify_url", wechatPayConfig.getNotifyUrl());
|
//paramMap.put("notify_url", wechatPayConfig.getNotifyUrl());
|
||||||
|
paramMap.put("notify_url","https://testapi.nuttyreading.com/pay/payNotify");
|
||||||
|
|
||||||
// paramMap.put("time_expire",afterString);
|
// paramMap.put("time_expire",afterString);
|
||||||
// 实收金额0.38乘100=38
|
// 实收金额0.38乘100=38
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.peanut.modules.pay.weChatPay.util;
|
package com.peanut.modules.pay.weChatPay.util;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.wechat.pay.contrib.apache.httpclient.WechatPayHttpClientBuilder;
|
import com.wechat.pay.contrib.apache.httpclient.WechatPayHttpClientBuilder;
|
||||||
import com.wechat.pay.contrib.apache.httpclient.util.PemUtil;
|
import com.wechat.pay.contrib.apache.httpclient.util.PemUtil;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
FROM shop_proudict_book spb
|
FROM shop_proudict_book spb
|
||||||
LEFT JOIN buy_order_detail bod ON spb.proudict_id = bod.product_id
|
LEFT JOIN buy_order_detail bod ON spb.proudict_id = bod.product_id
|
||||||
LEFT JOIN buy_order bo ON bo.order_id = bod.order_id
|
LEFT JOIN buy_order bo ON bo.order_id = bod.order_id
|
||||||
WHERE bo.order_sn = #{orderSn}
|
WHERE bo.order_sn = #{orderSn} AND del_flag != -1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ wxpay.baseUrl: https://api.mch.weixin.qq.com/v3
|
|||||||
#po9k1ezoyexk.ngrok.xiaomiqiu123.top # ????????
|
#po9k1ezoyexk.ngrok.xiaomiqiu123.top # ????????
|
||||||
#wxpay.notifyUrl: http://101.201.146.165:9100
|
#wxpay.notifyUrl: http://101.201.146.165:9100
|
||||||
|
|
||||||
wxpay.notifyUrl: http://59.110.212.44:9100/pb/pay/payNotify
|
wxpay.notifyUrl: http://59.110.212.44:9200/pb/pay/payNotify
|
||||||
|
|
||||||
# ??????
|
# ??????
|
||||||
wxpay.refundNotifyUrl: http://pjm6m9.natappfree.cc/pay/refundNotify
|
wxpay.refundNotifyUrl: http://pjm6m9.natappfree.cc/pay/refundNotify
|
||||||
|
|||||||
Reference in New Issue
Block a user