Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
2520c27f77
@ -68,8 +68,6 @@ CREATE TABLE `li_order_package_item` (
|
|||||||
*/
|
*/
|
||||||
ALTER TABLE li_order_item ADD `deliver_number` int DEFAULT NULL COMMENT '发货数量';
|
ALTER TABLE li_order_item ADD `deliver_number` int DEFAULT NULL COMMENT '发货数量';
|
||||||
|
|
||||||
ALTER TABLE li_goods_sku ADD `alert_quantity` int DEFAULT NULL COMMENT '预警库存';
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
sku增加预警库存
|
sku增加预警库存
|
||||||
*/
|
*/
|
||||||
@ -105,7 +103,7 @@ WHERE
|
|||||||
sf.flow_type = 'REFUND'
|
sf.flow_type = 'REFUND'
|
||||||
AND sf.store_id=b.store_id
|
AND sf.store_id=b.store_id
|
||||||
AND sf.create_time BETWEEN b.start_time
|
AND sf.create_time BETWEEN b.start_time
|
||||||
AND b.end_time),0)
|
AND b.end_time),0);
|
||||||
|
|
||||||
UPDATE li_bill b
|
UPDATE li_bill b
|
||||||
SET b.kanjia_refund_settlement_price =IFNULL((
|
SET b.kanjia_refund_settlement_price =IFNULL((
|
||||||
@ -119,20 +117,6 @@ SET b.kanjia_refund_settlement_price =IFNULL((
|
|||||||
AND sf.create_time BETWEEN b.start_time
|
AND sf.create_time BETWEEN b.start_time
|
||||||
AND b.end_time),0);
|
AND b.end_time),0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
交易唤醒表,增加交易流水详情
|
|
||||||
*/
|
|
||||||
ALTER TABLE li_order_item ADD `is_refund` varchar(255) DEFAULT NULL COMMENT '是否退款';
|
|
||||||
|
|
||||||
/**
|
|
||||||
交易表增加订单状态字段
|
|
||||||
*/
|
|
||||||
ALTER TABLE li_order_item ADD `refund_price` decimal(10,2) DEFAULT NULL COMMENT '退款金额';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
文件表增加拥有者名称
|
文件表增加拥有者名称
|
||||||
*/
|
*/
|
@ -296,4 +296,13 @@ public interface GoodsSkuService extends IService<GoodsSku> {
|
|||||||
* @return 库存数量
|
* @return 库存数量
|
||||||
*/
|
*/
|
||||||
Integer getGoodsStock(String goodsId);
|
Integer getGoodsStock(String goodsId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新sku运费模版
|
||||||
|
*
|
||||||
|
* @param goodsId 商品id
|
||||||
|
* @param templateId 运费模版id
|
||||||
|
* @return 操作结果
|
||||||
|
*/
|
||||||
|
Boolean freight(List<String> goodsId, String templateId);
|
||||||
}
|
}
|
@ -437,6 +437,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
|
|||||||
lambdaUpdateWrapper.in(Goods::getId, goodsIds);
|
lambdaUpdateWrapper.in(Goods::getId, goodsIds);
|
||||||
List<String> goodsCache = goodsIds.stream().map(item -> CachePrefix.GOODS.getPrefix() + item).collect(Collectors.toList());
|
List<String> goodsCache = goodsIds.stream().map(item -> CachePrefix.GOODS.getPrefix() + item).collect(Collectors.toList());
|
||||||
cache.multiDel(goodsCache);
|
cache.multiDel(goodsCache);
|
||||||
|
goodsSkuService.freight(goodsIds, templateId);
|
||||||
return this.update(lambdaUpdateWrapper);
|
return this.update(lambdaUpdateWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -888,6 +888,17 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> i
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean freight(List<String> goodsId, String templateId) {
|
||||||
|
LambdaUpdateWrapper<GoodsSku> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.in(GoodsSku::getGoodsId, goodsId);
|
||||||
|
updateWrapper.set(GoodsSku::getFreightTemplateId, templateId);
|
||||||
|
updateWrapper.set(GoodsSku::getUpdateTime, new Date());
|
||||||
|
List<String> skuIds = this.list(updateWrapper).stream().map(GoodsSku::getId).collect(Collectors.toList());
|
||||||
|
skuIds.forEach(this::clearCache);
|
||||||
|
return this.update(updateWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 渲染商品sku
|
* 渲染商品sku
|
||||||
*
|
*
|
||||||
|
@ -233,7 +233,7 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||||||
private Member findMember(String userName) {
|
private Member findMember(String userName) {
|
||||||
QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("username", userName).or().eq("mobile", userName);
|
queryWrapper.eq("username", userName).or().eq("mobile", userName);
|
||||||
return this.getOne(queryWrapper);
|
return this.getOne(queryWrapper, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.lili.modules.order.cart.render.util;
|
package cn.lili.modules.order.cart.render.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.lili.common.enums.PromotionTypeEnum;
|
import cn.lili.common.enums.PromotionTypeEnum;
|
||||||
import cn.lili.common.utils.CurrencyUtil;
|
import cn.lili.common.utils.CurrencyUtil;
|
||||||
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
||||||
@ -10,7 +11,8 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 促销价格计算业务层实现
|
* 促销价格计算业务层实现
|
||||||
@ -33,7 +35,7 @@ public class PromotionPriceUtil {
|
|||||||
PromotionTypeEnum promotionTypeEnum, String activityId) {
|
PromotionTypeEnum promotionTypeEnum, String activityId) {
|
||||||
|
|
||||||
// sku 促销信息非空判定
|
// sku 促销信息非空判定
|
||||||
if (skuPromotionDetail == null || skuPromotionDetail.size() == 0) {
|
if (skuPromotionDetail == null || skuPromotionDetail.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,40 +70,39 @@ public class PromotionPriceUtil {
|
|||||||
List<CartSkuVO> skuVOList = tradeDTO.getSkuList();
|
List<CartSkuVO> skuVOList = tradeDTO.getSkuList();
|
||||||
|
|
||||||
// 获取map分配sku的总数,如果是最后一个商品分配金额,则将金额从百分比改为总金额扣减,避免出现小数除不尽
|
// 获取map分配sku的总数,如果是最后一个商品分配金额,则将金额从百分比改为总金额扣减,避免出现小数除不尽
|
||||||
int count = skuPromotionDetail.size();
|
AtomicInteger count = new AtomicInteger(skuPromotionDetail.size());
|
||||||
|
|
||||||
//已优惠金额
|
//已优惠金额
|
||||||
Double deducted = 0D;
|
AtomicReference<Double> deducted = new AtomicReference<>(0D);
|
||||||
|
|
||||||
for (String skuId : skuPromotionDetail.keySet()) {
|
for (String skuId : skuPromotionDetail.keySet()) {
|
||||||
|
|
||||||
//获取对应商品进行计算
|
//获取对应商品进行计算
|
||||||
for (CartSkuVO cartSkuVO : skuVOList) {
|
|
||||||
|
|
||||||
if (cartSkuVO.getGoodsSku().getId().equals(skuId)) {
|
Double finalDiscountPrice = discountPrice;
|
||||||
|
Double finalTotalPrice = totalPrice;
|
||||||
|
skuVOList.stream().filter(l -> l.getGoodsSku().getId().equals(skuId)).findFirst().ifPresent(cartSkuVO -> {
|
||||||
|
//sku 优惠金额
|
||||||
|
Double skuDiscountPrice;
|
||||||
|
count.getAndDecrement();
|
||||||
|
|
||||||
count--;
|
//非最后一个商品,则按照比例计算
|
||||||
|
if (count.get() > 0) {
|
||||||
//sku 优惠金额
|
//商品金额占比
|
||||||
Double skuDiscountPrice;
|
double point = CurrencyUtil.div(cartSkuVO.getPriceDetailDTO().getGoodsPrice(), finalTotalPrice, 4);
|
||||||
|
//商品优惠金额
|
||||||
//非最后一个商品,则按照比例计算
|
skuDiscountPrice = CurrencyUtil.mul(finalDiscountPrice, point);
|
||||||
if (count > 0) {
|
//累加已优惠金额
|
||||||
//商品金额占比
|
deducted.set(CurrencyUtil.add(deducted.get(), skuDiscountPrice));
|
||||||
double point = CurrencyUtil.div(cartSkuVO.getPriceDetailDTO().getGoodsPrice(), totalPrice, 4);
|
|
||||||
//商品优惠金额
|
|
||||||
skuDiscountPrice = CurrencyUtil.mul(discountPrice, point);
|
|
||||||
//累加已优惠金额
|
|
||||||
deducted = CurrencyUtil.add(deducted, skuDiscountPrice);
|
|
||||||
}
|
|
||||||
// 如果是最后一个商品 则减去之前优惠的金额来进行计算
|
|
||||||
else {
|
|
||||||
skuDiscountPrice = CurrencyUtil.sub(discountPrice, deducted);
|
|
||||||
}
|
|
||||||
|
|
||||||
calculateCartSkuPromotionsPrice(cartSkuVO, skuDiscountPrice, promotionTypeEnum, activityId);
|
|
||||||
}
|
}
|
||||||
}
|
// 如果是最后一个商品 则减去之前优惠的金额来进行计算
|
||||||
|
else {
|
||||||
|
skuDiscountPrice = CurrencyUtil.sub(finalDiscountPrice, deducted.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
calculateCartSkuPromotionsPrice(cartSkuVO, skuDiscountPrice, promotionTypeEnum, activityId);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
calculateNotEnoughPromotionsPrice(skuVOList, skuPromotionDetail, discountPrice, totalPrice, promotionTypeEnum, activityId);
|
calculateNotEnoughPromotionsPrice(skuVOList, skuPromotionDetail, discountPrice, totalPrice, promotionTypeEnum, activityId);
|
||||||
@ -186,51 +187,100 @@ public class PromotionPriceUtil {
|
|||||||
// 特殊情况处理,如参与多个促销活动,部分商品在其他促销计算后的金额不足以满足与当前参与的促销活动的优惠金额
|
// 特殊情况处理,如参与多个促销活动,部分商品在其他促销计算后的金额不足以满足与当前参与的促销活动的优惠金额
|
||||||
// 但当前购物车内存在当前当前促销活动的其他商品且剩余金额也满足分摊不足商品的不足金额,则分摊到其他商品上
|
// 但当前购物车内存在当前当前促销活动的其他商品且剩余金额也满足分摊不足商品的不足金额,则分摊到其他商品上
|
||||||
// 满足当前促销的总优惠金额
|
// 满足当前促销的总优惠金额
|
||||||
if (skuPromotionDetail == null || skuPromotionDetail.isEmpty()) {
|
if (skuPromotionDetail == null || skuPromotionDetail.size() < 2) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// clone skuPromotionDetail
|
||||||
|
Map<String, Double> skuPromotionDetailClone = MapUtil.sortByValue(skuPromotionDetail, false);
|
||||||
|
|
||||||
|
// 未满足优惠金额的商品
|
||||||
long matchPromotionsZeroCount =
|
long matchPromotionsZeroCount =
|
||||||
skuVOList.stream().filter(l -> l.getPriceDetailDTO().getFlowPrice() == 0 && skuPromotionDetail.containsKey(l.getGoodsSku().getId())).count();
|
skuVOList.stream().filter(l -> l.getPriceDetailDTO().getFlowPrice() == 0 && skuPromotionDetailClone.containsKey(l.getGoodsSku().getId())).count();
|
||||||
long matchPromotionsCount = skuVOList.stream().filter(l -> skuPromotionDetail.containsKey(l.getGoodsSku().getId())).count();
|
// 参与当前促销活动的商品
|
||||||
|
long matchPromotionsCount = skuVOList.stream().filter(l -> skuPromotionDetailClone.containsKey(l.getGoodsSku().getId())).count();
|
||||||
if (matchPromotionsZeroCount == matchPromotionsCount) {
|
if (matchPromotionsZeroCount == matchPromotionsCount) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 获取剩余金额不足优惠金额的商品
|
// 分配到其他商品的优惠金额
|
||||||
List<CartSkuVO> unEnoughSku = skuVOList.stream().filter(k -> {
|
AtomicReference<Double> balance = new AtomicReference<>(0D);
|
||||||
if (skuPromotionDetail.containsKey(k.getGoodsSku().getId()) && skuPromotionDetail.size() >= 2) {
|
StringBuilder lastSkuId = new StringBuilder();
|
||||||
//商品金额占比
|
|
||||||
double point = CurrencyUtil.div(k.getPriceDetailDTO().getGoodsPrice(), totalPrice, 4);
|
// 计数器
|
||||||
//商品优惠金额
|
int count = 0;
|
||||||
Double skuDiscountPrice = CurrencyUtil.mul(discountPrice, point);
|
|
||||||
return k.getPriceDetailDTO().getCouponPrice() > 0 && skuDiscountPrice > k.getPriceDetailDTO().getCouponPrice();
|
|
||||||
|
// 检查是否有不满足优惠金额的商品
|
||||||
|
filterEnoughSku(skuVOList, skuPromotionDetailClone, discountPrice, totalPrice, balance, lastSkuId, promotionTypeEnum, activityId);
|
||||||
|
|
||||||
|
// 循环 优惠金额分摊,直到所有商品都满足优惠金额
|
||||||
|
while (true) {
|
||||||
|
// 如果还有剩余金额,则继续分摊
|
||||||
|
if (balance.get() > 0) {
|
||||||
|
skuPromotionDetailClone.remove(lastSkuId.toString());
|
||||||
|
double lastDiscountPrice = CurrencyUtil.sub(discountPrice, skuPromotionDetail.get(lastSkuId.toString()));
|
||||||
|
double lastTotalPrice = CurrencyUtil.sub(totalPrice, skuPromotionDetail.get(lastSkuId.toString()));
|
||||||
|
filterEnoughSku(skuVOList, skuPromotionDetailClone, lastDiscountPrice, lastTotalPrice, balance, lastSkuId, promotionTypeEnum, activityId);
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return false;
|
count++;
|
||||||
}).collect(Collectors.toList());
|
|
||||||
if (!unEnoughSku.isEmpty()) {
|
// 防止死循环
|
||||||
if (unEnoughSku.size() == skuVOList.size()) {
|
if (count > skuPromotionDetail.size()) {
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
for (CartSkuVO cartSkuVO : skuVOList) {
|
|
||||||
if (unEnoughSku.isEmpty()) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (skuPromotionDetail.containsKey(cartSkuVO.getGoodsSku().getId()) && unEnoughSku.stream().noneMatch(k -> k.getGoodsSku().getId().equals(cartSkuVO.getGoodsSku().getId()))) {
|
|
||||||
// 商品金额占比
|
|
||||||
double point = CurrencyUtil.div(cartSkuVO.getPriceDetailDTO().getGoodsPrice(), totalPrice, 4);
|
|
||||||
// 商品优惠金额
|
|
||||||
Double skuDiscountPrice = CurrencyUtil.mul(discountPrice, point);
|
|
||||||
// 商品优惠金额 - 不足优惠金额 = 差额
|
|
||||||
Double sub = CurrencyUtil.sub(skuDiscountPrice, unEnoughSku.get(0).getPriceDetailDTO().getCouponPrice());
|
|
||||||
// 分摊到其他商品: 其他商品原优惠金额 + 差额
|
|
||||||
calculateCartSkuPromotionsPrice(cartSkuVO, sub, promotionTypeEnum, activityId);
|
|
||||||
// 从不足商品列表中移除
|
|
||||||
unEnoughSku.remove(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
calculateNotEnoughPromotionsPrice(skuVOList, skuPromotionDetail, discountPrice, totalPrice, promotionTypeEnum, activityId);
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static void filterEnoughSku(List<CartSkuVO> skuVOList, Map<String, Double> skuPromotionDetail,
|
||||||
|
Double discountPrice, Double totalPrice,
|
||||||
|
AtomicReference<Double> balance, StringBuilder lastSkuId,
|
||||||
|
PromotionTypeEnum promotionTypeEnum, String activityId) {
|
||||||
|
AtomicInteger count = new AtomicInteger(skuPromotionDetail.size());
|
||||||
|
AtomicReference<Double> countPrice = new AtomicReference<>(0D);
|
||||||
|
for (String skuId : skuPromotionDetail.keySet()) {
|
||||||
|
skuVOList.forEach(l -> {
|
||||||
|
if (l.getGoodsSku().getId().equals(skuId)) {
|
||||||
|
count.getAndDecrement();
|
||||||
|
|
||||||
|
//商品金额占比
|
||||||
|
double point = CurrencyUtil.div(l.getPriceDetailDTO().getGoodsPrice(), totalPrice, 4);
|
||||||
|
|
||||||
|
//商品优惠金额
|
||||||
|
Double skuDiscountPrice;
|
||||||
|
|
||||||
|
if (count.get() > 0) {
|
||||||
|
//非最后一个商品,则按照比例计算
|
||||||
|
skuDiscountPrice = CurrencyUtil.mul(discountPrice, point);
|
||||||
|
} else {
|
||||||
|
// 如果是最后一个商品 则减去之前优惠的金额来进行计算
|
||||||
|
skuDiscountPrice = CurrencyUtil.sub(discountPrice, countPrice.get());
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (balance.get() > 0) {
|
||||||
|
// 分摊到其他商品: 其他商品原优惠金额 + 差额
|
||||||
|
calculateCartSkuPromotionsPrice(l, balance.get(), promotionTypeEnum, activityId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果商品优惠金额大于商品金额,则取商品金额。差额分摊到其他商品
|
||||||
|
if (skuDiscountPrice > l.getPriceDetailDTO().getGoodsPrice()) {
|
||||||
|
balance.set(CurrencyUtil.sub(skuDiscountPrice, l.getPriceDetailDTO().getGoodsPrice()));
|
||||||
|
lastSkuId.append(skuId);
|
||||||
|
skuDiscountPrice = l.getPriceDetailDTO().getGoodsPrice();
|
||||||
|
} else {
|
||||||
|
balance.set(0D);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
countPrice.set(CurrencyUtil.add(countPrice.get(), skuDiscountPrice));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -243,7 +243,7 @@ public class Order extends BaseEntity {
|
|||||||
this.setDeliverStatus(DeliverStatusEnum.UNDELIVERED.name());
|
this.setDeliverStatus(DeliverStatusEnum.UNDELIVERED.name());
|
||||||
this.setTradeSn(tradeDTO.getSn());
|
this.setTradeSn(tradeDTO.getSn());
|
||||||
this.setRemark(cartVO.getRemark());
|
this.setRemark(cartVO.getRemark());
|
||||||
this.setFreightPrice(tradeDTO.getPriceDetailDTO().getFreightPrice());
|
this.setFreightPrice(cartVO.getPriceDetailDTO().getFreightPrice());
|
||||||
//会员收件信息
|
//会员收件信息
|
||||||
if (tradeDTO.getMemberAddress() != null && DeliveryMethodEnum.LOGISTICS.name().equals(cartVO.getDeliveryMethod())) {
|
if (tradeDTO.getMemberAddress() != null && DeliveryMethodEnum.LOGISTICS.name().equals(cartVO.getDeliveryMethod())) {
|
||||||
this.setConsigneeAddressIdPath(tradeDTO.getMemberAddress().getConsigneeAddressIdPath());
|
this.setConsigneeAddressIdPath(tradeDTO.getMemberAddress().getConsigneeAddressIdPath());
|
||||||
|
@ -88,7 +88,7 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
|
|||||||
cache.incrementScore(CachePrefix.HOT_WORD.getPrefix(), searchDTO.getKeyword());
|
cache.incrementScore(CachePrefix.HOT_WORD.getPrefix(), searchDTO.getKeyword());
|
||||||
}
|
}
|
||||||
NativeSearchQueryBuilder searchQueryBuilder = createSearchQueryBuilder(searchDTO, pageVo);
|
NativeSearchQueryBuilder searchQueryBuilder = createSearchQueryBuilder(searchDTO, pageVo);
|
||||||
// searchQueryBuilder.withCollapseField("goodsId");
|
// searchQueryBuilder.withCollapseField("goodsId.keyword");
|
||||||
NativeSearchQuery searchQuery = searchQueryBuilder.build();
|
NativeSearchQuery searchQuery = searchQueryBuilder.build();
|
||||||
searchQuery.setTrackTotalHits(true);
|
searchQuery.setTrackTotalHits(true);
|
||||||
log.debug("searchGoods DSL:{}", searchQuery.getQuery());
|
log.debug("searchGoods DSL:{}", searchQuery.getQuery());
|
||||||
|
@ -5,8 +5,6 @@ import cn.lili.cache.Cache;
|
|||||||
import cn.lili.cache.CachePrefix;
|
import cn.lili.cache.CachePrefix;
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.exception.ServiceException;
|
||||||
import cn.lili.common.properties.SmsTemplateProperties;
|
|
||||||
import cn.lili.common.properties.SystemSettingProperties;
|
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.utils.CommonUtil;
|
import cn.lili.common.utils.CommonUtil;
|
||||||
import cn.lili.modules.member.entity.dos.Member;
|
import cn.lili.modules.member.entity.dos.Member;
|
||||||
@ -48,12 +46,6 @@ public class SmsUtilAliImplService implements SmsUtil {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SmsPluginFactory smsPluginFactory;
|
private SmsPluginFactory smsPluginFactory;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SmsTemplateProperties smsTemplateProperties;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SystemSettingProperties systemSettingProperties;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendSmsCode(String mobile, VerificationEnums verificationEnums, String uuid) {
|
public void sendSmsCode(String mobile, VerificationEnums verificationEnums, String uuid) {
|
||||||
//获取短信配置
|
//获取短信配置
|
||||||
@ -78,18 +70,18 @@ public class SmsUtilAliImplService implements SmsUtil {
|
|||||||
switch (verificationEnums) {
|
switch (verificationEnums) {
|
||||||
//登录
|
//登录
|
||||||
case LOGIN: {
|
case LOGIN: {
|
||||||
templateCode = smsTemplateProperties.getLOGIN();
|
templateCode = smsSetting.getLoginTemplateCode();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//注册
|
//注册
|
||||||
case BIND_MOBILE:
|
case BIND_MOBILE:
|
||||||
case REGISTER: {
|
case REGISTER: {
|
||||||
templateCode = smsTemplateProperties.getREGISTER();
|
templateCode = smsSetting.getRegisterTemplateCode();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//找回密码
|
//找回密码
|
||||||
case FIND_USER: {
|
case FIND_USER: {
|
||||||
templateCode = smsTemplateProperties.getFIND_USER();
|
templateCode = smsSetting.getFindPasswordTemplateCode();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//修改密码
|
//修改密码
|
||||||
@ -100,7 +92,7 @@ public class SmsUtilAliImplService implements SmsUtil {
|
|||||||
}
|
}
|
||||||
//更新为用户最新手机号
|
//更新为用户最新手机号
|
||||||
mobile = member.getMobile();
|
mobile = member.getMobile();
|
||||||
templateCode = smsTemplateProperties.getUPDATE_PASSWORD();
|
templateCode = smsSetting.getFindPasswordTemplateCode();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//设置支付密码
|
//设置支付密码
|
||||||
@ -108,7 +100,7 @@ public class SmsUtilAliImplService implements SmsUtil {
|
|||||||
Member member = memberService.getById(UserContext.getCurrentUser().getId());
|
Member member = memberService.getById(UserContext.getCurrentUser().getId());
|
||||||
//更新为用户最新手机号
|
//更新为用户最新手机号
|
||||||
mobile = member.getMobile();
|
mobile = member.getMobile();
|
||||||
templateCode = smsTemplateProperties.getWALLET_PASSWORD();
|
templateCode = smsSetting.getWalletPasswordTemplateCode();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//如果不是有效的验证码手段,则此处不进行短信操作
|
//如果不是有效的验证码手段,则此处不进行短信操作
|
||||||
|
@ -137,7 +137,7 @@ public class WechatMPServiceImpl implements WechatMPService {
|
|||||||
map.put("upload_time", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now()));
|
map.put("upload_time", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now()));
|
||||||
|
|
||||||
//支付者,支付者信息
|
//支付者,支付者信息
|
||||||
Connect connect = connectService.queryConnect(ConnectQueryDTO.builder().userId(UserContext.getCurrentUser().getId()).unionType(SourceEnum.WECHAT_MP_OPEN_ID.name()).build());
|
Connect connect = connectService.queryConnect(ConnectQueryDTO.builder().userId(order.getMemberId()).unionType(SourceEnum.WECHAT_MP_OPEN_ID.name()).build());
|
||||||
if (connect == null) {
|
if (connect == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -263,7 +263,7 @@ public class WechatMPServiceImpl implements WechatMPService {
|
|||||||
private String out_trade_no;
|
private String out_trade_no;
|
||||||
|
|
||||||
public OrderKey(Order order) {
|
public OrderKey(Order order) {
|
||||||
this.order_number_type = 2;
|
this.order_number_type = 1;
|
||||||
this.out_trade_no = order.getPayOrderNo();
|
this.out_trade_no = order.getPayOrderNo();
|
||||||
this.transaction_id = order.getReceivableNo();
|
this.transaction_id = order.getReceivableNo();
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ local c
|
|||||||
c = redis.call('get',KEYS[1])
|
c = redis.call('get',KEYS[1])
|
||||||
-- 调用不超过最大值,则直接返回
|
-- 调用不超过最大值,则直接返回
|
||||||
if c and tonumber(c) > tonumber(ARGV[1]) then
|
if c and tonumber(c) > tonumber(ARGV[1]) then
|
||||||
return c;
|
return tonumber(c);
|
||||||
end
|
end
|
||||||
-- 执行计算器自加
|
-- 执行计算器自加
|
||||||
c = redis.call('incr',KEYS[1])
|
c = redis.call('incr',KEYS[1])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user