From b5bcc2db8c4fdbe0ddf9b9bc29843795bedffb0c Mon Sep 17 00:00:00 2001 From: "602090531@qq.com" Date: Fri, 18 Mar 2022 18:57:10 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=86=99=E4=BA=86=E4=BC=98=E6=83=A0?= =?UTF-8?q?=E5=88=B8=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../royalcanin/good/OrderController.java | 562 +++++++++++++++++- 1 file changed, 558 insertions(+), 4 deletions(-) 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 1145cac2..c26d854d 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 @@ -29,6 +29,7 @@ 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.sf.json.JSONArray; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -61,8 +62,561 @@ public class OrderController { @Autowired private GoodService goodService; - @ApiOperation(value = "微信支付订单", notes = "生成订单") + @PostMapping("royalcanin/generateOrderWX") + public ResponseDTO> generateOrderWX(@RequestBody List ordersEntityList){ + StringBuffer productId = new StringBuffer(); + StringBuffer productName = new StringBuffer(); + Map resultMsg = new HashMap<>(); + String mobile = ""; + int buyCount = 0; + double total_fee = 0 ; + double basePoint = 0 ; + WxPayEntity wxPayEntity = new WxPayEntity(); + JSONArray orderDatilListJson = new JSONArray(); + OrdersEntity ordersEntity = new OrdersEntity(); + OrderAddress orderAddress = new OrderAddress(); + + String memberId = ""; + String couponCode = ""; + try { + //先查订单存在的优惠券 + for (OrdersEntity orders : ordersEntityList){ + if (orders.getCouponCode() != "" && orders.getCouponCode() != null) { + couponCode = orders.getCouponCode(); + } + memberId = orders.getMemberId(); + } + + //根据有没有优惠券来计算商品的总价 + if(SmartStringUtil.isNotEmpty(couponCode)){ + CouponGetAllEntity couponGetAllEntity = new CouponGetAllEntity(); + couponGetAllEntity.setMemberId(memberId); + couponGetAllEntity.setCouponCode(couponCode); + String couponInfo = couponService.couponGetAll(couponGetAllEntity); + JSONObject jsonObject = JSONObject.parseObject(couponInfo); + com.alibaba.fastjson.JSONArray jsonArray = JSONObject.parseArray(jsonObject.getString("data")); + if(jsonArray.size() == 0){ + return ResponseDTO.wrap(OrderResponseCodeConst.COUPON_USE_FAIL); + } + + JSONObject jsonObjectData = (JSONObject) jsonArray.get(0); + if (jsonObjectData.getString("udf2") != null){ + if (!jsonObjectData.getString("udf2").equals("H5")){ + return ResponseDTO.wrap(OrderResponseCodeConst.COUPON_USE_FAIL); + } + } + + //根据productCodes来判断优惠券的类型,空的话就是通用券,不是空就是指定类别券 + if(SmartStringUtil.isNotBlank(jsonObjectData.getString("productCodes"))){ + String[] productCodes = jsonObjectData.getString("productCodes").toString().split(","); + List productMasterList = new ArrayList(); + //用来保存指定类的购物车商品数据 + List ordersList = new ArrayList(); + //保存购物车其它的商品 + List ordersList2 = new ArrayList(); + + for (OrdersEntity orders2 : ordersEntityList){ + //存储orderDetailList + ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); + productMasterQueryEntity.setProductCode(orders2.getProductCode()); + String goodsStr = goodService.productQuery(productMasterQueryEntity); + com.alibaba.fastjson.JSONArray jsonGoodsArray = JSONObject.parseArray(goodsStr); + JSONObject goodsObject = (JSONObject) jsonGoodsArray.get(0); + + if(SmartStringUtil.isNotBlank(goodsObject.getString("productCode"))){ + if(Arrays.asList(productCodes).contains(goodsObject.get("productCode"))){ + ordersList.add(orders2); + }else{ + ordersList2.add(orders2); + } + } + } + //得到当前能用优惠券的商品总金额 + Double total_Coupon = 0.0; + //得到其它商品的总金额 + Double total_Other = 0.0; + + if( ordersList != null && ordersList.size() > 0 ) { + //遍历购物车中能用当前优惠券的商品 + for (OrdersEntity entity : ordersList) { + //删除购物车信息 + cartService.cancelProduct(entity.getMemberId(), entity.getProductCode()); + //存储orderDetailList + ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); + productMasterQueryEntity.setProductCode(entity.getProductCode()); + String goodsStr = goodService.productQuery(productMasterQueryEntity); + + com.alibaba.fastjson.JSONArray jsonGoodsArray2 = JSONObject.parseArray(goodsStr); + JSONObject goodsObject2 = (JSONObject) jsonGoodsArray2.get(0); + OrderDatilListEntity orderDatilListEntity = new OrderDatilListEntity(); + orderDatilListEntity.setProductName(goodsObject2.getString("productName")); + orderDatilListEntity.setPcs(entity.getBuyCount()); + orderDatilListEntity.setProductCode(goodsObject2.getString("productCode")); + orderDatilListEntity.setEcPrice(goodsObject2.getString("ecPrice")); + orderDatilListJson.add(orderDatilListEntity); + + total_Coupon = total_Coupon + Double.parseDouble(goodsObject2.getString("ecPrice")) * entity.getBuyCount(); + + basePoint = basePoint + entity.getBasePoint(); + orderAddress.setAddressCityName(entity.getOrderAddress().getAddressCityName()); + orderAddress.setAddressCountyName(entity.getOrderAddress().getAddressCountyName()); + orderAddress.setAddressDetailInfo(entity.getOrderAddress().getAddressDetailInfo()); + orderAddress.setAddressPhoneNumber(entity.getOrderAddress().getAddressPhoneNumber()); + orderAddress.setAddressUserName(entity.getOrderAddress().getAddressUserName()); + orderAddress.setAddressProvinceName(entity.getOrderAddress().getAddressProvinceName()); + productId.append(entity.getProductCode() + ","); + productName.append(entity.getProductName() + ","); + memberId = entity.getMemberId(); + mobile = entity.getPhoneNumber(); + buyCount = buyCount + entity.getBuyCount(); + } + //校验当前订单金额有没有小于优惠券金额 + if(jsonObjectData.getString("couponAmount") != null ){ + Double couponAmount = Double.valueOf(jsonObjectData.getString("couponAmount")); + if(total_Coupon < couponAmount){ + return ResponseDTO.wrap(OrderResponseCodeConst.COUPON_USE_FAIL); + } + } + + ordersEntity.setCouponAmount(jsonObjectData.getString("couponAmount") == null ? jsonObjectData.getString("discount") : jsonObjectData.getString("couponAmount")); + ordersEntity.setCouponCode(jsonObjectData.getString("couponCode")); + ordersEntity.setCouponName(jsonObjectData.getString("couponName")); + ordersEntity.setCouponId(jsonObjectData.getString("couponId")); + ordersEntity.setCouponTypeId(jsonObjectData.getString("couponTypeId")); + total_fee = orderService.couponTotal(ordersEntity.getCouponTypeId(), Double.parseDouble(ordersEntity.getCouponAmount()), total_Coupon); + + } + + if( ordersList2 != null && ordersList2.size() > 0 ) { + //遍历购物车的其它商品 + for (OrdersEntity entity2 : ordersList2) { + //删除购物车信息 + cartService.cancelProduct(entity2.getMemberId(), entity2.getProductCode()); + //存储orderDetailList + ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); + productMasterQueryEntity.setProductCode(entity2.getProductCode()); + String goodsStr = goodService.productQuery(productMasterQueryEntity); + + com.alibaba.fastjson.JSONArray jsonGoodsArray3 = JSONObject.parseArray(goodsStr); + JSONObject goodsObject3 = (JSONObject) jsonGoodsArray3.get(0); + OrderDatilListEntity orderDatilListEntity = new OrderDatilListEntity(); + orderDatilListEntity.setProductName(goodsObject3.getString("productName")); + orderDatilListEntity.setPcs(entity2.getBuyCount()); + orderDatilListEntity.setProductCode(goodsObject3.getString("productCode")); + orderDatilListEntity.setEcPrice(goodsObject3.getString("ecPrice")); + orderDatilListJson.add(orderDatilListEntity); + + total_Other = total_Other + Double.parseDouble(goodsObject3.getString("ecPrice")) * entity2.getBuyCount(); + + basePoint = basePoint + entity2.getBasePoint(); + orderAddress.setAddressCityName(entity2.getOrderAddress().getAddressCityName()); + orderAddress.setAddressCountyName(entity2.getOrderAddress().getAddressCountyName()); + orderAddress.setAddressDetailInfo(entity2.getOrderAddress().getAddressDetailInfo()); + orderAddress.setAddressPhoneNumber(entity2.getOrderAddress().getAddressPhoneNumber()); + orderAddress.setAddressUserName(entity2.getOrderAddress().getAddressUserName()); + orderAddress.setAddressProvinceName(entity2.getOrderAddress().getAddressProvinceName()); + productId.append(entity2.getProductCode() + ","); + productName.append(entity2.getProductName() + ","); + memberId = entity2.getMemberId(); + mobile = entity2.getPhoneNumber(); + buyCount = buyCount + entity2.getBuyCount(); + } + total_fee = total_fee + total_Other; + } + }else{ + for (OrdersEntity ordersEntitys : ordersEntityList) { + //删除购物车信息 + cartService.cancelProduct(ordersEntitys.getMemberId(), ordersEntity.getProductCode()); + //存储orderDetailList + ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); + productMasterQueryEntity.setProductCode(ordersEntitys.getProductCode()); + String goodsStr = goodService.productQuery(productMasterQueryEntity); + + com.alibaba.fastjson.JSONArray jsonGoodsArray = JSONObject.parseArray(goodsStr); + JSONObject goodsObject = (JSONObject)jsonGoodsArray.get(0); + OrderDatilListEntity orderDatilListEntity = new OrderDatilListEntity(); + orderDatilListEntity.setProductName(goodsObject.getString("productName")); + orderDatilListEntity.setPcs(ordersEntitys.getBuyCount()); + orderDatilListEntity.setProductCode(goodsObject.getString("productCode")); + orderDatilListEntity.setEcPrice(goodsObject.getString("ecPrice")); + orderDatilListJson.add(orderDatilListEntity); + + total_fee = total_fee + Double.parseDouble(goodsObject.getString("ecPrice")) * ordersEntitys.getBuyCount(); + + basePoint = basePoint + ordersEntitys.getBasePoint(); + 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.getProductCode()+","); + productName.append(ordersEntitys.getProductName()+","); + memberId = ordersEntitys.getMemberId(); + if (ordersEntitys.getCouponCode() != "" && ordersEntitys.getCouponCode() != null) { + couponCode = ordersEntitys.getCouponCode(); + } + mobile = ordersEntitys.getPhoneNumber(); + buyCount = buyCount + ordersEntitys.getBuyCount(); + } + + ordersEntity.setCouponAmount(jsonObjectData.getString("couponAmount") == null ? jsonObjectData.getString("discount") : jsonObjectData.getString("couponAmount")); + ordersEntity.setCouponCode(jsonObjectData.getString("couponCode")); + ordersEntity.setCouponName(jsonObjectData.getString("couponName")); + ordersEntity.setCouponId(jsonObjectData.getString("couponId")); + ordersEntity.setCouponTypeId(jsonObjectData.getString("couponTypeId")); + total_fee = orderService.couponTotal(ordersEntity.getCouponTypeId(), Double.parseDouble(ordersEntity.getCouponAmount()), total_fee); + } + }else{ + for (OrdersEntity ordersEntitys : ordersEntityList) { + + //删除购物车信息 + cartService.cancelProduct(ordersEntitys.getMemberId(), ordersEntity.getProductCode()); + //存储orderDetailList + ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); + productMasterQueryEntity.setProductCode(ordersEntitys.getProductCode()); + String goodsStr = goodService.productQuery(productMasterQueryEntity); + + com.alibaba.fastjson.JSONArray jsonGoodsArray = JSONObject.parseArray(goodsStr); + JSONObject goodsObject = (JSONObject)jsonGoodsArray.get(0); + OrderDatilListEntity orderDatilListEntity = new OrderDatilListEntity(); + orderDatilListEntity.setProductName(goodsObject.getString("productName")); + orderDatilListEntity.setPcs(ordersEntitys.getBuyCount()); + orderDatilListEntity.setProductCode(goodsObject.getString("productCode")); + orderDatilListEntity.setEcPrice(goodsObject.getString("ecPrice")); + orderDatilListJson.add(orderDatilListEntity); + + total_fee = total_fee + Double.parseDouble(goodsObject.getString("ecPrice")) * ordersEntitys.getBuyCount(); + + basePoint = basePoint + ordersEntitys.getBasePoint(); + 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.getProductCode()+","); + productName.append(ordersEntitys.getProductName()+","); + memberId = ordersEntitys.getMemberId(); + mobile = ordersEntitys.getPhoneNumber(); + buyCount = buyCount + ordersEntitys.getBuyCount(); + } + + } + + ordersEntity.setOrderAddress(orderAddress); + ordersEntity.setProductCode(productId.substring(0,productId.length()-1)); + ordersEntity.setProductName(productName.substring(0,productName.length()-1)); + ordersEntity.setOrderAmount(StringUtil.toString(total_fee)); + ordersEntity.setMemberId(memberId); + ordersEntity.setPhoneNumber(mobile); + ordersEntity.setBuyCount(buyCount); + ordersEntity.setOrderNo(GenerateSequenceUtil.generateSequenceNo()); + ordersEntity.setOrderStatus("0"); + ordersEntity.setBasePoint(basePoint); + ordersEntity.setPayType("3"); + resultMsg = orderService.generateOrder(ordersEntity, orderDatilListJson); + if (resultMsg.get("code").equals("1")) { + wxPayEntity.setProduct_id(ordersEntity.getProductCode()); + wxPayEntity.setTotal_fee(StringUtil.toString(total_fee)); + wxPayEntity.setOut_trade_no(ordersEntity.getOrderNo()); + Map returnMap = new HashMap<>(); + returnMap.put("orderNumber", ordersEntity.getOrderNo()); + returnMap.put("orderAmount", ordersEntity.getOrderAmount()); + return ResponseDTO.succData(returnMap, wxpayService.generateQRCode(wxPayEntity)); + }else if (resultMsg.get("code").equals("0")){ + return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_ERROR,resultMsg.get("msg")); + }else if (resultMsg.get("code").equals("3")){ + return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_FAIL_COUPONDED,resultMsg.get("msg")); + }else if (resultMsg.get("code").equals("4")){ + return ResponseDTO.wrap(OrderResponseCodeConst.COUPON_USE_FAIL,resultMsg.get("msg")); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_FAIL,resultMsg.get("msg")); + } + + @ApiOperation(value = "微信支付H5订单", notes = "生成H5订单") + @PostMapping("royalcanin/generateOrderWXH5") + public ResponseDTO> generateOrderWXH5(@RequestBody List ordersEntityList){ + StringBuffer productId = new StringBuffer(); + StringBuffer productName = new StringBuffer(); + Map resultMsg = new HashMap<>(); + String mobile = ""; + int buyCount = 0; + double total_fee = 0 ; + double basePoint = 0 ; + WxPayEntity wxPayEntity = new WxPayEntity(); + JSONArray orderDatilListJson = new JSONArray(); + OrdersEntity ordersEntity = new OrdersEntity(); + OrderAddress orderAddress = new OrderAddress(); + + String memberId = ""; + String couponCode = ""; + try { + //先查订单存在的优惠券 + for (OrdersEntity orders : ordersEntityList){ + if (orders.getCouponCode() != "" && orders.getCouponCode() != null) { + couponCode = orders.getCouponCode(); + } + memberId = orders.getMemberId(); + } + + //根据有没有优惠券来计算商品的总价 + if(SmartStringUtil.isNotEmpty(couponCode)){ + CouponGetAllEntity couponGetAllEntity = new CouponGetAllEntity(); + couponGetAllEntity.setMemberId(memberId); + couponGetAllEntity.setCouponCode(couponCode); + String couponInfo = couponService.couponGetAll(couponGetAllEntity); + JSONObject jsonObject = JSONObject.parseObject(couponInfo); + com.alibaba.fastjson.JSONArray jsonArray = JSONObject.parseArray(jsonObject.getString("data")); + if(jsonArray.size() == 0){ + return ResponseDTO.wrap(OrderResponseCodeConst.COUPON_USE_FAIL); + } + + JSONObject jsonObjectData = (JSONObject) jsonArray.get(0); + if (jsonObjectData.getString("udf2") != null){ + if (!jsonObjectData.getString("udf2").equals("H5")){ + return ResponseDTO.wrap(OrderResponseCodeConst.COUPON_USE_FAIL); + } + } + + //根据productCodes来判断优惠券的类型,空的话就是通用券,不是空就是指定类别券 + if(SmartStringUtil.isNotBlank(jsonObjectData.getString("productCodes"))){ + String[] productCodes = jsonObjectData.getString("productCodes").toString().split(","); + List productMasterList = new ArrayList(); + //用来保存指定类的购物车商品数据 + List ordersList = new ArrayList(); + //保存购物车其它的商品 + List ordersList2 = new ArrayList(); + + for (OrdersEntity orders2 : ordersEntityList){ + //存储orderDetailList + ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); + productMasterQueryEntity.setProductCode(orders2.getProductCode()); + String goodsStr = goodService.productQuery(productMasterQueryEntity); + com.alibaba.fastjson.JSONArray jsonGoodsArray = JSONObject.parseArray(goodsStr); + JSONObject goodsObject = (JSONObject) jsonGoodsArray.get(0); + + if(SmartStringUtil.isNotBlank(goodsObject.getString("productCode"))){ + if(Arrays.asList(productCodes).contains(goodsObject.get("productCode"))){ + ordersList.add(orders2); + }else{ + ordersList2.add(orders2); + } + } + } + //得到当前能用优惠券的商品总金额 + Double total_Coupon = 0.0; + //得到其它商品的总金额 + Double total_Other = 0.0; + + if( ordersList != null && ordersList.size() > 0 ) { + //遍历购物车中能用当前优惠券的商品 + for (OrdersEntity entity : ordersList) { + //删除购物车信息 + cartService.cancelProduct(entity.getMemberId(), entity.getProductCode()); + //存储orderDetailList + ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); + productMasterQueryEntity.setProductCode(entity.getProductCode()); + String goodsStr = goodService.productQuery(productMasterQueryEntity); + + com.alibaba.fastjson.JSONArray jsonGoodsArray2 = JSONObject.parseArray(goodsStr); + JSONObject goodsObject2 = (JSONObject) jsonGoodsArray2.get(0); + OrderDatilListEntity orderDatilListEntity = new OrderDatilListEntity(); + orderDatilListEntity.setProductName(goodsObject2.getString("productName")); + orderDatilListEntity.setPcs(entity.getBuyCount()); + orderDatilListEntity.setProductCode(goodsObject2.getString("productCode")); + orderDatilListEntity.setEcPrice(goodsObject2.getString("ecPrice")); + orderDatilListJson.add(orderDatilListEntity); + + total_Coupon = total_Coupon + Double.parseDouble(goodsObject2.getString("ecPrice")) * entity.getBuyCount(); + + basePoint = basePoint + entity.getBasePoint(); + orderAddress.setAddressCityName(entity.getOrderAddress().getAddressCityName()); + orderAddress.setAddressCountyName(entity.getOrderAddress().getAddressCountyName()); + orderAddress.setAddressDetailInfo(entity.getOrderAddress().getAddressDetailInfo()); + orderAddress.setAddressPhoneNumber(entity.getOrderAddress().getAddressPhoneNumber()); + orderAddress.setAddressUserName(entity.getOrderAddress().getAddressUserName()); + orderAddress.setAddressProvinceName(entity.getOrderAddress().getAddressProvinceName()); + productId.append(entity.getProductCode() + ","); + productName.append(entity.getProductName() + ","); + memberId = entity.getMemberId(); + mobile = entity.getPhoneNumber(); + buyCount = buyCount + entity.getBuyCount(); + } + //校验当前订单金额有没有小于优惠券金额 + if(jsonObjectData.getString("couponAmount") != null ){ + Double couponAmount = Double.valueOf(jsonObjectData.getString("couponAmount")); + if(total_Coupon < couponAmount){ + return ResponseDTO.wrap(OrderResponseCodeConst.COUPON_USE_FAIL); + } + } + + ordersEntity.setCouponAmount(jsonObjectData.getString("couponAmount") == null ? jsonObjectData.getString("discount") : jsonObjectData.getString("couponAmount")); + ordersEntity.setCouponCode(jsonObjectData.getString("couponCode")); + ordersEntity.setCouponName(jsonObjectData.getString("couponName")); + ordersEntity.setCouponId(jsonObjectData.getString("couponId")); + ordersEntity.setCouponTypeId(jsonObjectData.getString("couponTypeId")); + total_fee = orderService.couponTotal(ordersEntity.getCouponTypeId(), Double.parseDouble(ordersEntity.getCouponAmount()), total_Coupon); + + } + + if( ordersList2 != null && ordersList2.size() > 0 ) { + //遍历购物车的其它商品 + for (OrdersEntity entity2 : ordersList2) { + //删除购物车信息 + cartService.cancelProduct(entity2.getMemberId(), entity2.getProductCode()); + //存储orderDetailList + ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); + productMasterQueryEntity.setProductCode(entity2.getProductCode()); + String goodsStr = goodService.productQuery(productMasterQueryEntity); + + com.alibaba.fastjson.JSONArray jsonGoodsArray3 = JSONObject.parseArray(goodsStr); + JSONObject goodsObject3 = (JSONObject) jsonGoodsArray3.get(0); + OrderDatilListEntity orderDatilListEntity = new OrderDatilListEntity(); + orderDatilListEntity.setProductName(goodsObject3.getString("productName")); + orderDatilListEntity.setPcs(entity2.getBuyCount()); + orderDatilListEntity.setProductCode(goodsObject3.getString("productCode")); + orderDatilListEntity.setEcPrice(goodsObject3.getString("ecPrice")); + orderDatilListJson.add(orderDatilListEntity); + + total_Other = total_Other + Double.parseDouble(goodsObject3.getString("ecPrice")) * entity2.getBuyCount(); + + basePoint = basePoint + entity2.getBasePoint(); + orderAddress.setAddressCityName(entity2.getOrderAddress().getAddressCityName()); + orderAddress.setAddressCountyName(entity2.getOrderAddress().getAddressCountyName()); + orderAddress.setAddressDetailInfo(entity2.getOrderAddress().getAddressDetailInfo()); + orderAddress.setAddressPhoneNumber(entity2.getOrderAddress().getAddressPhoneNumber()); + orderAddress.setAddressUserName(entity2.getOrderAddress().getAddressUserName()); + orderAddress.setAddressProvinceName(entity2.getOrderAddress().getAddressProvinceName()); + productId.append(entity2.getProductCode() + ","); + productName.append(entity2.getProductName() + ","); + memberId = entity2.getMemberId(); + mobile = entity2.getPhoneNumber(); + buyCount = buyCount + entity2.getBuyCount(); + } + total_fee = total_fee + total_Other; + } + }else{ + for (OrdersEntity ordersEntitys : ordersEntityList) { + //删除购物车信息 + cartService.cancelProduct(ordersEntitys.getMemberId(), ordersEntity.getProductCode()); + //存储orderDetailList + ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); + productMasterQueryEntity.setProductCode(ordersEntitys.getProductCode()); + String goodsStr = goodService.productQuery(productMasterQueryEntity); + + com.alibaba.fastjson.JSONArray jsonGoodsArray = JSONObject.parseArray(goodsStr); + JSONObject goodsObject = (JSONObject)jsonGoodsArray.get(0); + OrderDatilListEntity orderDatilListEntity = new OrderDatilListEntity(); + orderDatilListEntity.setProductName(goodsObject.getString("productName")); + orderDatilListEntity.setPcs(ordersEntitys.getBuyCount()); + orderDatilListEntity.setProductCode(goodsObject.getString("productCode")); + orderDatilListEntity.setEcPrice(goodsObject.getString("ecPrice")); + orderDatilListJson.add(orderDatilListEntity); + + total_fee = total_fee + Double.parseDouble(goodsObject.getString("ecPrice")) * ordersEntitys.getBuyCount(); + + basePoint = basePoint + ordersEntitys.getBasePoint(); + 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.getProductCode()+","); + productName.append(ordersEntitys.getProductName()+","); + memberId = ordersEntitys.getMemberId(); + if (ordersEntitys.getCouponCode() != "" && ordersEntitys.getCouponCode() != null) { + couponCode = ordersEntitys.getCouponCode(); + } + mobile = ordersEntitys.getPhoneNumber(); + buyCount = buyCount + ordersEntitys.getBuyCount(); + } + + ordersEntity.setCouponAmount(jsonObjectData.getString("couponAmount") == null ? jsonObjectData.getString("discount") : jsonObjectData.getString("couponAmount")); + ordersEntity.setCouponCode(jsonObjectData.getString("couponCode")); + ordersEntity.setCouponName(jsonObjectData.getString("couponName")); + ordersEntity.setCouponId(jsonObjectData.getString("couponId")); + ordersEntity.setCouponTypeId(jsonObjectData.getString("couponTypeId")); + total_fee = orderService.couponTotal(ordersEntity.getCouponTypeId(), Double.parseDouble(ordersEntity.getCouponAmount()), total_fee); + } + }else{ + for (OrdersEntity ordersEntitys : ordersEntityList) { + + //删除购物车信息 + cartService.cancelProduct(ordersEntitys.getMemberId(), ordersEntity.getProductCode()); + //存储orderDetailList + ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); + productMasterQueryEntity.setProductCode(ordersEntitys.getProductCode()); + String goodsStr = goodService.productQuery(productMasterQueryEntity); + + com.alibaba.fastjson.JSONArray jsonGoodsArray = JSONObject.parseArray(goodsStr); + JSONObject goodsObject = (JSONObject)jsonGoodsArray.get(0); + OrderDatilListEntity orderDatilListEntity = new OrderDatilListEntity(); + orderDatilListEntity.setProductName(goodsObject.getString("productName")); + orderDatilListEntity.setPcs(ordersEntitys.getBuyCount()); + orderDatilListEntity.setProductCode(goodsObject.getString("productCode")); + orderDatilListEntity.setEcPrice(goodsObject.getString("ecPrice")); + orderDatilListJson.add(orderDatilListEntity); + + total_fee = total_fee + Double.parseDouble(goodsObject.getString("ecPrice")) * ordersEntitys.getBuyCount(); + + basePoint = basePoint + ordersEntitys.getBasePoint(); + 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.getProductCode()+","); + productName.append(ordersEntitys.getProductName()+","); + memberId = ordersEntitys.getMemberId(); + mobile = ordersEntitys.getPhoneNumber(); + buyCount = buyCount + ordersEntitys.getBuyCount(); + } + + } + + ordersEntity.setOrderAddress(orderAddress); + ordersEntity.setProductCode(productId.substring(0,productId.length()-1)); + ordersEntity.setProductName(productName.substring(0,productName.length()-1)); + ordersEntity.setOrderAmount(StringUtil.toString(total_fee)); + ordersEntity.setMemberId(memberId); + ordersEntity.setPhoneNumber(mobile); + ordersEntity.setBuyCount(buyCount); + ordersEntity.setOrderNo(GenerateSequenceUtil.generateSequenceNo()); + ordersEntity.setOrderStatus("0"); + ordersEntity.setBasePoint(basePoint); + ordersEntity.setPayType("3"); + resultMsg = orderService.generateOrder(ordersEntity, orderDatilListJson); + if (resultMsg.get("code").equals("1")) { + wxPayEntity.setProduct_id(ordersEntity.getProductCode()); + wxPayEntity.setTotal_fee(StringUtil.toString(total_fee)); + wxPayEntity.setOut_trade_no(ordersEntity.getOrderNo()); + Map returnMap = new HashMap<>(); + returnMap.put("orderNumber", ordersEntity.getOrderNo()); + returnMap.put("orderAmount", ordersEntity.getOrderAmount()); + return ResponseDTO.succData(returnMap,wxpayService.dounifiedOrder(wxPayEntity)); + }else if (resultMsg.get("code").equals("0")){ + return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_ERROR,resultMsg.get("msg")); + }else if (resultMsg.get("code").equals("3")){ + return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_FAIL_COUPONDED,resultMsg.get("msg")); + }else if (resultMsg.get("code").equals("4")){ + return ResponseDTO.wrap(OrderResponseCodeConst.COUPON_USE_FAIL,resultMsg.get("msg")); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_FAIL,resultMsg.get("msg")); + } + + + //原API + /* @ApiOperation(value = "微信支付订单", notes = "生成订单") @PostMapping("royalcanin/generateOrderWX") public ResponseDTO> generateOrderWX(@RequestBody List ordersEntityList){ StringBuffer productId = new StringBuffer(); @@ -171,10 +725,10 @@ public class OrderController { System.out.println(e.getMessage()); } return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_FAIL,resultMsg.get("msg")); - } + } */ - @ApiOperation(value = "微信支付H5订单", notes = "生成H5订单") + /* @ApiOperation(value = "微信支付H5订单", notes = "生成H5订单") @PostMapping("royalcanin/generateOrderWXH5") public ResponseDTO> generateOrderWXH5(@RequestBody List ordersEntityList){ StringBuffer productId = new StringBuffer(); @@ -282,7 +836,7 @@ public class OrderController { } return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_FAIL,resultMsg.get("msg")); } - +*/ @ApiOperation(value = "微信支付JSAPI订单", notes = "生成JSAPI订单") @PostMapping("royalcanin/generateOrderWXJSAPI") public ResponseDTO> generateOrderWXJSAPI(@RequestBody List ordersEntityList,String resp) throws Exception {