记得上下班打卡 | git大法好,push需谨慎

Commit 55b30934 authored by 胡佳晨's avatar 胡佳晨

店铺券使用逻辑提交

parent fc7db131
...@@ -145,10 +145,15 @@ public class GoblinStoreOrder implements Serializable,Cloneable { ...@@ -145,10 +145,15 @@ public class GoblinStoreOrder implements Serializable,Cloneable {
private String redEnvelopeCode; private String redEnvelopeCode;
/** /**
* 券id * 平台券id
*/ */
private String ucouponId; private String ucouponId;
/**
* 商铺券id
*/
private String storeCouponId;
/** /**
* 使用积分数 * 使用积分数
*/ */
......
...@@ -955,6 +955,8 @@ alter table goblin_store_order add store_name varchar(255) default '' comment ' ...@@ -955,6 +955,8 @@ alter table goblin_store_order add store_name varchar(255) default '' comment '
alter table goblin_store_order add market_type varchar(255) default '' comment '活动类型[ZZ-正在下单]'; alter table goblin_store_order add market_type varchar(255) default '' comment '活动类型[ZZ-正在下单]';
alter table goblin_store_order add market_id varchar(255) default '' comment '活动id'; alter table goblin_store_order add market_id varchar(255) default '' comment '活动id';
alter table goblin_store_order add store_coupon_id varchar(255) default '' comment '商铺券id';
alter table goblin_back_order add back_price_express decimal (8,2) default 0 comment '退款快递费'; alter table goblin_back_order add back_price_express decimal (8,2) default 0 comment '退款快递费';
# -- >>------------------------------------------------------------------------------------ # -- >>------------------------------------------------------------------------------------
......
...@@ -12,13 +12,11 @@ import com.liquidnet.service.goblin.dto.manage.GoblinOrderParam; ...@@ -12,13 +12,11 @@ import com.liquidnet.service.goblin.dto.manage.GoblinOrderParam;
import com.liquidnet.service.goblin.dto.manage.GoblinOrderSkuParam; import com.liquidnet.service.goblin.dto.manage.GoblinOrderSkuParam;
import com.liquidnet.service.goblin.dto.manage.GoblinOrderStoreParam; import com.liquidnet.service.goblin.dto.manage.GoblinOrderStoreParam;
import com.liquidnet.service.goblin.dto.vo.*; import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.param.GoblinOrderPreParam; import com.liquidnet.service.goblin.param.*;
import com.liquidnet.service.goblin.param.GoblinOrderSqlParam;
import com.liquidnet.service.goblin.param.PayAgainParam;
import com.liquidnet.service.goblin.param.SyncOrderParam;
import com.liquidnet.service.goblin.entity.GoblinOrderAttr; import com.liquidnet.service.goblin.entity.GoblinOrderAttr;
import com.liquidnet.service.goblin.entity.GoblinOrderSku; import com.liquidnet.service.goblin.entity.GoblinOrderSku;
import com.liquidnet.service.goblin.entity.GoblinStoreOrder; import com.liquidnet.service.goblin.entity.GoblinStoreOrder;
import com.liquidnet.service.goblin.service.GoblinCouponService;
import com.liquidnet.service.goblin.service.IGoblinOrderService; import com.liquidnet.service.goblin.service.IGoblinOrderService;
import com.liquidnet.service.goblin.util.*; import com.liquidnet.service.goblin.util.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -50,6 +48,8 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -50,6 +48,8 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
QueueUtils queueUtils; QueueUtils queueUtils;
@Autowired @Autowired
GoblinOrderUtils orderUtils; GoblinOrderUtils orderUtils;
@Autowired
GoblinCouponService goblinCouponService;
@Value("${liquidnet.service.order.url-pay.pay}") @Value("${liquidnet.service.order.url-pay.pay}")
private String payUrl; private String payUrl;
...@@ -144,7 +144,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -144,7 +144,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
} }
}//GoblinOrderSkuParam }//GoblinOrderSkuParam
//下单 //下单
GoblinOrderPreParam pre = order(param, storeParam, uid, isMember, addressesVo, orderMasterCode, orderId, orderCode, platformCodeList); GoblinOrderPreParam pre = order(param, storeParam, uid, isMember, addressesVo, orderMasterCode, orderId, orderCode, platformCodeList, storeCodeList);
preParam.setPriceActual(preParam.getPriceActual().add(pre.getPriceActual())); preParam.setPriceActual(preParam.getPriceActual().add(pre.getPriceActual()));
preParam.setStoreName(preParam.getStoreName() + "," + pre.getStoreName()); preParam.setStoreName(preParam.getStoreName() + "," + pre.getStoreName());
preParam.setSkuName(preParam.getSkuName() + "," + pre.getSkuName()); preParam.setSkuName(preParam.getSkuName() + "," + pre.getSkuName());
...@@ -179,11 +179,24 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -179,11 +179,24 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
orderUtils.backCoupon(platformCode, uid); orderUtils.backCoupon(platformCode, uid);
} }
//回退店铺券 //回退店铺券
List<BackCouponParam> params = ObjectUtil.getBackCouponParam();
for (String storeCode : storeCodeList) {
BackCouponParam backCouponParam = BackCouponParam.getNew();
backCouponParam.setuCouponIds(storeCode);
backCouponParam.setUid(uid);
params.add(backCouponParam);
}
if (params.size() > 0) {
goblinCouponService.backCoupon(params);
}
if (e.getMessage() == null) { if (e.getMessage() == null) {
return ResponseDto.failure(ErrorMapping.get("20018"));//乱七八糟异常 return ResponseDto.failure(ErrorMapping.get("20018"));//乱七八糟异常
} else if (e.getMessage().equals("无权购买")) { } else if (e.getMessage().equals("无权购买")) {
return ResponseDto.failure(e.getMessage()); return ResponseDto.failure(e.getMessage());
} else if (e.getMessage().equals("券不可用")) { } else if (e.getMessage().equals("平台券不可用")) {
return ResponseDto.failure(e.getMessage());
}else if (e.getMessage().equals("店铺券不可用")) {
return ResponseDto.failure(e.getMessage()); return ResponseDto.failure(e.getMessage());
} else if (e.getMessage().equals("不可购买")) { } else if (e.getMessage().equals("不可购买")) {
return ResponseDto.failure(e.getMessage()); return ResponseDto.failure(e.getMessage());
...@@ -199,8 +212,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -199,8 +212,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
} }
} }
private GoblinOrderPreParam order(GoblinOrderParam param, GoblinOrderStoreParam storeParam, String uid, boolean isMember, AdamAddressesVo addressesVo, String orderMasterCode, String orderId, String orderCode, List<String> platformCodeList) throws Exception { private GoblinOrderPreParam order(GoblinOrderParam param, GoblinOrderStoreParam storeParam, String uid, boolean isMember, AdamAddressesVo addressesVo, String orderMasterCode, String orderId, String orderCode, List<String> platformCodeList, List<String> storeCodeList) throws Exception {
String platVoucherCode = storeParam.getPlatVoucherCode(); String platVoucherCode = storeParam.getPlatVoucherCode();
String storeVoucherCode = storeParam.getStoreVoucherCode();
String storeId = storeParam.getStoreId(); String storeId = storeParam.getStoreId();
Map token = CurrentUtil.getTokenClaims(); Map token = CurrentUtil.getTokenClaims();
String headerCliSource = CurrentUtil.getHeaderCliSource(), headerCliVersion = CurrentUtil.getHeaderCliVersion(); String headerCliSource = CurrentUtil.getHeaderCliSource(), headerCliVersion = CurrentUtil.getHeaderCliVersion();
...@@ -285,11 +299,33 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -285,11 +299,33 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
voucherPrice = (BigDecimal) hashMap.get("voucher"); voucherPrice = (BigDecimal) hashMap.get("voucher");
Integer typeVoucher = (Integer) hashMap.get("type"); Integer typeVoucher = (Integer) hashMap.get("type");
if (typeVoucher.equals(-1)) { if (typeVoucher.equals(-1)) {
throw new Exception("券不可用"); throw new Exception("平台券不可用");
} else { } else {
platformCodeList.add(platVoucherCode); platformCodeList.add(platVoucherCode);
} }
} }
//商铺券
BigDecimal storeVoucherPrice = BigDecimal.ZERO;
if (storeVoucherCode != null && !storeVoucherCode.equals("")) {
String spuIds = "";
for (GoblinOrderSkuParam item : storeParam.getGoblinOrderSkuParamArrayList()) {
String pre = GoblinStatusConst.MarketPreStatus.getPre(item.getSpuId());
if (pre != null) {
spuIds = spuIds.concat(item.getSpuId().split(pre)[0]);
} else {
spuIds = spuIds.concat(item.getSpuId());
}
}
GoblinUseResultVo storeCouponVo = goblinCouponService.useCoupon(storeVoucherCode, "购买商品[" + orderCode + "]", storeTotalPrice, spuIds, uid);
storeVoucherPrice = storeCouponVo.getValue();
String typeVoucher = storeCouponVo.getCouType();
if (typeVoucher.equals("-1")) {
throw new Exception("店铺券不可用");
} else {
storeCodeList.add(storeVoucherCode);
}
}
GoblinStoreInfoVo storeInfoVo = redisUtils.getStoreInfoVo(storeId); GoblinStoreInfoVo storeInfoVo = redisUtils.getStoreInfoVo(storeId);
//生成订单 //生成订单
GoblinStoreOrder storeOrder = GoblinStoreOrder.getNew(); GoblinStoreOrder storeOrder = GoblinStoreOrder.getNew();
...@@ -301,18 +337,19 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -301,18 +337,19 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
storeOrder.setUserId(uid); storeOrder.setUserId(uid);
storeOrder.setUserName(StringUtils.defaultString(((String) token.get("nickname")), "")); storeOrder.setUserName(StringUtils.defaultString(((String) token.get("nickname")), ""));
storeOrder.setUserMobile(StringUtils.defaultString(((String) token.get("mobile")), "")); storeOrder.setUserMobile(StringUtils.defaultString(((String) token.get("mobile")), ""));
storeOrder.setPriceTotal(storeTotalPrice);
if (addressesVo == null) { if (addressesVo == null) {
storeOrder.setPriceExpress(BigDecimal.ZERO); storeOrder.setPriceExpress(BigDecimal.ZERO);
} else { } else {
storeOrder.setPriceExpress(BigDecimal.TEN); storeOrder.setPriceExpress(BigDecimal.TEN);
} }
storeOrder.setPriceActual(storeOrder.getPriceTotal().add(storeOrder.getPriceExpress()).add(voucherMarket).subtract(voucherPrice)); storeOrder.setPriceTotal(storeTotalPrice.add(storeOrder.getPriceExpress()));
storeOrder.setPriceActual(storeOrder.getPriceTotal().add(voucherMarket).subtract(voucherPrice));
storeOrder.setPriceRefund(BigDecimal.ZERO); storeOrder.setPriceRefund(BigDecimal.ZERO);
storeOrder.setPriceCoupon(voucherPrice); storeOrder.setPriceCoupon(voucherPrice.add(storeVoucherPrice));
storeOrder.setPriceVoucher(voucherMarket.add(voucherPrice)); storeOrder.setPriceVoucher(voucherMarket.add(voucherPrice.add(storeVoucherPrice)));
storeOrder.setStatus(0); storeOrder.setStatus(0);
storeOrder.setUcouponId(platVoucherCode); storeOrder.setUcouponId(platVoucherCode);
storeOrder.setStoreCouponId(platVoucherCode);
storeOrder.setPayType(param.getPayType()); storeOrder.setPayType(param.getPayType());
storeOrder.setDeviceFrom(param.getDeviceFrom()); storeOrder.setDeviceFrom(param.getDeviceFrom());
storeOrder.setSource(source); storeOrder.setSource(source);
...@@ -445,7 +482,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -445,7 +482,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
storeOrder.setPayCode(payCode); storeOrder.setPayCode(payCode);
sqlDataOrder.add(new Object[]{ sqlDataOrder.add(new Object[]{
storeOrder.getMasterOrderCode(), storeOrder.getOrderId(), storeOrder.getStoreId(), storeOrder.getStoreName(), storeOrder.getOrderCode(), storeOrder.getUserId(), storeOrder.getUserName(), storeOrder.getUserMobile(), storeOrder.getPriceTotal(), storeOrder.getPayCode(), storeOrder.getMasterOrderCode(), storeOrder.getOrderId(), storeOrder.getStoreId(), storeOrder.getStoreName(), storeOrder.getOrderCode(), storeOrder.getUserId(), storeOrder.getUserName(), storeOrder.getUserMobile(), storeOrder.getPriceTotal(), storeOrder.getPayCode(),
storeOrder.getPriceActual(), storeOrder.getPriceRefund(), storeOrder.getPriceExpress(), storeOrder.getPriceCoupon(), storeOrder.getPriceVoucher(), storeOrder.getStatus(), storeOrder.getUcouponId(), storeOrder.getPayType(), storeOrder.getDeviceFrom(), storeOrder.getPriceActual(), storeOrder.getPriceRefund(), storeOrder.getPriceExpress(), storeOrder.getPriceCoupon(), storeOrder.getPriceVoucher(), storeOrder.getStatus(), storeOrder.getUcouponId(), storeOrder.getStoreCouponId(), storeOrder.getPayType(), storeOrder.getDeviceFrom(),
storeOrder.getSource(), storeOrder.getVersion(), storeOrder.getIsMember(), storeOrder.getOrderType(), storeOrder.getWriteOffCode(), storeOrder.getPayCountdownMinute(), storeOrder.getIpAddress(), storeOrder.getPayCode(), storeOrder.getMarketId(), storeOrder.getMarketType(), storeOrder.getCreatedAt() storeOrder.getSource(), storeOrder.getVersion(), storeOrder.getIsMember(), storeOrder.getOrderType(), storeOrder.getWriteOffCode(), storeOrder.getPayCountdownMinute(), storeOrder.getIpAddress(), storeOrder.getPayCode(), storeOrder.getMarketId(), storeOrder.getMarketType(), storeOrder.getCreatedAt()
}); });
GoblinOrderAttr orderAttr = item.getOrderAttr(); GoblinOrderAttr orderAttr = item.getOrderAttr();
......
...@@ -14,12 +14,14 @@ import com.liquidnet.service.goblin.entity.GoblinFrontBanner; ...@@ -14,12 +14,14 @@ import com.liquidnet.service.goblin.entity.GoblinFrontBanner;
import com.liquidnet.service.goblin.entity.GoblinOrderAttr; import com.liquidnet.service.goblin.entity.GoblinOrderAttr;
import com.liquidnet.service.goblin.entity.GoblinOrderSku; import com.liquidnet.service.goblin.entity.GoblinOrderSku;
import com.liquidnet.service.goblin.entity.GoblinStoreOrder; import com.liquidnet.service.goblin.entity.GoblinStoreOrder;
import com.liquidnet.service.goblin.param.BackCouponParam;
import com.liquidnet.service.goblin.param.GoblinOrderSqlParam; import com.liquidnet.service.goblin.param.GoblinOrderSqlParam;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import com.mongodb.client.model.WriteModel; import com.mongodb.client.model.WriteModel;
import org.bson.Document; import org.bson.Document;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
public class ObjectUtil { public class ObjectUtil {
private static final PagedResult<GoblinStoreMgtGoodsListVo> goblinStoreMgtGoodsVoPagedResult = new PagedResult<>(); private static final PagedResult<GoblinStoreMgtGoodsListVo> goblinStoreMgtGoodsVoPagedResult = new PagedResult<>();
...@@ -73,6 +75,8 @@ public class ObjectUtil { ...@@ -73,6 +75,8 @@ public class ObjectUtil {
private static final ArrayList<GoblinStoreCouponVo> goblinStoreCouponVoArrayList = new ArrayList<>(); private static final ArrayList<GoblinStoreCouponVo> goblinStoreCouponVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinStoreMgtCouponListVoExcel> goblinStoreMgtCouponListVoExcelArrayList = new ArrayList<>(); private static final ArrayList<GoblinStoreMgtCouponListVoExcel> goblinStoreMgtCouponListVoExcelArrayList = new ArrayList<>();
private static final ArrayList<GoblinUserCouponVo> goblinUserCouponVo = new ArrayList<>(); private static final ArrayList<GoblinUserCouponVo> goblinUserCouponVo = new ArrayList<>();
private static final ArrayList<BackCouponParam> backCouponParam = new ArrayList<>();
private static final BasicDBObject basicDBObject = new BasicDBObject(); private static final BasicDBObject basicDBObject = new BasicDBObject();
private static final ArrayList<WriteModel<Document>> writeModelDocumentArrayList = new ArrayList<>(); private static final ArrayList<WriteModel<Document>> writeModelDocumentArrayList = new ArrayList<>();
...@@ -89,6 +93,10 @@ public class ObjectUtil { ...@@ -89,6 +93,10 @@ public class ObjectUtil {
return goblinStoreMgtCouponListVoPagedResult.clone(); return goblinStoreMgtCouponListVoPagedResult.clone();
} }
public static ArrayList<BackCouponParam> getBackCouponParam() {
return (ArrayList<BackCouponParam>) backCouponParam.clone();
}
public static ArrayList<GoblinGoodsInfoListVo> getGoblinGoodsInfoListVo() { public static ArrayList<GoblinGoodsInfoListVo> getGoblinGoodsInfoListVo() {
return (ArrayList<GoblinGoodsInfoListVo>) goblinGoodsInfoListVo.clone(); return (ArrayList<GoblinGoodsInfoListVo>) goblinGoodsInfoListVo.clone();
} }
......
...@@ -70,7 +70,7 @@ goblin.self.market.insertRelation=INSERT INTO goblin_marketing_zhengzai (`zhengz ...@@ -70,7 +70,7 @@ goblin.self.market.insertRelation=INSERT INTO goblin_marketing_zhengzai (`zhengz
goblin.self.market.updateRelation=UPDATE goblin_marketing_zhengzai SET price_marketing=? ,stock_marketing=? , buy_factor=?,buy_roster=?,buy_limit=?,updated_at=? WHERE self_market_id =? and store_id =? goblin.self.market.updateRelation=UPDATE goblin_marketing_zhengzai SET price_marketing=? ,stock_marketing=? , buy_factor=?,buy_roster=?,buy_limit=?,updated_at=? WHERE self_market_id =? and store_id =?
goblin.self.market.delSpuRelation=UPDATE goblin_marketing_zhengzai SET del_flag = ?,updated_at = ? WHERE self_market_id =? and store_id =? and spu_id=? goblin.self.market.delSpuRelation=UPDATE goblin_marketing_zhengzai SET del_flag = ?,updated_at = ? WHERE self_market_id =? and store_id =? and spu_id=?
#---- 订单创建&支付 #---- 订单创建&支付
goblin.order.create.order_insert=INSERT INTO goblin_store_order (`master_order_code`,`order_id`,`store_id`,`store_name`,`order_code`,`user_id`,`user_name`,`user_mobile`,`price_total`,`pay_code`,`price_actual`,`price_refund`,`price_express`,`price_coupon`,`price_voucher`,`status`,`ucoupon_id`,`pay_type`,`device_from`,`source`,`version`,`is_member`,`order_type`,`write_off_code`,`pay_countdown_minute`,`ip_address`,`pay_code`,`market_id`,`market_type`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) goblin.order.create.order_insert=INSERT INTO goblin_store_order (`master_order_code`,`order_id`,`store_id`,`store_name`,`order_code`,`user_id`,`user_name`,`user_mobile`,`price_total`,`pay_code`,`price_actual`,`price_refund`,`price_express`,`price_coupon`,`price_voucher`,`status`,`ucoupon_id`,`store_coupon_id`,`pay_type`,`device_from`,`source`,`version`,`is_member`,`order_type`,`write_off_code`,`pay_countdown_minute`,`ip_address`,`pay_code`,`market_id`,`market_type`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin.order.create.attr_insert=INSERT INTO goblin_order_attr (`order_attr_id`,`order_id`,`express_contacts`,`express_address`,`express_address_detail`,`express_phone`,`express_type`,`created_at`) VALUES (?,?,?,?,?,?,?,?) goblin.order.create.attr_insert=INSERT INTO goblin_order_attr (`order_attr_id`,`order_id`,`express_contacts`,`express_address`,`express_address_detail`,`express_phone`,`express_type`,`created_at`) VALUES (?,?,?,?,?,?,?,?)
goblin.order.create.sku_insert=INSERT INTO goblin_order_sku (`order_sku_id`,`order_id`,`spu_id`,`spu_name`,`spu_pic`,`sku_id`,`num`,`sku_price`,`sku_price_actual`,`sku_name`,`sku_no`,`sku_image`,`sku_specs`,`price_voucher`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) goblin.order.create.sku_insert=INSERT INTO goblin_order_sku (`order_sku_id`,`order_id`,`spu_id`,`spu_name`,`spu_pic`,`sku_id`,`num`,`sku_price`,`sku_price_actual`,`sku_name`,`sku_no`,`sku_image`,`sku_specs`,`price_voucher`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin_order.pay.order=UPDATE goblin_store_order SET payment_type = ? ,payment_id=?,pay_code = ? ,pay_time = ?,write_off_code = ? ,status = ? ,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null) goblin_order.pay.order=UPDATE goblin_store_order SET payment_type = ? ,payment_id=?,pay_code = ? ,pay_time = ?,write_off_code = ? ,status = ? ,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment