mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-10-01 17:56:39 +08:00
commit
df365dd6f8
@ -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.WxpayService;
|
||||||
import net.lab1024.smartadmin.module.system.wxpay.wxPayModel.WxPayEntity;
|
import net.lab1024.smartadmin.module.system.wxpay.wxPayModel.WxPayEntity;
|
||||||
import net.lab1024.smartadmin.util.GenerateSequenceUtil;
|
import net.lab1024.smartadmin.util.GenerateSequenceUtil;
|
||||||
|
import net.lab1024.smartadmin.util.SmartStringUtil;
|
||||||
import net.sf.json.JSONArray;
|
import net.sf.json.JSONArray;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -61,8 +62,561 @@ public class OrderController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private GoodService goodService;
|
private GoodService goodService;
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "微信支付订单", notes = "生成订单")
|
@ApiOperation(value = "微信支付订单", notes = "生成订单")
|
||||||
|
@PostMapping("royalcanin/generateOrderWX")
|
||||||
|
public ResponseDTO<Map<String, String>> generateOrderWX(@RequestBody List<OrdersEntity> ordersEntityList){
|
||||||
|
StringBuffer productId = new StringBuffer();
|
||||||
|
StringBuffer productName = new StringBuffer();
|
||||||
|
Map<String, String> 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<ProductMasterQueryEntity> productMasterList = new ArrayList<ProductMasterQueryEntity>();
|
||||||
|
//用来保存指定类的购物车商品数据
|
||||||
|
List<OrdersEntity> ordersList = new ArrayList<OrdersEntity>();
|
||||||
|
//保存购物车其它的商品
|
||||||
|
List<OrdersEntity> ordersList2 = new ArrayList<OrdersEntity>();
|
||||||
|
|
||||||
|
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<String, String> 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<Map<String, String>> generateOrderWXH5(@RequestBody List<OrdersEntity> ordersEntityList){
|
||||||
|
StringBuffer productId = new StringBuffer();
|
||||||
|
StringBuffer productName = new StringBuffer();
|
||||||
|
Map<String, String> 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<ProductMasterQueryEntity> productMasterList = new ArrayList<ProductMasterQueryEntity>();
|
||||||
|
//用来保存指定类的购物车商品数据
|
||||||
|
List<OrdersEntity> ordersList = new ArrayList<OrdersEntity>();
|
||||||
|
//保存购物车其它的商品
|
||||||
|
List<OrdersEntity> ordersList2 = new ArrayList<OrdersEntity>();
|
||||||
|
|
||||||
|
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<String, String> 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")
|
@PostMapping("royalcanin/generateOrderWX")
|
||||||
public ResponseDTO<Map<String, String>> generateOrderWX(@RequestBody List<OrdersEntity> ordersEntityList){
|
public ResponseDTO<Map<String, String>> generateOrderWX(@RequestBody List<OrdersEntity> ordersEntityList){
|
||||||
StringBuffer productId = new StringBuffer();
|
StringBuffer productId = new StringBuffer();
|
||||||
@ -171,10 +725,10 @@ public class OrderController {
|
|||||||
System.out.println(e.getMessage());
|
System.out.println(e.getMessage());
|
||||||
}
|
}
|
||||||
return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_FAIL,resultMsg.get("msg"));
|
return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_FAIL,resultMsg.get("msg"));
|
||||||
}
|
} */
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "微信支付H5订单", notes = "生成H5订单")
|
/* @ApiOperation(value = "微信支付H5订单", notes = "生成H5订单")
|
||||||
@PostMapping("royalcanin/generateOrderWXH5")
|
@PostMapping("royalcanin/generateOrderWXH5")
|
||||||
public ResponseDTO<Map<String, String>> generateOrderWXH5(@RequestBody List<OrdersEntity> ordersEntityList){
|
public ResponseDTO<Map<String, String>> generateOrderWXH5(@RequestBody List<OrdersEntity> ordersEntityList){
|
||||||
StringBuffer productId = new StringBuffer();
|
StringBuffer productId = new StringBuffer();
|
||||||
@ -282,7 +836,7 @@ public class OrderController {
|
|||||||
}
|
}
|
||||||
return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_FAIL,resultMsg.get("msg"));
|
return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_FAIL,resultMsg.get("msg"));
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
@ApiOperation(value = "微信支付JSAPI订单", notes = "生成JSAPI订单")
|
@ApiOperation(value = "微信支付JSAPI订单", notes = "生成JSAPI订单")
|
||||||
@PostMapping("royalcanin/generateOrderWXJSAPI")
|
@PostMapping("royalcanin/generateOrderWXJSAPI")
|
||||||
public ResponseDTO<Map<String, String>> generateOrderWXJSAPI(@RequestBody List<OrdersEntity> ordersEntityList,String resp) throws Exception {
|
public ResponseDTO<Map<String, String>> generateOrderWXJSAPI(@RequestBody List<OrdersEntity> ordersEntityList,String resp) throws Exception {
|
||||||
|
Loading…
Reference in New Issue
Block a user