| @@ -133,7 +133,9 @@ public class CouponSendSchedule { | |||||
| params.put("cUserId", cu.getId()); | params.put("cUserId", cu.getId()); | ||||
| params.put("couponId", cs.getCouponId()); | params.put("couponId", cs.getCouponId()); | ||||
| params.put("startTime", startTime); | params.put("startTime", startTime); | ||||
| params.put("endTime", endTime ); | |||||
| params.put("endTime", endTime); | |||||
| params.put("channelType", EnumCouponSendSendType.TIMED.getCode()); | |||||
| int sentCount = wxCouponActionLogMapper.getCountByUserAndCouponAndDate(params); | int sentCount = wxCouponActionLogMapper.getCountByUserAndCouponAndDate(params); | ||||
| logger.info("定时发券:给["+ cu.getNickName() + | logger.info("定时发券:给["+ cu.getNickName() + | ||||
| @@ -14,8 +14,6 @@ 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<WxOrder> findListOfUnpaidPressOrderByDate(Map dateMap); | List<WxOrder> findListOfUnpaidPressOrderByDate(Map dateMap); | ||||
| @@ -44,6 +44,4 @@ public interface WxCouponService { | |||||
| void deleteById(Long id); | void deleteById(Long id); | ||||
| void reduceInventory(Long id,Integer number); | |||||
| } | } | ||||
| @@ -237,13 +237,14 @@ public class WxCouponInjectServiceImpl implements WxCouponInjectService { | |||||
| WxCouponOrder couponOrder = null; | WxCouponOrder couponOrder = null; | ||||
| try { | try { | ||||
| couponOrder = wxOrderService.sendFreeCouponToUser(tempCUser.getId(), wxCoupon.getId()); | couponOrder = wxOrderService.sendFreeCouponToUser(tempCUser.getId(), wxCoupon.getId()); | ||||
| if (couponOrder != null) { | |||||
| wxCouponActionLogService.addOne(tempCUser.getTenantId(), wxCoupon.getId(), couponOrder.getId(), EnumCouponSendSendType.INJECT.getCode(), couponInjectId); | |||||
| } | |||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| return false; | return false; | ||||
| } | } | ||||
| if (couponOrder != null) { | |||||
| wxCouponActionLogService.addOne(tempCUser.getTenantId(), wxCoupon.getId(), couponOrder.getId(), EnumCouponSendSendType.INJECT.getCode(), couponInjectId); | |||||
| } | |||||
| return true; | return true; | ||||
| } | } | ||||
| @@ -186,7 +186,6 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||||
| wxCouponActionLogService.addOne(tenantId, send.getCouponId(), couponOrder.getId(), type.getCode(), send.getId()); | wxCouponActionLogService.addOne(tenantId, send.getCouponId(), couponOrder.getId(), type.getCode(), send.getId()); | ||||
| bRet = true; | bRet = true; | ||||
| } | } | ||||
| // wxCouponService.reduceInventory(send.getCouponId(), 1); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| } | } | ||||
| @@ -246,10 +246,4 @@ public class WxCouponServiceImpl implements WxCouponService { | |||||
| wxCouponMapper.deleteByPrimaryKey(id); | wxCouponMapper.deleteByPrimaryKey(id); | ||||
| } | } | ||||
| @Override | |||||
| public void reduceInventory(Long id, Integer number) { | |||||
| wxCouponMapper.reduceInventory(id,number); | |||||
| } | |||||
| } | } | ||||
| @@ -172,38 +172,28 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| // + Order 待支付 | // + Order 待支付 | ||||
| // + couponOrder ---待使用 | // + couponOrder ---待使用 | ||||
| int countOrder = 0, countCouponOrder = 0; | int countOrder = 0, countCouponOrder = 0; | ||||
| WxOrder orderQ = new WxOrder(); | |||||
| orderQ.setTenantId(user.getTenantId()); | |||||
| orderQ.setProductId(counpon.getId()); | |||||
| orderQ.setType(EnumOrderType.COUPON.getCode()); | |||||
| orderQ.setcUserId(user.getId()); | |||||
| orderQ.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); | |||||
| try { | try { | ||||
| if (counpon.getType().equals(EnumCouponType.COUPON_TINGCHE.getCode())) { | |||||
| countOrder = wxOrderMapper.dayCountList(orderQ); | |||||
| } else { | |||||
| countOrder = wxOrderMapper.countList(orderQ); | |||||
| } | |||||
| WxOrder orderQ = new WxOrder(); | |||||
| orderQ.setTenantId(user.getTenantId()); | |||||
| orderQ.setProductId(counpon.getId()); | |||||
| orderQ.setType(EnumOrderType.COUPON.getCode()); | |||||
| orderQ.setcUserId(user.getId()); | |||||
| orderQ.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); | |||||
| 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); | ||||
| } | } | ||||
| try { | try { | ||||
| if (counpon.getType().equals(EnumCouponType.COUPON_TINGCHE.getCode())) { | |||||
| // 停车券 每日限领1张 | |||||
| Map params = new HashMap<String, Object>(); | |||||
| params.put("couponId", counpon.getId()); | |||||
| params.put("cUserId", user.getId()); | |||||
| countCouponOrder = wxCouponOrderMapper.dayCountCarList(params); | |||||
| } else { | |||||
| WxCouponOrder couponOrderQ = new WxCouponOrder(); | |||||
| couponOrderQ.setTenantId(user.getTenantId()); | |||||
| couponOrderQ.setCouponId(counpon.getId()); | |||||
| couponOrderQ.setCUserId(user.getId()); | |||||
| //////couponOrderQ.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | |||||
| countCouponOrder = wxCouponOrderMapper.countList(couponOrderQ); | |||||
| } | |||||
| WxCouponOrder couponOrderQ = new WxCouponOrder(); | |||||
| couponOrderQ.setTenantId(user.getTenantId()); | |||||
| couponOrderQ.setCouponId(counpon.getId()); | |||||
| couponOrderQ.setCUserId(user.getId()); | |||||
| if (counpon.getSendType().equals(EnumCouponSendType.PASSIVE)) | |||||
| couponOrderQ.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | |||||
| countCouponOrder = wxCouponOrderMapper.countList(couponOrderQ); | |||||
| } 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); | ||||
| @@ -249,8 +239,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| try { | try { | ||||
| // 减库存 | // 减库存 | ||||
| coupon.setRemainInventory(coupon.getRemainInventory() - 1); | |||||
| wxCouponMapper.updateByPrimaryKeySelective(coupon); | |||||
| wxCouponMapper.reduceInventory(coupon.getId(), 1); | |||||
| //解锁 | //解锁 | ||||
| redisLock.unlock(couponIdStr, timeStr); | redisLock.unlock(couponIdStr, timeStr); | ||||
| } catch (RuntimeException e) { | } catch (RuntimeException e) { | ||||
| @@ -188,6 +188,7 @@ | |||||
| AND a.tenant_id = #{tenantId} | AND a.tenant_id = #{tenantId} | ||||
| AND o.c_user_id = #{cUserId} | AND o.c_user_id = #{cUserId} | ||||
| AND a.coupon_id = #{couponId} | AND a.coupon_id = #{couponId} | ||||
| AND a.channel_type = #{channelType} | |||||
| and a.create_time >= #{startTime} | and a.create_time >= #{startTime} | ||||
| and a.create_time <= #{endTime} | and a.create_time <= #{endTime} | ||||
| </select> | </select> | ||||
| @@ -94,23 +94,6 @@ | |||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| </select> | </select> | ||||
| <select id="dayCountCarList" parameterType="hashmap" resultType="java.lang.Integer"> | |||||
| select count(*) from wx_coupon_order | |||||
| <where> | |||||
| <if test=" null != tenantId "> | |||||
| and `tenant_id` = #{tenantId} | |||||
| </if> | |||||
| <if test=" null != couponId "> | |||||
| and `coupon_id` = #{couponId} | |||||
| </if> | |||||
| <if test=" null != cUserId "> | |||||
| and `c_user_id` = #{cUserId} | |||||
| </if> | |||||
| and date(`create_date`) = curdate() | |||||
| </where> | |||||
| </select> | |||||
| <select id="findCountByDateLimit" resultType="java.lang.Integer"> | <select id="findCountByDateLimit" resultType="java.lang.Integer"> | ||||
| select COUNT(*) FROM wx_coupon_order | select COUNT(*) FROM wx_coupon_order | ||||
| @@ -118,26 +118,6 @@ | |||||
| <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 != couponChannelId "> | |||||
| and `coupon_channel_id` = #{couponChannelId} | |||||
| </if> | |||||
| <if test=" null != productId "> | |||||
| and `product_id` = #{productId} | |||||
| </if> | |||||
| <if test=" null != orderStatus "> | |||||
| and `order_status` = #{orderStatus} | |||||
| </if> | |||||
| and date(`create_date`) = curdate() | |||||
| </select> | |||||
| <select id="findListOfUnpaidOrderByDate" parameterType="map" resultMap="BaseResultMap"> | <select id="findListOfUnpaidOrderByDate" parameterType="map" resultMap="BaseResultMap"> | ||||
| select | select | ||||