diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java index a9544ec8..3e21acc6 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java @@ -48,7 +48,7 @@ public class OrderController { @ApiOperation(value = "微信支付订单", notes = "生成订单") @PostMapping("royalcanin/generateOrderWX") - public ResponseDTO generateOrderWX(@RequestBody List ordersEntityList, OrderAddress orderAddress) throws Exception { + public ResponseDTO generateOrderWX(@RequestBody List ordersEntityList) throws Exception { StringBuffer productId = new StringBuffer(); StringBuffer productName = new StringBuffer(); String memberId = ""; @@ -58,6 +58,7 @@ public class OrderController { WxPayEntity wxPayEntity = new WxPayEntity(); JSONArray orderDatilListJson = new JSONArray(); OrdersEntity ordersEntity = new OrdersEntity(); + OrderAddress orderAddress = new OrderAddress(); for (OrdersEntity ordersEntitys:ordersEntityList) { cartService.cancelProduct(ordersEntitys.getMemberId(),ordersEntity.getProductId()); //存储orderDetailList @@ -72,6 +73,12 @@ public class OrderController { ordersEntity.setCouponCode(ordersEntitys.getCouponCode()); ordersEntity.setCouponName(ordersEntitys.getCouponName()); } + orderAddress.setAddressCityName(ordersEntitys.getOrderAddress().getAddressCityName()); + orderAddress.setAddressCountyName(ordersEntitys.getOrderAddress().getAddressCountyName()); + orderAddress.setAddressDetailInfo(ordersEntitys.getOrderAddress().getAddressDetailInfo()); + orderAddress.setAddressPhoneNumber(ordersEntitys.getOrderAddress().getAddressPhoneNumber()); + orderAddress.setAddressUserName(ordersEntitys.getOrderAddress().getAddressUserName()); + orderAddress.setAddressProvinceName(ordersEntitys.getOrderAddress().getAddressProvinceName()); productId.append(ordersEntitys.getProductId()+","); productName.append(ordersEntitys.getProductName()+","); if(ordersEntitys.getPayAmount() != "0"){ @@ -83,6 +90,7 @@ public class OrderController { mobile = ordersEntitys.getPhoneNumber(); buyCount = buyCount + ordersEntitys.getBuyCount(); } + ordersEntity.setOrderAddress(orderAddress); ordersEntity.setProductId(productId.substring(0,productId.length()-1)); ordersEntity.setProductName(productName.substring(0,productName.length()-1)); ordersEntity.setOrderAmount(StringUtil.toString(total_fee)); @@ -92,7 +100,7 @@ public class OrderController { ordersEntity.setOrderNo(GenerateSequenceUtil.generateSequenceNo()); ordersEntity.setOrderStatus("0"); - if(orderService.generateOrder(ordersEntity,orderDatilListJson,orderAddress) == 1){ + if(orderService.generateOrder(ordersEntity,orderDatilListJson) == 1){ wxPayEntity.setProduct_id(ordersEntity.getProductId()); wxPayEntity.setTotal_fee(StringUtil.toString(total_fee)); wxPayEntity.setOut_trade_no(ordersEntity.getOrderNo()); @@ -119,7 +127,7 @@ public class OrderController { @ApiOperation(value = "支付宝支付订单", notes = "生成订单") @PostMapping("royalcanin/generateOrderAlipay") - public ResponseDTO generateOrderAliPay(@RequestBody List ordersEntityList,OrderAddress orderAddress) throws Exception { + public ResponseDTO generateOrderAliPay(@RequestBody List ordersEntityList) throws Exception { StringBuffer productId = new StringBuffer(); StringBuffer productName = new StringBuffer(); String memberId = ""; @@ -141,7 +149,11 @@ public class OrderController { productId.append(ordersEntitys.getProductId()+","); productName.append(ordersEntitys.getProductName()+","); - total_fee = total_fee + Double.parseDouble(ordersEntitys.getPayAmount())*ordersEntitys.getBuyCount(); + if(ordersEntitys.getPayAmount() != "0"){ + total_fee = total_fee + (Double.parseDouble(ordersEntitys.getPayAmount()) * ordersEntitys.getBuyCount()) - Double.parseDouble(ordersEntitys.getCouponAmount()); + }else { + total_fee = total_fee + Double.parseDouble(ordersEntitys.getPayAmount())*ordersEntitys.getBuyCount(); + } memberId = ordersEntitys.getMemberId(); mobile = ordersEntitys.getPhoneNumber(); buyCount = buyCount + ordersEntitys.getBuyCount(); @@ -155,7 +167,7 @@ public class OrderController { ordersEntity.setPayType("2"); ordersEntity.setOrderNo(GenerateSequenceUtil.generateSequenceNo()); ordersEntity.setOrderStatus("0"); - if(orderService.generateOrder(ordersEntity,orderDatilListJson,orderAddress) == 1){ + if(orderService.generateOrder(ordersEntity,orderDatilListJson) == 1){ aliPayEntity.setProduct_code(ordersEntity.getProductId()); aliPayEntity.setTotal_amount(StringUtil.toString(total_fee)); aliPayEntity.setOut_trade_no(ordersEntity.getOrderNo()); diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/dao/OrdersDao.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/dao/OrdersDao.java index 741e1aa5..3e94deff 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/dao/OrdersDao.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/dao/OrdersDao.java @@ -2,7 +2,7 @@ package net.lab1024.smartadmin.module.system.royalcanin.good.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrdersEntity; +import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; @@ -13,10 +13,10 @@ import org.springframework.stereotype.Component; */ @Mapper @Component -public interface OrdersDao extends BaseMapper { +public interface OrdersDao extends BaseMapper { - OrdersEntity findByOrderId(String id); + OrderEntity findByOrderId(String id); Integer updateOrderStatus(@Param("outTradeNo")String outTradeNo, @Param("totalAmount")String total_amount); diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/OrderAddress.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/OrderAddress.java index e96f5fc6..c69c5129 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/OrderAddress.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/OrderAddress.java @@ -1,8 +1,12 @@ package net.lab1024.smartadmin.module.system.royalcanin.good.model; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@AllArgsConstructor +@NoArgsConstructor public class OrderAddress { private String addressPhoneNumber = "null"; diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/OrdersEntity.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/OrdersEntity.java index 530f62ca..5143ff6c 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/OrdersEntity.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/OrdersEntity.java @@ -1,12 +1,10 @@ package net.lab1024.smartadmin.module.system.royalcanin.good.model; -import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.util.Date; @Data -@TableName("t_good_orders") public class OrdersEntity { private String orderNo; @@ -39,4 +37,6 @@ public class OrdersEntity { private String payType="1"; + private OrderAddress orderAddress; + } diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/OrderService.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/OrderService.java index b57bce3e..3786dcbc 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/OrderService.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/OrderService.java @@ -1,22 +1,26 @@ package net.lab1024.smartadmin.module.system.royalcanin.good.service; import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; import net.lab1024.smartadmin.common.domain.ResponseDTO; import net.lab1024.smartadmin.common.heartbeat.StringUtil; import net.lab1024.smartadmin.module.system.royalcanin.CouponService; import net.lab1024.smartadmin.module.system.royalcanin.coupon.CouponCosumeEntity; import net.lab1024.smartadmin.module.system.royalcanin.coupon.CouponFetchEntity; +import net.lab1024.smartadmin.module.system.royalcanin.couponConfig.CouponConfigFindAllEntity; import net.lab1024.smartadmin.module.system.royalcanin.domain.RoyalcaninOperateLogEntity; import net.lab1024.smartadmin.module.system.royalcanin.domain.RoyalcaninOperateLogService; import net.lab1024.smartadmin.module.system.royalcanin.good.constant.OrderResponseCodeConst; import net.lab1024.smartadmin.module.system.royalcanin.good.dao.OrdersDao; import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderAddress; +import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderEntity; import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrdersEntity; import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.AddOrSaveEntity; import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.OrderCouponEntity; import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.QueryEntity; import net.lab1024.smartadmin.util.AESUtil; import net.lab1024.smartadmin.util.MapRemoveNullUtil; +import net.lab1024.smartadmin.util.SmartBeanUtil; import net.lab1024.smartadmin.util.SmartHttpUtil; import net.sf.json.JSONArray; import org.springframework.beans.factory.annotation.Autowired; @@ -42,18 +46,19 @@ public class OrderService { private String url = "https://miniapp-test.royalcanin.com.cn/rcmini/h5/orderMaster/"; @Transactional - public int generateOrder(OrdersEntity ordersEntity, JSONArray listJson, OrderAddress orderAddress) throws Exception { + public int generateOrder(OrdersEntity ordersEntity, JSONArray listJson) throws Exception { AddOrSaveEntity addOrSaveEntity = new AddOrSaveEntity(); if (ordersEntity.getCouponCode() != ""&& null != ordersEntity.getCouponCode()) { CouponCosumeEntity couponCosumeEntity = new CouponCosumeEntity(); couponCosumeEntity.setCouponCode(ordersEntity.getCouponCode()); couponCosumeEntity.setOrderNo(ordersEntity.getOrderNo()); + couponCosumeEntity.setProductCode(ordersEntity.getProductId()); BigDecimal realCouponAmount =new BigDecimal(ordersEntity.getOrderAmount()); couponCosumeEntity.setRealCouponAmount(realCouponAmount); JSONObject jsonObject = JSONObject.parseObject(couponService.couponCosume(couponCosumeEntity)); - if(!jsonObject.getString("code").equals("0")) { - return 0; - } +// if(!jsonObject.getString("code").equals("0")) { +// return 0; +// } //coupon json化 OrderCouponEntity orderCouponEntity = new OrderCouponEntity(); orderCouponEntity.setCouponCode(ordersEntity.getCouponCode()); @@ -64,13 +69,20 @@ public class OrderService { net.sf.json.JSONObject orderCouponJson = net.sf.json.JSONObject.fromObject(orderCouponParamMap); addOrSaveEntity.setOrderCoupon(orderCouponJson.toString()); } - if(ordersDao.insert(ordersEntity) == 1) { + + Map paramMap = MapRemoveNullUtil.setConditionMap(ordersEntity); + paramMap.remove("orderAddress"); + ObjectMapper objectMapper = new ObjectMapper(); + OrderEntity orderEntity = objectMapper.convertValue(paramMap, OrderEntity.class); + if(ordersDao.insert(orderEntity) == 1) { ordersEntity.setOrderStatus("0"); addOrSaveEntity.setPhoneNumber(ordersEntity.getPhoneNumber()); addOrSaveEntity.setStatus("0"); addOrSaveEntity.setOrderNumber(ordersEntity.getOrderNo()); addOrSaveEntity.setSalesAmount(ordersEntity.getOrderAmount()); addOrSaveEntity.setOrderDetailList(listJson.toString()); + OrderAddress orderAddress = ordersEntity.getOrderAddress(); + addOrSaveEntity.setAddressCityName(orderAddress.getAddressCityName()); addOrSaveEntity.setAddressCountyName(orderAddress.getAddressCountyName()); addOrSaveEntity.setAddressDetailInfo(orderAddress.getAddressDetailInfo()); @@ -87,6 +99,7 @@ public class OrderService { } } + public Boolean afterPaySucceedUpdateOrderStatus(String outTradeNo,String totalFee){ int result = ordersDao.updateOrderStatus(outTradeNo,totalFee); if(result == 1) @@ -100,7 +113,7 @@ public class OrderService { com.alibaba.fastjson.JSONArray jsonArray = JSONObject.parseArray(addOrSaveJson); JSONObject jsonObject = (JSONObject)jsonArray.get(0); String orderNo = jsonObject.getString("orderNumber"); - OrdersEntity ordersEntity = ordersDao.findByOrderId(orderNo); + OrderEntity ordersEntity = ordersDao.findByOrderId(orderNo); if(ordersEntity != null) { if (!ordersEntity.getCouponCode().equals("") && null != ordersEntity.getCouponCode()) { CouponFetchEntity couponFetchEntity = new CouponFetchEntity(); @@ -132,7 +145,7 @@ public class OrderService { com.alibaba.fastjson.JSONArray jsonArray = JSONObject.parseArray(addOrSaveJson); JSONObject jsonObject = (JSONObject)jsonArray.get(0); String orderNo = jsonObject.getString("orderNumber"); - OrdersEntity ordersEntity = ordersDao.findByOrderId(orderNo); + OrderEntity ordersEntity = ordersDao.findByOrderId(orderNo); if(ordersEntity != null){ AddOrSaveEntity addOrSaveEntity = new AddOrSaveEntity(); addOrSaveEntity.setOrderNumber(orderNo); @@ -155,7 +168,10 @@ public class OrderService { Map paramMap = MapRemoveNullUtil.setConditionMap(addOrSaveEntity); net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(paramMap); jsonObject.remove("orderDetailList"); + jsonObject.remove("orderCoupon"); String detailList = addOrSaveEntity.getOrderDetailList(); + String orderCoupon = addOrSaveEntity.getOrderCoupon(); + jsonObject.put("orderCoupon",orderCoupon); jsonObject.put("orderDetailList",detailList); long startTime = System.currentTimeMillis(); String result = SmartHttpUtil.httpPostRaw(url+"addOrSave?channelId=15&secret=H5@2021",jsonObject.toString(),null,"utf-8"); diff --git a/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/royalcanin/Order/OrderMapper.xml b/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/royalcanin/Order/OrderMapper.xml index c69f008b..3e8e22a5 100644 --- a/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/royalcanin/Order/OrderMapper.xml +++ b/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/royalcanin/Order/OrderMapper.xml @@ -2,7 +2,7 @@ + type="net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderEntity">