Просмотр исходного кода

[停车券领取限制检查][新增]

release_toaliyun_real
Stormeye.Wu 7 лет назад
Родитель
Сommit
6d0725713b
5 измененных файлов: 40 добавлений и 24 удалений
  1. +1
    -1
      mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java
  2. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java
  3. +19
    -19
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  4. +1
    -3
      mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml
  5. +17
    -1
      mallinkService/src/main/resources/mapper/WxOrderMapper.xml

+ 1
- 1
mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java Просмотреть файл

@@ -14,7 +14,7 @@ public interface WxCouponOrderMapper extends CommonMapper<WxCouponOrder, Long> {

List<WxCouponOrder> findList(WxCouponOrder wxCouponOrder);
Integer countList(WxCouponOrder wxCouponOrder);
Integer countCarList(Map params);
Integer dayCountCarList(Map params);

List<WxCouponOrder> findListOfOrderedByDate(Map dateMap);
List<WxCouponOrder> findListOfVerifiedByDate(Map dateMap);


+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java Просмотреть файл

@@ -11,6 +11,8 @@ public interface WxOrderMapper extends CommonMapper<WxOrder, Long> {

Integer countList(WxOrder wxOrder);

Integer dayCountList(WxOrder wxOrder);

List<WxOrder> findListOfUnpaidOrderByDate(Map dateMap);

List<WxOrderCVo> findListOfCUser(WxOrder wxOrder);


+ 19
- 19
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Просмотреть файл

@@ -86,7 +86,11 @@ public class WxOrderServiceImpl implements WxOrderService {
orderQ.setCUserId(user.getId());
orderQ.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode());
try {
countOrder = wxOrderMapper.countList(orderQ);
if (counpon.getType().equals(EnumCouponType.COUPON_TINGCHE.getCode())) {
countOrder = wxOrderMapper.dayCountList(orderQ);
} else {
countOrder = wxOrderMapper.countList(orderQ);
}
} catch (Exception e) {
logger.error("购买是否超限-DB, couponId: " + counpon.getId() + ", e:" + e.getMessage());
throw new MallinkException(ErrorCode.ORDER_IS_FAIL);
@@ -98,7 +102,7 @@ public class WxOrderServiceImpl implements WxOrderService {
Map params = new HashMap<String, Object>();
params.put("couponId", counpon.getId());
params.put("cUserId", user.getId());
countCouponOrder = wxCouponOrderMapper.countCarList(params);
countCouponOrder = wxCouponOrderMapper.dayCountCarList(params);
} else {
WxCouponOrder couponOrderQ = new WxCouponOrder();
couponOrderQ.setTenantId(user.getTenantId());
@@ -133,24 +137,20 @@ public class WxOrderServiceImpl implements WxOrderService {
}

// check 购买是否超限
if (coupon.getType().equals(EnumCouponType.COUPON_TINGCHE.getCode())) {

} else {
int count = 0;
try {
count = getUserCouponOrderCount(user, coupon);
} catch (Exception e) {
//解锁
redisLock.unlock(couponIdStr, timeStr);
throw new MallinkException(ErrorCode.DB_FAIL);
}
int count = 0;
try {
count = getUserCouponOrderCount(user, coupon);
} catch (Exception e) {
//解锁
redisLock.unlock(couponIdStr, timeStr);
throw new MallinkException(ErrorCode.DB_FAIL);
}

if (count >= coupon.getUseLimitQuantity()) {
//解锁
redisLock.unlock(couponIdStr, timeStr);
logger.error("此券购买数量已超限, couponId: " + couponIdStr + ", count: " + count);
throw new MallinkException(ErrorCode.ORDER_IS_LIMITED);
}
if (count >= coupon.getUseLimitQuantity()) {
//解锁
redisLock.unlock(couponIdStr, timeStr);
logger.error("此券购买数量已超限, couponId: " + couponIdStr + ", count: " + count);
throw new MallinkException(ErrorCode.ORDER_IS_LIMITED);
}




+ 1
- 3
mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml Просмотреть файл

@@ -84,7 +84,7 @@
<include refid="dynamicWhereConditions" />
</select>

<select id="countCarList" parameterType="hashmap" resultType="java.lang.Integer">
<select id="dayCountCarList" parameterType="hashmap" resultType="java.lang.Integer">
select count(*) from wx_coupon_order
<where>
<if test=" null != tenantId ">
@@ -102,8 +102,6 @@
</where>
</select>



<resultMap id="BVoResultMap" type="com.iformall.domain.vo.WxCouponOrderBVo">

<id column="id" jdbcType="BIGINT" property="id" />


+ 17
- 1
mallinkService/src/main/resources/mapper/WxOrderMapper.xml Просмотреть файл

@@ -113,7 +113,23 @@
<include refid="dynamicWhereConditions" />
</select>


<select id="dayCountList" parameterType="com.iformall.domain.po.WxOrder" resultType="java.lang.Integer">
select count(*) from wx_order
where 1=1
<if test=" null != tenantId ">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != cUserId ">
and `c_user_id` = #{cUserId}
</if>
<if test=" null != couponId ">
and `coupon_id` = #{couponId}
</if>
<if test=" null != orderStatus ">
and `order_status` = #{orderStatus}
</if>
and `create_date` between date_sub(now(),interval 1 day) and now()
</select>

<select id="findListOfUnpaidOrderByDate" parameterType="map" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_order


Загрузка…
Отмена
Сохранить