modify order logic

This commit is contained in:
376654749@qq.com 2022-03-15 16:31:35 +08:00
parent 1417dbc64f
commit cd6a9f9e27
2 changed files with 124 additions and 109 deletions

View File

@ -66,9 +66,7 @@ public class OrderController {
public ResponseDTO<Map<String, String>> generateOrderWX(@RequestBody List<OrdersEntity> ordersEntityList){
StringBuffer productId = new StringBuffer();
StringBuffer productName = new StringBuffer();
StringBuffer remark = new StringBuffer();
Map<String, String> resultMsg = new HashMap<>();
String memberId = "";
String mobile = "";
int buyCount = 0;
double total_fee = 0 ;
@ -77,8 +75,12 @@ public class OrderController {
JSONArray orderDatilListJson = new JSONArray();
OrdersEntity ordersEntity = new OrdersEntity();
OrderAddress orderAddress = new OrderAddress();
String memberId = "";
String couponCode = "";
try {
for (OrdersEntity ordersEntitys : ordersEntityList) {
//删除购物车信息
cartService.cancelProduct(ordersEntitys.getMemberId(), ordersEntity.getProductCode());
//存储orderDetailList
@ -94,31 +96,9 @@ public class OrderController {
orderDatilListEntity.setProductCode(goodsObject.getString("productCode"));
orderDatilListEntity.setEcPrice(goodsObject.getString("ecPrice"));
orderDatilListJson.add(orderDatilListEntity);
if (ordersEntitys.getCouponCode() != "" && ordersEntitys.getCouponCode() != null) {
CouponGetAllEntity couponGetAllEntity = new CouponGetAllEntity();
couponGetAllEntity.setMemberId(ordersEntitys.getMemberId());
couponGetAllEntity.setCouponCode(ordersEntitys.getCouponCode());
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);
}
}
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 = total_fee + orderService.couponTotal(ordersEntity.getCouponTypeId(), Double.parseDouble(ordersEntity.getCouponAmount()), Double.parseDouble(goodsObject.getString("ecPrice")), ordersEntitys.getBuyCount());
} else {
total_fee = total_fee + Double.parseDouble(goodsObject.getString("ecPrice")) * ordersEntitys.getBuyCount();
}
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());
@ -126,16 +106,42 @@ public class OrderController {
orderAddress.setAddressPhoneNumber(ordersEntitys.getOrderAddress().getAddressPhoneNumber());
orderAddress.setAddressUserName(ordersEntitys.getOrderAddress().getAddressUserName());
orderAddress.setAddressProvinceName(ordersEntitys.getOrderAddress().getAddressProvinceName());
productId.append(ordersEntitys.getProductCode() + ",");
productName.append(ordersEntitys.getProductName() + ",");
remark.append(ordersEntitys.getBuyCount() + ",");
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();
}
//验证优惠卷
if (couponCode != "" && couponCode != null) {
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);
}
}
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);
}
ordersEntity.setOrderAddress(orderAddress);
ordersEntity.setProductCode(productId.substring(0, productId.length() - 1));
ordersEntity.setProductName(productName.substring(0, productName.length() - 1));
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);
@ -143,7 +149,7 @@ public class OrderController {
ordersEntity.setOrderNo(GenerateSequenceUtil.generateSequenceNo());
ordersEntity.setOrderStatus("0");
ordersEntity.setBasePoint(basePoint);
ordersEntity.setRemark(remark.substring(0,remark.length() - 1));
ordersEntity.setPayType("3");
resultMsg = orderService.generateOrder(ordersEntity, orderDatilListJson);
if (resultMsg.get("code").equals("1")) {
wxPayEntity.setProduct_id(ordersEntity.getProductCode());
@ -173,7 +179,6 @@ public class OrderController {
StringBuffer productId = new StringBuffer();
StringBuffer productName = new StringBuffer();
Map<String, String> resultMsg = new HashMap<>();
String memberId = "";
String mobile = "";
int buyCount = 0;
double total_fee = 0 ;
@ -182,8 +187,12 @@ public class OrderController {
JSONArray orderDatilListJson = new JSONArray();
OrdersEntity ordersEntity = new OrdersEntity();
OrderAddress orderAddress = new OrderAddress();
String memberId = "";
String couponCode = "";
try {
for (OrdersEntity ordersEntitys : ordersEntityList) {
//删除购物车信息
cartService.cancelProduct(ordersEntitys.getMemberId(), ordersEntity.getProductCode());
//存储orderDetailList
@ -199,10 +208,28 @@ public class OrderController {
orderDatilListEntity.setProductCode(goodsObject.getString("productCode"));
orderDatilListEntity.setEcPrice(goodsObject.getString("ecPrice"));
orderDatilListJson.add(orderDatilListEntity);
if (ordersEntitys.getCouponCode() != "" && ordersEntitys.getCouponCode() != null) {
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();
couponCode = ordersEntitys.getCouponCode();
mobile = ordersEntitys.getPhoneNumber();
buyCount = buyCount + ordersEntitys.getBuyCount();
}
//验证优惠卷
if (couponCode != "" && couponCode != null) {
CouponGetAllEntity couponGetAllEntity = new CouponGetAllEntity();
couponGetAllEntity.setMemberId(ordersEntitys.getMemberId());
couponGetAllEntity.setCouponCode(ordersEntitys.getCouponCode());
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"));
@ -220,23 +247,8 @@ public class OrderController {
ordersEntity.setCouponName(jsonObjectData.getString("couponName"));
ordersEntity.setCouponId(jsonObjectData.getString("couponId"));
ordersEntity.setCouponTypeId(jsonObjectData.getString("couponTypeId"));
total_fee = total_fee + orderService.couponTotal(ordersEntity.getCouponTypeId(), Double.parseDouble(ordersEntity.getCouponAmount()), Double.parseDouble(goodsObject.getString("ecPrice")), ordersEntitys.getBuyCount());
} else {
total_fee = total_fee + Double.parseDouble(goodsObject.getString("ecPrice")) * ordersEntitys.getBuyCount();
total_fee = orderService.couponTotal(ordersEntity.getCouponTypeId(), Double.parseDouble(ordersEntity.getCouponAmount()), total_fee);
}
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));
@ -276,7 +288,6 @@ public class OrderController {
StringBuffer productId = new StringBuffer();
StringBuffer productName = new StringBuffer();
Map<String, String> resultMsg = new HashMap<>();
String memberId = "";
String mobile = "";
int buyCount = 0;
double total_fee = 0 ;
@ -285,27 +296,49 @@ public class OrderController {
JSONArray orderDatilListJson = new JSONArray();
OrdersEntity ordersEntity = new OrdersEntity();
OrderAddress orderAddress = new OrderAddress();
try {
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);
if (ordersEntitys.getCouponCode() != "" && ordersEntitys.getCouponCode() != null) {
String memberId = "";
String couponCode = "";
try {
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();
couponCode = ordersEntitys.getCouponCode();
mobile = ordersEntitys.getPhoneNumber();
buyCount = buyCount + ordersEntitys.getBuyCount();
}
//验证优惠卷
if (couponCode != "" && couponCode != null) {
CouponGetAllEntity couponGetAllEntity = new CouponGetAllEntity();
couponGetAllEntity.setMemberId(ordersEntitys.getMemberId());
couponGetAllEntity.setCouponCode(ordersEntitys.getCouponCode());
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"));
@ -323,34 +356,19 @@ public class OrderController {
ordersEntity.setCouponName(jsonObjectData.getString("couponName"));
ordersEntity.setCouponId(jsonObjectData.getString("couponId"));
ordersEntity.setCouponTypeId(jsonObjectData.getString("couponTypeId"));
total_fee = total_fee + orderService.couponTotal(ordersEntity.getCouponTypeId(), Double.parseDouble(ordersEntity.getCouponAmount()), Double.parseDouble(goodsObject.getString("ecPrice")), ordersEntitys.getBuyCount());
} else {
total_fee = total_fee + Double.parseDouble(goodsObject.getString("ecPrice")) * ordersEntitys.getBuyCount();
total_fee = orderService.couponTotal(ordersEntity.getCouponTypeId(), Double.parseDouble(ordersEntity.getCouponAmount()), total_fee);
}
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");
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")) {

View File

@ -298,7 +298,7 @@ public class OrderService {
}
public double couponTotal(String couponTypeId,double discount,double total,int buyCount){
public double couponTotal(String couponTypeId,double discount,double total){
double endTotal = 0;
switch (couponTypeId)
{
@ -306,22 +306,19 @@ public class OrderService {
// endTotal = (total * (buyCount-1)) + (total * discount);
// break;
case "2":
endTotal = total * buyCount - discount;
endTotal = total - discount;
break;
case "3":
endTotal = (total * buyCount) * (1-discount);
endTotal = total * (1-discount);
break;
case "1" :
endTotal = total * buyCount - discount;
endTotal = total - discount;
break;
case "4" :
endTotal = (total * buyCount) * (1-discount);
endTotal = total * (1-discount);
break;
case "6" :
endTotal = total * buyCount - discount;
break;
case "0":
endTotal = total * buyCount;
endTotal = total - discount;
break;
}
return endTotal;