|
@@ -28,8 +28,7 @@ import java.util.*;
|
|
|
import java.util.function.Predicate;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static com.ym.mec.biz.dal.enums.MessageTypeEnum.EMAIL_TENANT_INSUFFICIENT_BALANCE;
|
|
|
-import static com.ym.mec.biz.dal.enums.MessageTypeEnum.SMS_TENANT_INSUFFICIENT_BALANCE;
|
|
|
+import static com.ym.mec.biz.dal.enums.MessageTypeEnum.*;
|
|
|
|
|
|
/**
|
|
|
* 机构资产信息(TenantAssetsInfo)表服务实现类
|
|
@@ -47,8 +46,6 @@ public class TenantAssetsInfoServiceImpl extends ServiceImpl<TenantAssetsInfoDao
|
|
|
@Autowired
|
|
|
private TenantCloudCourseRecordService tenantCloudCourseRecordService;
|
|
|
@Autowired
|
|
|
- private TenantInfoSendMsgService tenantInfoSendMsgService;
|
|
|
- @Autowired
|
|
|
private TenantInfoService tenantInfoService;
|
|
|
@Autowired
|
|
|
private SysMessageService sysMessageService;
|
|
@@ -156,42 +153,84 @@ public class TenantAssetsInfoServiceImpl extends ServiceImpl<TenantAssetsInfoDao
|
|
|
//当前余额
|
|
|
BigDecimal balance = assetsInfo.getBalance();
|
|
|
//当前余额 减 本次扣费 的剩余额度
|
|
|
- BigDecimal after = balance.subtract(coursePrice).setScale(2,RoundingMode.HALF_UP);
|
|
|
- //300
|
|
|
- BigDecimal threeHundred = new BigDecimal(300);
|
|
|
- //当前余额大于300 并且 本次扣除后剩余额度小于300 就发信息提醒
|
|
|
- if (balance.compareTo(threeHundred) >= 0 && after.compareTo(threeHundred) <0) {
|
|
|
- TenantInfo t = tenantInfoService.getById(course.getTenantId());
|
|
|
- //邮件
|
|
|
- if (StringUtils.isNotBlank(t.getEmail())) {
|
|
|
- //机构名称 300 余额
|
|
|
- Object[] emailMsg = {t.getName(), 300, after.toString()};
|
|
|
- Map<Integer, String> sendPar = new HashMap<>();
|
|
|
- sendPar.put(t.getUserId(), t.getEmail());
|
|
|
- log.info("platformSendToAll>>> 余额不足 receiveUserId {} email {} objs {} sendPar {}", t.getUserId(), t.getEmail(), emailMsg, sendPar);
|
|
|
- sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.EMAIL,
|
|
|
- EMAIL_TENANT_INSUFFICIENT_BALANCE,
|
|
|
- sendPar, null, 0, null,
|
|
|
- "SYSTEM", emailMsg);
|
|
|
- }
|
|
|
+ BigDecimal after = balance.subtract(coursePrice).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ //判断是否发送信息
|
|
|
+ sendMsg(course.getTenantId(), balance, after);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断是否发送信息
|
|
|
+ * <p>
|
|
|
+ * 1.判断扣费前余额大于300并在本次扣费后剩余额度小于300就发信息提醒
|
|
|
+ * <p>
|
|
|
+ * 2.当前扣费为负数后要发邮件和短信提醒
|
|
|
+ *
|
|
|
+ * @param tenantId 机构id
|
|
|
+ * @param balance 扣费前金额
|
|
|
+ * @param after 扣费后金额
|
|
|
+ */
|
|
|
+ private void sendMsg(Integer tenantId, BigDecimal balance, BigDecimal after) {
|
|
|
+ TenantInfo t = tenantInfoService.getById(tenantId);
|
|
|
+ //当前余额大于300 并且 本次扣除后剩余额度小于300
|
|
|
+ BigDecimal threeHundred = new BigDecimal(300);
|
|
|
+ if (balance.compareTo(threeHundred) >= 0 && after.compareTo(threeHundred) < 0) {
|
|
|
|
|
|
- //短信
|
|
|
- if (StringUtils.isNotBlank(t.getPhone())) {
|
|
|
- //机构名称
|
|
|
- Object[] phoneMsg = {t.getName()};
|
|
|
- Map<Integer, String> sendPar2 = new HashMap<>();
|
|
|
- sendPar2.put(t.getUserId(), t.getPhone());
|
|
|
- log.info("platformSendToAll>>> 余额不足 receiveUserId {} phone {} objs {} sendPar {}", t.getUserId(), t.getPhone(), phoneMsg, sendPar2);
|
|
|
- sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.AWSMS,
|
|
|
- SMS_TENANT_INSUFFICIENT_BALANCE,
|
|
|
- sendPar2, null, 0, null,
|
|
|
- "SYSTEM", phoneMsg);
|
|
|
- }
|
|
|
+ //邮件
|
|
|
+ if (StringUtils.isNotBlank(t.getEmail())) {
|
|
|
+ //机构名称 300 余额
|
|
|
+ Object[] emailMsg = {t.getName(), 300, after.toString()};
|
|
|
+ Map<Integer, String> sendPar = new HashMap<>();
|
|
|
+ sendPar.put(t.getUserId(), t.getEmail());
|
|
|
+ log.info("platformSendToAll>>> 余额不足 receiveUserId {} email {} objs {} sendPar {}", t.getUserId(), t.getEmail(), emailMsg, sendPar);
|
|
|
+ sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.EMAIL,
|
|
|
+ EMAIL_TENANT_INSUFFICIENT_BALANCE,
|
|
|
+ sendPar, null, 0, null,
|
|
|
+ "SYSTEM", emailMsg);
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ //短信
|
|
|
+ if (StringUtils.isNotBlank(t.getPhone())) {
|
|
|
+ //机构名称
|
|
|
+ Object[] phoneMsg = {t.getName()};
|
|
|
+ Map<Integer, String> sendPar2 = new HashMap<>();
|
|
|
+ sendPar2.put(t.getUserId(), t.getPhone());
|
|
|
+ log.info("platformSendToAll>>> 余额不足 receiveUserId {} phone {} objs {} sendPar {}", t.getUserId(), t.getPhone(), phoneMsg, sendPar2);
|
|
|
+ sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.AWSMS,
|
|
|
+ SMS_TENANT_INSUFFICIENT_BALANCE,
|
|
|
+ sendPar2, null, 0, null,
|
|
|
+ "SYSTEM", phoneMsg);
|
|
|
}
|
|
|
- });
|
|
|
+ }
|
|
|
|
|
|
+ //当前余额已经扣为负数
|
|
|
+ if (after.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
+ //邮件
|
|
|
+ if (StringUtils.isNotBlank(t.getEmail())) {
|
|
|
+ //机构名称 余额
|
|
|
+ Object[] emailMsg = {t.getName(), after.toString()};
|
|
|
+ Map<Integer, String> sendPar = new HashMap<>();
|
|
|
+ sendPar.put(t.getUserId(), t.getEmail());
|
|
|
+ log.info("platformSendToAll>>> 已欠费 receiveUserId {} email {} objs {} sendPar {}", t.getUserId(), t.getEmail(), emailMsg, sendPar);
|
|
|
+ sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.EMAIL,
|
|
|
+ EMAIL_TENANT_EXPIRE, sendPar, null, 0, null,
|
|
|
+ "SYSTEM", emailMsg);
|
|
|
+ }
|
|
|
+
|
|
|
+ //短信
|
|
|
+ if (StringUtils.isNotBlank(t.getPhone())) {
|
|
|
+ //机构名称
|
|
|
+ Object[] phoneMsg = {t.getName()};
|
|
|
+ Map<Integer, String> sendPar2 = new HashMap<>();
|
|
|
+ sendPar2.put(t.getUserId(), t.getPhone());
|
|
|
+ log.info("platformSendToAll>>> 已欠费 receiveUserId {} phone {} objs {} sendPar {}", t.getUserId(), t.getPhone(), phoneMsg, sendPar2);
|
|
|
+ sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.AWSMS,
|
|
|
+ SMS_TENANT_EXPIRE, sendPar2, null, 0, null,
|
|
|
+ "SYSTEM", phoneMsg);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|