Browse Source

Merge branch 'release_toaliyun_real' of https://git.malls.iformall.com/server/formallProject into release_toaliyun_real_20230901

release_toaliyun_real
xhxu 2 years ago
parent
commit
d20596f200
17 changed files with 210 additions and 44 deletions
  1. +7
    -0
      mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java
  2. +8
    -0
      mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java
  3. +8
    -1
      mallinkCallback/src/main/java/com/iformall/controller/callback/car/WxParkCallBackBaseController.java
  4. +3
    -3
      mallinkPublicApi/src/main/java/com/iformall/utils/CallTest.java
  5. +11
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/SumMicroPayVO.java
  6. +11
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/SumVerifiedVO.java
  7. +10
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java
  8. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java
  9. +3
    -2
      mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java
  10. +9
    -0
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  11. +48
    -29
      mallinkService/src/main/java/com/iformall/service/helper/WxOrderServiceHelper.java
  12. +8
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  13. +32
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  14. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java
  15. +4
    -0
      mallinkService/src/main/java/com/iformall/utils/RedisCacheUtils.java
  16. +15
    -0
      mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml
  17. +30
    -1
      mallinkService/src/main/resources/mapper/WxOrderMapper.xml

+ 7
- 0
mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java View File

@@ -149,6 +149,13 @@ public class WxCouponOrderController extends BaseController {
return wxCouponOrderService.listOnDateAsPageV2(getLoginBUser().getId(), startDate, endDate, pageNum, pageSize, true); return wxCouponOrderService.listOnDateAsPageV2(getLoginBUser().getId(), startDate, endDate, pageNum, pageSize, true);
} }


@ApiOperation("核销流水统计接口")
@GetMapping("sumVerified")
public ResultData sumVerified(@RequestParam("startDate") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") Date startDate,
@RequestParam("endDate") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") Date endDate) {
return wxCouponOrderService.sumVerified(getLoginBUser(), startDate, endDate);
}

@ApiOperation("某日期交易总流水") @ApiOperation("某日期交易总流水")
@GetMapping("getUnverifiedAmountOnDate") @GetMapping("getUnverifiedAmountOnDate")
@ApiImplicitParams({ @ApiImplicitParams({


+ 8
- 0
mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java View File

@@ -276,6 +276,14 @@ public class WxMicroPayController extends BaseController {
return wxOrderService.microPayListOnDateAsPageV2(getLoginBUser().getId(), EnumOrderType.MICROPAY.getCode(), startDate, endDate, pageNum, pageSize); return wxOrderService.microPayListOnDateAsPageV2(getLoginBUser().getId(), EnumOrderType.MICROPAY.getCode(), startDate, endDate, pageNum, pageSize);
} }


@RedisCache
@ApiOperation("付款码支付交易流水分页列表接口")
@GetMapping("sumMicroPay")
public ResultData sumMicroPay(@RequestParam("startDate") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") Date startDate,
@RequestParam("endDate") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") Date endDate) {
return wxOrderService.sumMicroPay(getLoginBUser(), EnumOrderType.MICROPAY.getCode(), startDate, endDate);
}

@RedisCache @RedisCache
@ApiOperation("付款码支付某日期交易总流水") @ApiOperation("付款码支付某日期交易总流水")
@GetMapping("getMicroPayAmountOnDate") @GetMapping("getMicroPayAmountOnDate")


+ 8
- 1
mallinkCallback/src/main/java/com/iformall/controller/callback/car/WxParkCallBackBaseController.java View File

@@ -13,6 +13,7 @@ import com.iformall.service.park.ParkFactory;
import com.iformall.service.park.entity.ParkNotifyParam; import com.iformall.service.park.entity.ParkNotifyParam;
import com.iformall.service.park.utils.ParkCacheUtils; import com.iformall.service.park.utils.ParkCacheUtils;
import com.iformall.utils.DateUtils; import com.iformall.utils.DateUtils;
import com.iformall.utils.RedisCacheUtils;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -168,9 +169,15 @@ public class WxParkCallBackBaseController extends BaseController {
if (null == param) { if (null == param) {
return new Result(); return new Result();
} }
// 回调去重
String key = "callback:" + param.getCarNumber();
if (RedisCacheUtils.hasKey(redisTemplate, key)) {
logger.info("回调数据重复=========>{}", JSON.toJSONString(param));
return new Result();
}
RedisCacheUtils.cache(redisTemplate, key, "", 60 * 2);
String carNumber = param.getCarNumber(); String carNumber = param.getCarNumber();
ParkCacheUtils.removeCache(redisTemplate, vendor.getMessage(), carNumber); ParkCacheUtils.removeCache(redisTemplate, vendor.getMessage(), carNumber);
ParkCacheUtils.setCarCouponUnUseCacheLock(redisTemplate, vendor.getMessage(), carNumber); ParkCacheUtils.setCarCouponUnUseCacheLock(redisTemplate, vendor.getMessage(), carNumber);


+ 3
- 3
mallinkPublicApi/src/main/java/com/iformall/utils/CallTest.java View File

@@ -12,9 +12,9 @@ public class CallTest {
private static final String BASIC_URL = "https://openapitest.malls.iformall.com"; private static final String BASIC_URL = "https://openapitest.malls.iformall.com";


public static void main(String[] args) { public static void main(String[] args) {
String appId = "CP6nwHvZ";
String appKey = "b257eb97bb9380714306a077a66086e8b1f10639";
String signKey = "C61842C8570524AA81756C53B8096978A06AE00D";
String appId = "YhCW8Dra";
String appKey = "389ac85b768b19427685bcc4adea0474cef22a14";
String signKey = "B0AB3E2CBCB484D04AEAD0BEF933F7CF5489450C";


// 会员注册 // 会员注册
// userRegister(appId, appKey, signKey); // userRegister(appId, appKey, signKey);


+ 11
- 0
mallinkService/src/main/java/com/iformall/domain/vo/SumMicroPayVO.java View File

@@ -0,0 +1,11 @@
package com.iformall.domain.vo;

import lombok.Data;

import java.math.BigDecimal;

@Data
public class SumMicroPayVO {
private BigDecimal amount;
private Integer total;
}

+ 11
- 0
mallinkService/src/main/java/com/iformall/domain/vo/SumVerifiedVO.java View File

@@ -0,0 +1,11 @@
package com.iformall.domain.vo;

import lombok.Data;

import java.math.BigDecimal;

@Data
public class SumVerifiedVO {
private BigDecimal amount;
private Integer total;
}

+ 10
- 0
mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java View File

@@ -112,4 +112,14 @@ public interface WxCouponOrderMapper extends CommonMapper<WxCouponOrder, Long> {
* @return * @return
*/ */
List<Long> findVerifiedUserIds(@Param("tenantId")String tenantId, @Param("verifiedStartTime")Date verifiedStartTime, @Param("verifiedEndTime")Date verifiedEndTime); List<Long> findVerifiedUserIds(@Param("tenantId")String tenantId, @Param("verifiedStartTime")Date verifiedStartTime, @Param("verifiedEndTime")Date verifiedEndTime);

/**
* 统计核销记录总金额
* @param tenantId
* @param merchantId
* @param startDate
* @param endDate
* @return {@link Integer}
*/
SumVerifiedVO sumVerified(@Param("tenantId") String tenantId, @Param("bMerchantId") Long merchantId, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
} }

+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java View File

@@ -67,4 +67,6 @@ public interface WxOrderMapper extends CommonMapper<WxOrder, Long> {
void updateCUserId(WxOrder updateOrder); void updateCUserId(WxOrder updateOrder);


List<Long> getComposeOrderIds(WxOrder wxOrder); List<Long> getComposeOrderIds(WxOrder wxOrder);

SumMicroPayVO sumMicroPay(Map dateMap);
} }

+ 3
- 2
mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java View File

@@ -239,6 +239,7 @@ public interface WxCouponOrderService {
List<WxCouponOrderCVo> findAvailCouponOrder(TenantEntity tenantEntity,Long cUserId,Long merchantId,Long posOrderId); List<WxCouponOrderCVo> findAvailCouponOrder(TenantEntity tenantEntity,Long cUserId,Long merchantId,Long posOrderId);
PageInfo<WxMerchantTradeDetailVo> userTradeDetailList(WxMerchant wxMerchant,Date startTime,Date endTime,Integer pageIndex,Integer pageSize); PageInfo<WxMerchantTradeDetailVo> userTradeDetailList(WxMerchant wxMerchant,Date startTime,Date endTime,Integer pageIndex,Integer pageSize);


ResultData sumVerified(WxMerchantBUser bUser, Date startDate, Date endDate);
} }

+ 9
- 0
mallinkService/src/main/java/com/iformall/service/WxOrderService.java View File

@@ -200,6 +200,14 @@ public interface WxOrderService {


void updateStatusByPressCouponId(Long couponId, TenantEntity tenantEntity,int orderStatus); void updateStatusByPressCouponId(Long couponId, TenantEntity tenantEntity,int orderStatus);


/**
* 通过优惠券id更新订单状态
* @param tenantId
* @param couponId
* @param orderStatus
*/
void updateStatusByPressCouponId(String tenantId, Long couponId, int orderStatus);

void updateOrderStatus(WxOrder order); void updateOrderStatus(WxOrder order);


void updateOrderGroupStatusByCouponId(Long id, TenantEntity tenantEntity, Integer code); void updateOrderGroupStatusByCouponId(Long id, TenantEntity tenantEntity, Integer code);
@@ -284,4 +292,5 @@ public interface WxOrderService {
ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam, ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam,
List<CreateOrderCallback.Good> goods); List<CreateOrderCallback.Good> goods);


ResultData sumMicroPay(WxMerchantBUser bUser, Integer type, Date startDate, Date endDate);
} }

+ 48
- 29
mallinkService/src/main/java/com/iformall/service/helper/WxOrderServiceHelper.java View File

@@ -2,10 +2,14 @@ package com.iformall.service.helper;


import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCoupon;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumCacheKey; import com.iformall.enums.EnumCacheKey;
import com.iformall.enums.EnumOrderStatus;
import com.iformall.enums.EnumYesOrNo;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.service.WxCouponChannelService; import com.iformall.service.WxCouponChannelService;
import com.iformall.service.WxCouponService; import com.iformall.service.WxCouponService;
import com.iformall.service.WxOrderService;
import com.iformall.utils.RedisLock; import com.iformall.utils.RedisLock;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -13,48 +17,63 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


import java.util.concurrent.CompletableFuture;

@Service @Service
public class WxOrderServiceHelper { public class WxOrderServiceHelper {


private static final Logger logger = LoggerFactory.getLogger(WxOrderServiceHelper.class);
private static final Logger logger = LoggerFactory.getLogger(WxOrderServiceHelper.class);
@Lazy @Lazy
@Autowired @Autowired
WxCouponChannelService wxCouponChannelService; WxCouponChannelService wxCouponChannelService;
@Lazy @Lazy
@Autowired @Autowired
WxCouponService wxCouponService; WxCouponService wxCouponService;

@Lazy
@Autowired
private WxOrderService wxOrderService;

@Autowired @Autowired
RedisLock redisLock; RedisLock redisLock;

/** /**
* 微信订单是否可以支付 * 微信订单是否可以支付
*/ */
public void reduceStock(boolean isChannelStockReduce, WxCoupon coupon,Long couponChannelId,int number) throws Exception{
if (isChannelStockReduce) {
try {
wxCouponChannelService.reduceChannelStock(coupon,couponChannelId,number);
long stock = redisLock.decrease(EnumCacheKey.COUPON_CHANNEL_STOCK.getMessage()+couponChannelId, number);
if (stock < 0 ) {
throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"券["+coupon.getTitle()+"]渠道["+couponChannelId+"]库存已为零!");
}
} catch (RuntimeException e) {
throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"券["+coupon.getTitle()+"]渠道["+couponChannelId+"]库存更新失败!"+e.getMessage());
}
}else {
try {
wxCouponService.reduceRemainInventory(coupon,coupon.getId(),number);
long stock = redisLock.decrease(EnumCacheKey.COUPON_STOCK.getMessage()+coupon.getId(), number);
if (stock < 0 ) {
throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"券["+coupon.getTitle()+"]库存已为零!");
}
} catch (RuntimeException e) {
logger.error("此券减库存失败, couponId: " + coupon.getId(),e);
throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"券["+coupon.getTitle()+"]库存更新失败!"+e.getMessage());
}
}
public void reduceStock(boolean isChannelStockReduce, WxCoupon coupon, Long couponChannelId, int number, Boolean isPressOrder) throws Exception {
long stock;
if (isChannelStockReduce) {
try {
wxCouponChannelService.reduceChannelStock(coupon, couponChannelId, number);
stock = redisLock.decrease(EnumCacheKey.COUPON_CHANNEL_STOCK.getMessage() + couponChannelId, number);
if (stock < 0) {
throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(), "券[" + coupon.getTitle() + "]渠道[" + couponChannelId + "]库存已为零!");
}
} catch (RuntimeException e) {
throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(), "券[" + coupon.getTitle() + "]渠道[" + couponChannelId + "]库存更新失败!" + e.getMessage());
}

} else {
try {
wxCouponService.reduceRemainInventory(coupon, coupon.getId(), number);
stock = redisLock.decrease(EnumCacheKey.COUPON_STOCK.getMessage() + coupon.getId(), number);
if (stock < 0) {
throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(), "券[" + coupon.getTitle() + "]库存已为零!");
}
} catch (RuntimeException e) {
logger.error("此券减库存失败, couponId: " + coupon.getId(), e);
throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(), "券[" + coupon.getTitle() + "]库存更新失败!" + e.getMessage());
}
}

// 砍价订单,支付时扣库存,库存不足 则修改砍价订单状态
CompletableFuture.runAsync(() -> {
if (isPressOrder && null != coupon.getPressPayReduceStock() && coupon.getPressPayReduceStock().intValue() == EnumYesOrNo.YES.getCode().intValue() && stock <= 0 ) {
wxOrderService.updateStatusByPressCouponId(coupon.getTenantId(), coupon.getCouponId(), EnumOrderStatus.ORDER_STATUS_PRESS_CANCEL.getCode());
}
});
} }
} }

+ 8
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java View File

@@ -320,8 +320,6 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
if (isVerified) { if (isVerified) {
PageInfo<WxCouponOrderBVo> pageResult = findListOfVerifiedByDateForBUser(wxMerchant, wxMerchant.getId(), startDate, endDate, pageIndex, pageSize); PageInfo<WxCouponOrderBVo> pageResult = findListOfVerifiedByDateForBUser(wxMerchant, wxMerchant.getId(), startDate, endDate, pageIndex, pageSize);
resultMap.put("list", pageResult); resultMap.put("list", pageResult);
int amount = pageResult.getList() != null ? pageResult.getList().stream().mapToInt(WxCouponOrderBVo::getCouponPrice).sum() : 0;
resultMap.put("amount", amount);
}else { }else {
resultMap.put("list", findListOfOrderedByDateForBUser(wxMerchant,wxMerchant.getId(),startDate,endDate,pageIndex,pageSize)); resultMap.put("list", findListOfOrderedByDateForBUser(wxMerchant,wxMerchant.getId(),startDate,endDate,pageIndex,pageSize));
} }
@@ -3255,8 +3253,14 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
retPageInfo.setList(couponOrderListToTradeDetailVoList(wxMerchant,pageInfo.getList())); retPageInfo.setList(couponOrderListToTradeDetailVoList(wxMerchant,pageInfo.getList()));
return retPageInfo; return retPageInfo;
} }
private List<WxMerchantTradeDetailVo> couponOrderListToTradeDetailVoList(TenantEntity tenantEntity,List<WxCouponOrder> couponOrderList) {

@Override
public ResultData sumVerified(WxMerchantBUser bUser, Date startDate, Date endDate) {
SumVerifiedVO vo = wxCouponOrderMapper.sumVerified(bUser.getTenantId(), bUser.getMerchantId(), startDate, endDate);
return new ResultData(vo);
}

private List<WxMerchantTradeDetailVo> couponOrderListToTradeDetailVoList(TenantEntity tenantEntity,List<WxCouponOrder> couponOrderList) {
if (null == couponOrderList || couponOrderList.size() <=0 ) { if (null == couponOrderList || couponOrderList.size() <=0 ) {
return null; return null;
} }


+ 32
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java View File

@@ -312,8 +312,6 @@ public class WxOrderServiceImpl implements WxOrderService {
} else { } else {
PageInfo<WxOrderPayVo> pageResult = orderPayVoPageInfo(wxMerchantBUser, pageIndex, pageSize, dateMap); PageInfo<WxOrderPayVo> pageResult = orderPayVoPageInfo(wxMerchantBUser, pageIndex, pageSize, dateMap);
resultMap.put("list", pageResult); resultMap.put("list", pageResult);
int amount = pageResult.getList() != null ? pageResult.getList().stream().mapToInt(WxOrderPayVo::getPayment).sum() : 0;
resultMap.put("amount", amount);
} }
return resultMap; return resultMap;
} }
@@ -1121,7 +1119,7 @@ public class WxOrderServiceImpl implements WxOrderService {
} }
if (isReduceStock) { if (isReduceStock) {
try { try {
wxOrderServiceHelper.reduceStock(isChannelStockReduce,coupon,couponChannelId, number);
wxOrderServiceHelper.reduceStock(isChannelStockReduce,coupon,couponChannelId, number, isPressOrder);
}catch (Exception e) { }catch (Exception e) {
throw new MallinkException(ErrorCode.DB_FAIL.getCode(),e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL.getCode(),e.getMessage());
} }
@@ -3056,6 +3054,16 @@ public class WxOrderServiceImpl implements WxOrderService {
wxOrderMapper.updateStatusByPressCouponId(updateOrder); wxOrderMapper.updateStatusByPressCouponId(updateOrder);
} }


@Override
public void updateStatusByPressCouponId(String tenantId, Long couponId, int orderStatus) {
WxOrder updateOrder = new WxOrder();
updateOrder.setTenantId(tenantId);
updateOrder.setOrderStatus(orderStatus);
updateOrder.setProductId(couponId);
updateOrder.setUpdateDate(new Date());
wxOrderMapper.updateStatusByPressCouponId(updateOrder);
}

@Autowired @Autowired
@Qualifier("cUserBasicInfoRedisTemplate") @Qualifier("cUserBasicInfoRedisTemplate")
RedisTemplate<String, WxCUserBasicInfo> cUserBasicInfoRedisTemplate; RedisTemplate<String, WxCUserBasicInfo> cUserBasicInfoRedisTemplate;
@@ -3951,6 +3959,27 @@ public class WxOrderServiceImpl implements WxOrderService {
// } // }
} }


@Override
public ResultData sumMicroPay(WxMerchantBUser bUser, Integer type, Date startDate, Date endDate) {
Map dataMap = new HashMap();
dataMap.put("startDate", startDate);
dataMap.put("endDate", endDate);
dataMap.put("merchantId", bUser.getMerchantId());
dataMap.put("type", type);
dataMap.put("tenantId", bUser.getTenantId());
dataMap.put("finalTenantId", bUser.getFinalTenantId());
WxMerchantBUser merchantBUserQ = new WxMerchantBUser();
merchantBUserQ.updateTenantInfo(bUser);
merchantBUserQ.setMerchantId(bUser.getMerchantId());
List<Long> bUserIds = wxMerchantBUserMapper.findIdList(merchantBUserQ);
if (null == bUserIds || bUserIds.size() <= 0 ) {
throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND);
}
dataMap.put("bUserIds", bUserIds);
SumMicroPayVO vo = wxOrderMapper.sumMicroPay(dataMap);
return new ResultData(vo);
}

private Map<Long,List<WxOrderCouponVo>> getBatchOrderMap(TenantEntity tenantEntity,List<Long> batchOrderIds){ private Map<Long,List<WxOrderCouponVo>> getBatchOrderMap(TenantEntity tenantEntity,List<Long> batchOrderIds){
WxOrder recordQ = new WxOrder(); WxOrder recordQ = new WxOrder();
recordQ.updateTenantInfo(tenantEntity); recordQ.updateTenantInfo(tenantEntity);


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java View File

@@ -214,7 +214,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
if (null != coupon && coupon.getType().intValue() == EnumCouponType.COUPON_PRESS.getCode().intValue() if (null != coupon && coupon.getType().intValue() == EnumCouponType.COUPON_PRESS.getCode().intValue()
&& null != coupon.getPressPayReduceStock() && coupon.getPressPayReduceStock().intValue() == EnumYesOrNo.YES.getCode().intValue()) { && null != coupon.getPressPayReduceStock() && coupon.getPressPayReduceStock().intValue() == EnumYesOrNo.YES.getCode().intValue()) {
try { try {
wxOrderServiceHelper.reduceStock(false,coupon,order.getCouponChannelId(), 1);
wxOrderServiceHelper.reduceStock(false,coupon,order.getCouponChannelId(), 1, true);
return true; return true;
}catch(Exception e) { }catch(Exception e) {
//如果此时扣库存失败,则需要给订单退款 //如果此时扣库存失败,则需要给订单退款


+ 4
- 0
mallinkService/src/main/java/com/iformall/utils/RedisCacheUtils.java View File

@@ -167,4 +167,8 @@ public class RedisCacheUtils {
Set keys = template.keys(prefix+"*"); Set keys = template.keys(prefix+"*");
template.delete(keys); template.delete(keys);
} }

public static Boolean hasKey(RedisTemplate<String, Object> template,String key) {
return template.hasKey(key);
}
} }

+ 15
- 0
mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml View File

@@ -1182,5 +1182,20 @@
and update_date &gt;= #{verifiedStartTime} and update_date &gt;= #{verifiedStartTime}
and update_date &lt;= #{verifiedEndTime} and update_date &lt;= #{verifiedEndTime}
</select> </select>
<select id="sumVerified" resultType="com.iformall.domain.vo.SumVerifiedVO">
select IFNULL(SUM(co.coupon_price), 0) AS amount, COUNT(1) AS total
from wx_coupon_order co
where co.tenant_id = #{tenantId}
AND co.coupon_order_status = '1'
<if test=" null != bMerchantId ">
and co.b_merchant_id = #{bMerchantId}
</if>
<if test="startDate != null">
AND co.update_date &gt;= #{startDate,jdbcType=TIMESTAMP}
</if>
<if test="endDate != null">
AND co.update_date &lt;= #{endDate,jdbcType=TIMESTAMP}
</if>
</select>


</mapper> </mapper>

+ 30
- 1
mallinkService/src/main/resources/mapper/WxOrderMapper.xml View File

@@ -1171,5 +1171,34 @@
</if> </if>


</select> </select>
<select id="sumMicroPay" resultType="com.iformall.domain.vo.SumMicroPayVO">
select IFNULL(SUM(o.payment), 0) AS amount, COUNT(1) AS total
from wx_order o
where o.order_status = '1' and o.`type` = 1
<if test=" null != tenantId and '' != tenantId">
and o.`tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and o.`parent_tenant_id` = #{parentTenantId}
</if>
<if test=" null != payVendor ">
and o.pay_vendor = #{payVendor}
</if>
<if test=" null != payVersion ">
and o.pay_version = #{payVersion}
</if>
<if test=" null != bUserIds ">
and o.product_id in
<foreach collection="bUserIds" index="index" item="bUserIdItem" open="(" separator="," close=")">
#{bUserIdItem}
</foreach>
</if>
<if test="startDate != null">
AND o.create_date &gt;= #{startDate,jdbcType=TIMESTAMP}
</if>
<if test="endDate != null">
AND o.create_date &lt;= #{endDate,jdbcType=TIMESTAMP}
</if>
</select>

</mapper> </mapper>

Loading…
Cancel
Save