package com.yeshi.fanli.service.impl.msg;
|
|
import java.math.BigDecimal;
|
import java.util.Date;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Service;
|
|
import com.google.gson.Gson;
|
import com.yeshi.fanli.dto.msg.MsgOtherCouponActivateDTO;
|
import com.yeshi.fanli.dto.msg.MsgOtherCouponContentDTO;
|
import com.yeshi.fanli.dto.msg.MsgOtherExchangeContentDTO;
|
import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO;
|
import com.yeshi.fanli.dto.msg.MsgOtherTaoLiJinContentDTO;
|
import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail;
|
import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail.MsgTypeOtherTypeEnum;
|
import com.yeshi.fanli.entity.bus.user.UserInfo;
|
import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
|
import com.yeshi.fanli.exception.msg.MsgOtherDetailException;
|
import com.yeshi.fanli.service.inter.msg.MsgOtherDetailService;
|
import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
|
import com.yeshi.fanli.util.TimeUtil;
|
import com.yeshi.fanli.util.factory.msg.MsgOtherCouponContentDTOFactory;
|
import com.yeshi.fanli.util.factory.msg.MsgOtherDetailFactory;
|
|
@Service
|
public class UserOtherMsgNotificationServiceImpl implements UserOtherMsgNotificationService {
|
|
@Resource
|
private MsgOtherDetailService msgOtherDetailService;
|
|
private Integer getLeftDay(UserSystemCoupon coupon) {
|
if (coupon != null && coupon.getEndTime() != null) {
|
int cha = TimeUtil.getDayDifferenceCount(new Date(), coupon.getEndTime());
|
if (cha < 0)
|
return 0;
|
else
|
return cha + 1;
|
} else
|
return null;
|
}
|
|
@Override
|
public void welfareCouponGet(UserSystemCoupon coupon) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponGet(getLeftDay(coupon),
|
coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "至少成功邀请1个队员后可激活"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void welfareCouponActive(UserSystemCoupon coupon, UserInfo worker) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponActive(getLeftDay(coupon),
|
"成功邀请队员:" + worker.getNickName(), coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "可在首页-免单商品-选择商品-使用"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void welfareCouponUsing(UserSystemCoupon coupon, String orderId, BigDecimal money) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponUsing(orderId, money,
|
coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "实付款-返利=0元购(免单)"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void welfareCouponUsed(UserSystemCoupon coupon, String orderId) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponUsed(orderId,
|
"实付款-返利=0元购(免单)", coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "参与其他活动可获得更多免单券"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void welfareCouponWillOutOfDate(UserSystemCoupon coupon) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory
|
.createWelfareCouponWillOutOfDate(getLeftDay(coupon), coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "至少成功邀请1个队员后可激活"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void welfareCouponAlreadyOutOfDate(UserSystemCoupon coupon) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory
|
.createWelfareCouponAlreadyOutOfDate(coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
|
try {
|
MsgOtherDetail detail = MsgOtherDetailFactory.createCouponMsg(coupon.getUid(), coupon.getId(), dto,
|
MsgTypeOtherTypeEnum.couponWelfareMianDan, "参与其他活动可获得更多免单券");
|
detail.setCreateTime(coupon.getEndTime());
|
msgOtherDetailService.addMsgOtherDetail(detail);
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void welfareCouponDrawBack(UserSystemCoupon coupon, String orderId) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponDrawBack(getLeftDay(coupon),
|
orderId, coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "退回后依然可在有效期内使用"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void freeSheetCouponGet(UserSystemCoupon coupon) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createCouponGet(getLeftDay(coupon),
|
coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponMianDan, "首页-免单-选择商品-使用"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void freeSheetCouponUsing(UserSystemCoupon coupon, String orderId, BigDecimal money) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createCouponUsing(orderId, money,
|
coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponMianDan, "实付款-返利=0元购(免单)"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void freeSheetCouponUsed(UserSystemCoupon coupon, String orderId) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponUsed(orderId,
|
"实付款-返利=0元购(免单)", coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponMianDan, "参与其他活动可获得更多免单券"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void freeSheetCouponWillOutOfDate(UserSystemCoupon coupon) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory
|
.createWelfareCouponWillOutOfDate(getLeftDay(coupon), coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponMianDan, "至少成功邀请1个队员后可激活"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void freeSheetCouponAlreadyOutOfDate(UserSystemCoupon coupon) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory
|
.createWelfareCouponAlreadyOutOfDate(coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
|
try {
|
MsgOtherDetail detail = MsgOtherDetailFactory.createCouponMsg(coupon.getUid(), coupon.getId(), dto,
|
MsgTypeOtherTypeEnum.couponMianDan, "参与其他活动可获得更多免单券");
|
detail.setCreateTime(coupon.getEndTime());
|
|
msgOtherDetailService.addMsgOtherDetail(detail);
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void freeSheetCouponDrawBack(UserSystemCoupon coupon, String orderId) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponDrawBack(getLeftDay(coupon),
|
orderId, coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponMianDan, "退回后依然可在有效期内使用"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void rewardCouponGet(UserSystemCoupon coupon, int percent) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createRewardCouponGet(getLeftDay(coupon),
|
coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponReward, "返利订单已到账再返" + percent + "%"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void rewardCouponUsed(UserSystemCoupon coupon, BigDecimal oldFanLiMoney, BigDecimal rewardMoney,
|
String orderId) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createRewardCouponUsed(oldFanLiMoney,
|
rewardMoney, orderId);
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponReward, "完成金币任务,兑换更多奖励券"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void rewardCouponWillOutOfDate(UserSystemCoupon coupon, int percent) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createRewardCouponWillOutOfDate(
|
getLeftDay(coupon), coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, MsgTypeOtherTypeEnum.couponReward, "返利订单已到账再返" + percent + "%"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void rewardCouponAlreadyOutOfDate(UserSystemCoupon coupon) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory
|
.createRewardCouponAlreadyOutOfDate(coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
|
try {
|
MsgOtherDetail detail = MsgOtherDetailFactory.createCouponMsg(coupon.getUid(), coupon.getId(), dto,
|
MsgTypeOtherTypeEnum.couponReward, "完成金币任务,兑换更多奖励券");
|
detail.setCreateTime(coupon.getEndTime());
|
msgOtherDetailService.addMsgOtherDetail(detail);
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
|
@Override
|
public void couponUsingFreeSheet(UserSystemCoupon coupon, String orderId, BigDecimal money, MsgTypeOtherTypeEnum type) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createCouponUsing(orderId, money,
|
coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, type, "实付款-返利=0元购(免单)"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void couponUsedFreeSheet(UserSystemCoupon coupon, String orderId, MsgTypeOtherTypeEnum type) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponUsed(orderId,
|
"实付款-返利=0元购(免单)", coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, type, "参与其他活动可获得更多免单券"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void couponDrawBack(UserSystemCoupon coupon, String orderId, MsgTypeOtherTypeEnum type) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponDrawBack(getLeftDay(coupon),
|
orderId, coupon.getStartTime(), coupon.getEndTime());
|
try {
|
msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
|
coupon.getId(), dto, type, "退回后依然可在有效期内使用"));
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
@Override
|
public void outOfDate(UserSystemCoupon coupon, MsgTypeOtherTypeEnum type) {
|
if (coupon == null || coupon.getUid() == null)
|
return;
|
MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory
|
.createRewardCouponAlreadyOutOfDate(coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
|
try {
|
MsgOtherDetail detail = MsgOtherDetailFactory.createCouponMsg(coupon.getUid(), coupon.getId(), dto,
|
type, "参与活动可获取更多奖励券");
|
detail.setCreateTime(coupon.getEndTime());
|
msgOtherDetailService.addMsgOtherDetail(detail);
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
@Override
|
public void giveCouponActivateMsg(Long uid, String beiZhu, MsgOtherCouponActivateDTO content) {
|
try {
|
MsgOtherDetail detail = new MsgOtherDetail();
|
detail.setBeiZhu(beiZhu);
|
detail.setCreateTime(new Date());
|
detail.setRead(false);
|
detail.setUser(new UserInfo(uid));
|
detail.setContent(new Gson().toJson(content));
|
detail.setType(MsgTypeOtherTypeEnum.couponActivate);
|
msgOtherDetailService.addMsgOtherDetail(detail);
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
@Override
|
public void taoLiJinMsg(Long uid, String beiZhu, MsgOtherTaoLiJinContentDTO content) {
|
try {
|
MsgOtherDetail detail = new MsgOtherDetail();
|
detail.setBeiZhu(beiZhu);
|
detail.setCreateTime(new Date());
|
detail.setRead(false);
|
detail.setUser(new UserInfo(uid));
|
detail.setContent(new Gson().toJson(content));
|
detail.setType(MsgTypeOtherTypeEnum.taoLiJin);
|
msgOtherDetailService.addMsgOtherDetail(detail);
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
@Override
|
public void tokenGiveMsg(Long uid, String beiZhu, MsgOtherGiveContentDTO content) {
|
try {
|
MsgOtherDetail detail = new MsgOtherDetail();
|
detail.setBeiZhu(beiZhu);
|
detail.setCreateTime(new Date());
|
detail.setRead(false);
|
detail.setUser(new UserInfo(uid));
|
detail.setContent(new Gson().toJson(content));
|
detail.setType(MsgTypeOtherTypeEnum.give);
|
msgOtherDetailService.addMsgOtherDetail(detail);
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
|
@Override
|
public void exchangeMsg(Long uid, String beiZhu, MsgOtherExchangeContentDTO content) {
|
try {
|
MsgOtherDetail detail = new MsgOtherDetail();
|
detail.setBeiZhu(beiZhu);
|
detail.setCreateTime(new Date());
|
detail.setRead(false);
|
detail.setUser(new UserInfo(uid));
|
detail.setContent(new Gson().toJson(content));
|
detail.setType(MsgTypeOtherTypeEnum.exchange);
|
msgOtherDetailService.addMsgOtherDetail(detail);
|
} catch (MsgOtherDetailException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|