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 7afbd6ee..ed0e9987 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 @@ -15,10 +15,7 @@ import net.lab1024.smartadmin.module.system.alipay.conf.AlipayConfig; import net.lab1024.smartadmin.module.system.royalcanin.CouponService; import net.lab1024.smartadmin.module.system.royalcanin.coupon.CouponGetAllEntity; import net.lab1024.smartadmin.module.system.royalcanin.good.constant.OrderResponseCodeConst; -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.good.model.ProductMasterQueryEntity; +import net.lab1024.smartadmin.module.system.royalcanin.good.model.*; import net.lab1024.smartadmin.module.system.royalcanin.good.service.CartService; import net.lab1024.smartadmin.module.system.royalcanin.good.service.GoodService; import net.lab1024.smartadmin.module.system.royalcanin.good.service.OrderService; @@ -27,10 +24,10 @@ import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.QueryEntity; import net.lab1024.smartadmin.module.system.wxpay.MyConfig; import net.lab1024.smartadmin.module.system.wxpay.WxpayService; import net.lab1024.smartadmin.module.system.wxpay.wxPayModel.WxPayEntity; -import net.lab1024.smartadmin.util.GenerateSequenceUtil; -import net.lab1024.smartadmin.util.SmartStringUtil; +import net.lab1024.smartadmin.util.*; import net.sf.json.JSONArray; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -61,6 +58,9 @@ public class OrderController { @Autowired private GoodService goodService; + @Value("${royalcanin.order}") + private String url ; + @ApiOperation(value = "微信支付订单", notes = "生成订单") @PostMapping("royalcanin/generateOrderWX") public ResponseDTO> generateOrderWX(@RequestBody List ordersEntityList){ @@ -73,6 +73,42 @@ public class OrderController { return orderService.createOrderWXH5Info(ordersEntityList); } + @ApiOperation(value = "微信支付", notes = "生成二维码支付订单") + @PostMapping("royalcanin/generateQrCode") + public ResponseDTO> generateQrCode(@RequestBody OrdersEntity ordersEntity) throws Exception { + if(SmartStringUtil.isEmpty(ordersEntity.getOrderNo())){ + return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_ERROR); + } + //校验本地是否 + OrderEntity order = orderService.findByOrderId(ordersEntity.getOrderNo()); + if(null == order){ + return ResponseDTO.wrap(OrderResponseCodeConst.WITHOUT_ORDER); + } + //校验CRM该订单数据是否存在 + QueryEntity queryEntity = new QueryEntity(); + Map paramMap = MapRemoveNullUtil.setConditionMap(queryEntity); + paramMap.put("orderNumber", ordersEntity.getOrderNo()); + MapRemoveNullUtil.removeNullEntry(paramMap); + String result =SmartHttpUtil.sendPostForm(url+"query",paramMap,null); + JSONObject jsonObject = JSONObject.parseObject(result); + if(SmartStringUtil.isEmpty(jsonObject.getString("data"))){ + return ResponseDTO.wrap(OrderResponseCodeConst.WITHOUT_ORDER); + }; + String afterDecodeResult = AESUtil.decryptLinux(jsonObject.getString("data"), AESUtil.KEY); + com.alibaba.fastjson.JSONArray jsonArray = JSONObject.parseArray(afterDecodeResult); + JSONObject jsonObjectResult = (JSONObject)jsonArray.get(0); + //JSONObject orderJson = JSONObject.parseObject(afterDecodeResult); + + WxPayEntity wxPayEntity = new WxPayEntity(); + wxPayEntity.setProduct_id(order.getProductCode()); + wxPayEntity.setTotal_fee(StringUtil.toString(jsonObjectResult.getString("salesAmount"))); + wxPayEntity.setOut_trade_no(jsonObjectResult.getString("orderNumber")); + Map returnMap = new HashMap<>(); + returnMap.put("orderNumber", jsonObjectResult.getString("orderNumber")); + returnMap.put("orderAmount", jsonObjectResult.getString("salesAmount")); + return ResponseDTO.succData(returnMap, wxpayService.generateQRCode(wxPayEntity)); + } + //原API /* @ApiOperation(value = "微信支付订单", notes = "生成订单")