Преглед изворни кода

[精准发券短信整理][整理]

release_toaliyun_real
Stormeye.Wu пре 7 година
родитељ
комит
c28ce9f360
3 измењених фајлова са 24 додато и 21 уклоњено
  1. +2
    -3
      mallinkService/src/main/java/com/iformall/service/PushLimitService.java
  2. +21
    -17
      mallinkService/src/main/java/com/iformall/service/impl/CouponInjectServiceImpl.java
  3. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/PushLimitServiceImpl.java

+ 2
- 3
mallinkService/src/main/java/com/iformall/service/PushLimitService.java Прегледај датотеку

@@ -50,16 +50,15 @@ public interface PushLimitService {
/**
* 发短信检查
* @param tenantId
* @param phone
* @return
*/
boolean checkMsg(String tenantId, String phone);
boolean checkMsg(String tenantId);

/**
* 主动发券检查
* @param tenantId
* @param cUserId
* @param coupon
* @param couponId
* @return
*/
boolean checkCoupon(String tenantId, Long cUserId, Long couponId);


+ 21
- 17
mallinkService/src/main/java/com/iformall/service/impl/CouponInjectServiceImpl.java Прегледај датотеку

@@ -125,16 +125,17 @@ public class CouponInjectServiceImpl implements CouponInjectService {
record.setSendAmount(cUsers.size());
couponInjectMapper.insertSelective(record);
if(record.getSendType().equals(EnumCouponInjectSendType.IMMEDIATE.getCode())) {
sendNow(wxCoupon,cUsers,record.getId());
sendNow(wxCoupon,cUsers,record);
}

//发送短信
sendMsg(record,cUsers);

return new ResultData();
}

private void sendMsg(CouponInject record, List<WxCUser> cUsers) {
if (!pushLimitService.checkMsg(record.getTenantId())) {
logger.error("发送短信时间在疲劳度允许时间范围外");
return;
}

//根据模板ID查询短信信息
WxMsgModel model = wxMsgModelService.getById(record.getModelId());
@@ -161,6 +162,7 @@ public class CouponInjectServiceImpl implements CouponInjectService {
if(wxMsgConfig.getRemains()<cUsers.size()){
logger.info("短信数量不足");
return;

}

//获取手机号
@@ -205,20 +207,24 @@ public class CouponInjectServiceImpl implements CouponInjectService {
}
}

private void sendNow(WxCoupon wxCoupon,List<WxCUser> cUsers,Long couponInjectId){
private void sendNow(WxCoupon wxCoupon,List<WxCUser> cUsers,CouponInject record){
//查询标签用户

int sendRealAmount=0;
List<WxCUser> sentUsers = new ArrayList<WxCUser>();
for (WxCUser tempCUser : cUsers) {
int result = sendCouponToUser(tempCUser,wxCoupon,couponInjectId);
sendRealAmount=sendRealAmount+result;
boolean bResult = sendCouponToUser(tempCUser,wxCoupon,record.getId());
if (bResult) {
sentUsers.add(tempCUser);
sendRealAmount += 1;
}
}
//修改卡券存库
wxCoupon.setRemainInventory(wxCoupon.getRemainInventory()-sendRealAmount);
wxCouponService.saveOrUpdate(wxCoupon);
//发送短信
sendMsg(record,sentUsers);
}
private int sendCouponToUser(WxCUser tempCUser,WxCoupon wxCoupon,Long couponInjectId) {
int injectResult = 0;//0注入不成功,1注入卡包成功


private boolean sendCouponToUser(WxCUser tempCUser,WxCoupon wxCoupon,Long couponInjectId) {
boolean checkLimit = false;
// 检查疲劳度
try {
@@ -227,16 +233,14 @@ public class CouponInjectServiceImpl implements CouponInjectService {
logger.error(e.getMessage());
}
if (!checkLimit) {
return injectResult;
return false;
}
// 发放免费券
WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(tempCUser.getId(), wxCoupon.getId());
if (couponOrder != null) {
wxCouponActionLogService.addOne(tempCUser.getTenantId(), wxCoupon.getId(), couponOrder.getId(), EnumCouponSendSendType.INJECT.getCode(), couponInjectId);
}
injectResult = 1;

return injectResult;
return true;
}




+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/PushLimitServiceImpl.java Прегледај датотеку

@@ -78,7 +78,7 @@ public class PushLimitServiceImpl implements PushLimitService {
}

@Override
public boolean checkMsg(String tenantId, String phone) {
public boolean checkMsg(String tenantId) {
Date curDate = new Date();
// 1. get tenant limit
PushLimit pushLimit = getPushLimit(tenantId);


Loading…
Откажи
Сачувај