| @@ -14,7 +14,7 @@ public interface WxCouponOrderMapper extends CommonMapper<WxCouponOrder, Long> { | |||||
| List<WxCouponOrder> findList(WxCouponOrder wxCouponOrder); | List<WxCouponOrder> findList(WxCouponOrder wxCouponOrder); | ||||
| Integer countList(WxCouponOrder wxCouponOrder); | Integer countList(WxCouponOrder wxCouponOrder); | ||||
| Integer countCarList(Map params); | |||||
| Integer dayCountCarList(Map params); | |||||
| List<WxCouponOrder> findListOfOrderedByDate(Map dateMap); | List<WxCouponOrder> findListOfOrderedByDate(Map dateMap); | ||||
| List<WxCouponOrder> findListOfVerifiedByDate(Map dateMap); | List<WxCouponOrder> findListOfVerifiedByDate(Map dateMap); | ||||
| @@ -11,6 +11,8 @@ public interface WxOrderMapper extends CommonMapper<WxOrder, Long> { | |||||
| Integer countList(WxOrder wxOrder); | Integer countList(WxOrder wxOrder); | ||||
| Integer dayCountList(WxOrder wxOrder); | |||||
| List<WxOrder> findListOfUnpaidOrderByDate(Map dateMap); | List<WxOrder> findListOfUnpaidOrderByDate(Map dateMap); | ||||
| List<WxOrderCVo> findListOfCUser(WxOrder wxOrder); | List<WxOrderCVo> findListOfCUser(WxOrder wxOrder); | ||||
| @@ -86,7 +86,11 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| orderQ.setCUserId(user.getId()); | orderQ.setCUserId(user.getId()); | ||||
| orderQ.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); | orderQ.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); | ||||
| try { | 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) { | } catch (Exception e) { | ||||
| logger.error("购买是否超限-DB, couponId: " + counpon.getId() + ", e:" + e.getMessage()); | logger.error("购买是否超限-DB, couponId: " + counpon.getId() + ", e:" + e.getMessage()); | ||||
| throw new MallinkException(ErrorCode.ORDER_IS_FAIL); | throw new MallinkException(ErrorCode.ORDER_IS_FAIL); | ||||
| @@ -98,7 +102,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| Map params = new HashMap<String, Object>(); | Map params = new HashMap<String, Object>(); | ||||
| params.put("couponId", counpon.getId()); | params.put("couponId", counpon.getId()); | ||||
| params.put("cUserId", user.getId()); | params.put("cUserId", user.getId()); | ||||
| countCouponOrder = wxCouponOrderMapper.countCarList(params); | |||||
| countCouponOrder = wxCouponOrderMapper.dayCountCarList(params); | |||||
| } else { | } else { | ||||
| WxCouponOrder couponOrderQ = new WxCouponOrder(); | WxCouponOrder couponOrderQ = new WxCouponOrder(); | ||||
| couponOrderQ.setTenantId(user.getTenantId()); | couponOrderQ.setTenantId(user.getTenantId()); | ||||
| @@ -133,24 +137,20 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| } | } | ||||
| // check 购买是否超限 | // 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); | |||||
| } | } | ||||
| @@ -84,7 +84,7 @@ | |||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| </select> | </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 | select count(*) from wx_coupon_order | ||||
| <where> | <where> | ||||
| <if test=" null != tenantId "> | <if test=" null != tenantId "> | ||||
| @@ -102,8 +102,6 @@ | |||||
| </where> | </where> | ||||
| </select> | </select> | ||||
| <resultMap id="BVoResultMap" type="com.iformall.domain.vo.WxCouponOrderBVo"> | <resultMap id="BVoResultMap" type="com.iformall.domain.vo.WxCouponOrderBVo"> | ||||
| <id column="id" jdbcType="BIGINT" property="id" /> | <id column="id" jdbcType="BIGINT" property="id" /> | ||||
| @@ -113,7 +113,23 @@ | |||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| </select> | </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 id="findListOfUnpaidOrderByDate" parameterType="map" resultMap="BaseResultMap"> | ||||
| select <include refid="allColumns" /> from wx_order | select <include refid="allColumns" /> from wx_order | ||||