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

Commit 077d4393 authored by 胡佳晨's avatar 胡佳晨

活动库存修改 再次支付修改

parent 53751100
......@@ -117,6 +117,7 @@ public class GoblinRedisConst {
* SKU剩余库存
*/
public static final String REAL_STOCK_SKU = PREFIX.concat("real_stock_sku:");
public static final String SKU_RELATION = PREFIX.concat("sku:relation:");//$key:$skuId
/* ----------------------------------------------------------------- */
/**
......
......@@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import java.math.BigDecimal;
import java.time.LocalDateTime;
......@@ -134,12 +135,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
throw new Exception("无权购买");
}
}
int surplusGeneral;
if (pre != null) {
surplusGeneral = redisUtils.decrSkuStock(pre, skuId.split(pre)[0], number);
} else {
surplusGeneral = redisUtils.decrSkuStock(pre, skuId, number);
}
int surplusGeneral = redisUtils.decrSkuStock(pre, skuId, number);
skuAndPreListAndNumber.add(skuId + "," + pre + "," + number);
//库存回滚
......@@ -172,11 +168,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
String skuId = array[0];
String pre = array[1];
int number = Integer.parseInt(array[2]);
if (pre != null) {
redisUtils.incrSkuStock(pre, skuId.split(pre)[0], number);
} else {
redisUtils.incrSkuStock(pre, skuId, number);
}
redisUtils.incrSkuStock(pre, skuId, number);
if (noZhengzaiOrder(uid)) {
redisUtils.decrSkuCountByUid(uid, skuId, number);
}
......@@ -418,6 +410,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
payInnerResultVo.setPrice(BigDecimal.valueOf(0));
payInnerResultVo.setPayType(preParam.getPayType());
}
payInnerResultVo.setOrderMasterCode(preParam.getOrderMasterCode());
LinkedList<String> sqls = CollectionUtil.linkedListString();
......@@ -442,8 +435,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
goblinOrderSkuIdList.add(orderSkuVo.getOrderSkuId());
}
GoblinStoreOrder storeOrder = item.getStoreOrder();
storeOrder.setPayCode(payCode);
sqlDataOrder.add(new Object[]{
storeOrder.getMasterOrderCode(), storeOrder.getOrderId(), storeOrder.getStoreId(), storeOrder.getStoreName(), storeOrder.getOrderCode(), storeOrder.getUserId(), storeOrder.getUserName(), storeOrder.getUserMobile(), storeOrder.getPriceTotal(),
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.getSource(), storeOrder.getVersion(), storeOrder.getIsMember(), storeOrder.getOrderType(), storeOrder.getWriteOffCode(), storeOrder.getPayCountdownMinute(), storeOrder.getIpAddress(), storeOrder.getPayCode(), storeOrder.getMarketId(), storeOrder.getMarketType(), storeOrder.getCreatedAt()
});
......@@ -514,7 +508,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
if (storeOrderVo.getStatus() != GoblinStatusConst.Status.ORDER_STATUS_0.getValue()) {
return ResponseDto.failure("订单无法支付");//订单
}
String returnCheckData = HttpUtil.get(checkUrl + "?code=" + storeOrderVo.getPayCode(), null);
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8");
String returnCheckData = HttpUtil.get(checkUrl + "?code=" + storeOrderVo.getPayCode(), null, header);
ResponseDto<GoblinPayInnerResultVo> checkVo = JsonUtils.fromJson(returnCheckData, new TypeReference<ResponseDto<GoblinPayInnerResultVo>>() {
});
if (checkVo.getData().getStatus() == 1) {
......
......@@ -545,9 +545,9 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService {
orderSkuVo.setStatus(GoblinStatusConst.Status.ORDER_STATUS_6.getValue());
String pre = GoblinStatusConst.MarketPreStatus.getPre(orderSkuVo.getSkuId());
String skuId = orderSkuVo.getSkuId();
if (pre != null) {
skuId = orderSkuVo.getSkuId().split(pre)[0];
}
// if (pre != null) {
// skuId = orderSkuVo.getSkuId().split(pre)[0];
// }
redisUtils.incrSkuStock(pre, skuId, orderSkuVo.getNum());
}
redisUtils.setGoblinOrderSku(backOrderSkuVo.getOrderSkuId(), orderSkuVo);
......
......@@ -249,15 +249,16 @@ public class GoblinStorePurchasingServiceImpl implements IGoblinStorePurchasingS
//mongo
GoblinGoodsSkuInfoVo skuVo = goblinRedisUtils.getGoodsSkuInfoVo(item.getSkuId());
//判断库存相关
String marketSkuId = item.getSkuId().concat(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue()).concat(IDGenerator.marketGoodId(params.getStoreMarketId()));
int restStock = goblinRedisUtils.decrSkuStock(null, item.getSkuId(), item.getStockMarketing());
if (restStock < 0) {
errorNameList.add(skuVo.getName());
goblinRedisUtils.incrSkuStock(null, item.getSkuId(), item.getStockMarketing());
continue;
}
goblinRedisUtils.setSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue(), item.getSkuId(), item.getStockMarketing());
goblinRedisUtils.setSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue(), marketSkuId, item.getStockMarketing());
skuVo.setSpuId(marketSpuId);
skuVo.setSkuId(item.getSkuId().concat(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue()).concat(IDGenerator.marketGoodId(params.getStoreMarketId())));
skuVo.setSkuId(marketSkuId);
skuVo.setPrice(bean.getPriceMarketing());
skuVo.setPriceMember(bean.getPriceMarketing());
skuVo.setSkuStock(bean.getStockMarketing());
......@@ -328,15 +329,15 @@ public class GoblinStorePurchasingServiceImpl implements IGoblinStorePurchasingS
//判断库存相关
int restStock;
if (changeStock > 0) {
restStock = goblinRedisUtils.incrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue(), item.getSkuId(), changeStock);
restStock = goblinRedisUtils.incrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue(), skuVo.getSkuId(), changeStock);
goblinRedisUtils.decrSkuStock(null, item.getSkuId(), changeStock);
} else {
restStock = goblinRedisUtils.decrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue(), item.getSkuId(), -changeStock);
restStock = goblinRedisUtils.decrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue(), skuVo.getSkuId(), -changeStock);
goblinRedisUtils.incrSkuStock(null, item.getSkuId(), -changeStock);
}
if (restStock < 0) {
errorNameList.add(skuVo.getName());
goblinRedisUtils.incrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue(), item.getSkuId(), -changeStock);
goblinRedisUtils.incrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue(), skuVo.getSkuId(), -changeStock);
goblinRedisUtils.decrSkuStock(null, item.getSkuId(), -changeStock);
continue;
}
......
......@@ -165,9 +165,11 @@ public class GoblinZhengzaiServiceImpl implements IGoblinZhengzaiService {
continue;
}
}
redisUtils.setSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue(), item.getSkuId(), item.getStockMarketing());
String marketSkuId = item.getSkuId().concat(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue()).concat(IDGenerator.marketGoodId(params.getSelfMarketId()));
redisUtils.setSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue(), marketSkuId, item.getStockMarketing());
redisUtils.addSkuRe(item.getSkuId(), marketSkuId);
skuVo.setSpuId(marketSpuId);
skuVo.setSkuId(item.getSkuId().concat(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue()).concat(IDGenerator.marketGoodId(params.getSelfMarketId())));
skuVo.setSkuId(marketSkuId);
skuVo.setPrice(bean.getPriceMarketing());
skuVo.setPriceMember(bean.getPriceMarketing());
skuVo.setSkuStock(bean.getStockMarketing());
......@@ -184,8 +186,8 @@ public class GoblinZhengzaiServiceImpl implements IGoblinZhengzaiService {
marketSkuList.add(skuVo.getSkuId());
skuList.add(skuVo.getSkuId());
priceList.add(item.getPriceMarketing());
if(bean.getBuyFactor()==2){
queueUtils.sendMsgByRedisXls(bean.getBuyRoster(),item.getType(),item.getSkuId());
if (bean.getBuyFactor() == 2) {
queueUtils.sendMsgByRedisXls(bean.getBuyRoster(), item.getType(), item.getSkuId());
}
}
if (errorNameList.size() == params.getGoblinStoreZhengzaiItemParams().size()) {
......@@ -244,15 +246,15 @@ public class GoblinZhengzaiServiceImpl implements IGoblinZhengzaiService {
//判断库存相关
int restStock;
if (changeStock > 0) {
restStock = redisUtils.incrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue(), item.getSkuId(), changeStock);
restStock = redisUtils.incrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue(), skuVo.getSkuId(), changeStock);
redisUtils.decrSkuStock(null, item.getSkuId(), changeStock);
} else {
restStock = redisUtils.decrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue(), item.getSkuId(), -changeStock);
restStock = redisUtils.decrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue(), skuVo.getSkuId(), -changeStock);
redisUtils.incrSkuStock(null, item.getSkuId(), -changeStock);
}
if (restStock < 0) {
errorNameList.add(skuVo.getName());
redisUtils.incrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue(), item.getSkuId(), -changeStock);
redisUtils.incrSkuStock(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue(), skuVo.getSkuId(), -changeStock);
redisUtils.decrSkuStock(null, item.getSkuId(), -changeStock);
continue;
}
......@@ -271,8 +273,8 @@ public class GoblinZhengzaiServiceImpl implements IGoblinZhengzaiService {
bean.getStockMarketing(), bean.getBuyFactor(), bean.getBuyRoster(), bean.getBuyLimit(), bean.getUpdatedAt(), params.getSelfMarketId(), params.getStoreId()});
marketSkuList.add(skuVo.getSkuId());
priceList.add(bean.getPriceMarketing());
if(bean.getBuyFactor()==2){
queueUtils.sendMsgByRedisXls(bean.getBuyRoster(),item.getType(),item.getSkuId());
if (bean.getBuyFactor() == 2) {
queueUtils.sendMsgByRedisXls(bean.getBuyRoster(), item.getType(), item.getSkuId());
}
}
if (errorNameList.size() == params.getGoblinStoreZhengzaiItemParams().size()) {
......@@ -321,6 +323,7 @@ public class GoblinZhengzaiServiceImpl implements IGoblinZhengzaiService {
redisUtils.incrSkuStock(null, skuId, restStock + restStockDe);
mongoUtils.delGoodsSkuInfoVo(marketSkuId);
redisUtils.delGoodsSkuInfoVo(marketSkuId);
redisUtils.removeGoblinOrder(skuId, marketSkuId);
}
//mongo
mongoUtils.delGoodsInfoVo(marketSpuId);
......
......@@ -17,6 +17,7 @@ import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.lang.reflect.Array;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
......@@ -73,6 +74,33 @@ public class GoblinRedisUtils {
return (int) redisUtil.decr(rk, stock);
}
//添加 skuId 相关的活动 skuId
public void addSkuRe(String skuId, String marketSkuId) {
String rk = GoblinRedisConst.SKU_RELATION.concat(skuId);
List<String> list = getSkuRe(skuId);
list.add(marketSkuId);
redisUtil.set(rk,list);
}
//删除 skuId 相关的活动 skuId
public void removeSkuRe(String skuId, String marketSkuId) {
String rk = GoblinRedisConst.SKU_RELATION.concat(skuId);
List<String> list = getSkuRe(skuId);
list.remove(marketSkuId);
redisUtil.set(rk,list);
}
//获取 skuId 相关的活动 skuId
public List<String> getSkuRe(String skuId) {
String rk = GoblinRedisConst.SKU_RELATION.concat(skuId);
Object obj = redisUtil.get(rk);
if(obj==null){
return new ArrayList();
}else{
return (List<String>) obj;
}
}
/* ---------------------------------------- 平台标签数据源 ---------------------------------------- */
public List<GoblinSelfTagVo> getSelfGoodsTagVos() {// 普通商品标签
......
......@@ -69,7 +69,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.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`,`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`,`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.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)
......
......@@ -85,12 +85,7 @@ public class DMCheckGoblinOrderTimeImpl extends ServiceImpl<GoblinStoreOrderMapp
goblinRedisUtils.setGoblinOrderSku(skuVo.getOrderSkuId(), skuVo);
//库存&限购&&待支付订单
String pre = GoblinStatusConst.MarketPreStatus.getPre(skuVo.getSkuId());
if (pre == null) {
goblinRedisUtils.incrSkuStock(pre, skuVo.getSkuId(), skuVo.getNum());
} else {
goblinRedisUtils.incrSkuStock(pre, skuVo.getSkuId().split(pre)[0], skuVo.getNum());
}
goblinRedisUtils.incrSkuStock(pre, skuVo.getSkuId(), skuVo.getNum());
goblinRedisUtils.decrSkuCountByUid(orderVo.getUserId(), skuVo.getSkuId(), skuVo.getNum());
//mysql
sqlDataSku.add(new Object[]{
......
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