package com.caimei.modules.coupon.service; import com.caimei.modules.coupon.dao.CmCouponClubDao; import com.caimei.modules.coupon.entity.CmCoupon; import com.caimei.modules.coupon.entity.CmCouponClub; import com.caimei.modules.coupon.entity.CmCouponRedemptionCode; import com.thinkgem.jeesite.common.persistence.Page; import com.thinkgem.jeesite.common.service.CrudService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 优惠券管理Service * * @author plf * @version 2021-08-10 */ @Service @Transactional(readOnly = true) public class CmCouponClubService extends CrudService { @Autowired private CmCouponClubDao cmCouponClubDao; public CmCouponClub get(String id) { return super.get(id); } public List findList(CmCouponClub cmCouponClub) { return super.findList(cmCouponClub); } public Page findPage(Page page, CmCouponClub cmCouponClub) { return super.findPage(page, cmCouponClub); } @Transactional(readOnly = false) public void save(CmCouponClub cmCouponClub) { super.save(cmCouponClub); } public Page receivingUserList(Page cmCouponClubPage, CmCouponClub cmCouponClub) { cmCouponClub.setPage(cmCouponClubPage); List couponClubList = cmCouponClubDao.receivingUserList(cmCouponClub); cmCouponClubPage.setList(couponClubList); return cmCouponClubPage; } public Page findCouponDetails(Page couponClubPage, CmCouponClub cmCouponClub) { cmCouponClub.setPage(couponClubPage); List couponList = cmCouponClubDao.findClubCoupon(cmCouponClub); if (couponList != null && couponList.size() > 0) { Date date = new Date(); couponList.forEach(couponClub -> { if ("2".equals(couponClub.getCouponStatus())) { if (date.compareTo(couponClub.getStartDate()) < 0) { couponClub.setCouponStatus("0"); } else if (date.compareTo(couponClub.getEndDate()) > 0) { couponClub.setCouponStatus("3"); } else { couponClub.setCouponStatus("1"); } } }); } couponClubPage.setList(couponList); return couponClubPage; } @Transactional(readOnly = false) public Map redeemCoupons(CmCouponRedemptionCode redemptionCode) { Map map = new HashMap<>(); CmCouponRedemptionCode cmCouponRedemptionCode = cmCouponClubDao.findCouponRedemptionCode(redemptionCode.getRedemptionCode()); if (cmCouponRedemptionCode == null) { map.put("code", -1); map.put("msg", "请输入正确的兑换码"); return map; } if ("2".equals(cmCouponRedemptionCode.getStatus())) { map.put("code", -1); map.put("msg", "兑换码已使用,请更换兑换码进行兑换"); return map; } CmCoupon coupon = cmCouponClubDao.getCoupons(redemptionCode.getCouponId()); Date date = new Date(); if (coupon == null || date.compareTo(coupon.getStartDate()) < 0 || date.compareTo(coupon.getEndDate()) > 0) { map.put("code", -1); map.put("msg", "兑换的优惠券已失效"); return map; } CmCouponClub couponClub = new CmCouponClub(); couponClub.setCouponId(redemptionCode.getCouponId()); couponClub.setUserId(redemptionCode.getUserId()); couponClub.setSource("4"); couponClub.setStatus("1"); couponClub.setCreateDate(new Date()); couponClub.setDelFlag("0"); cmCouponClubDao.insertCouponClub(couponClub); cmCouponClubDao.updateRedemptionCode(cmCouponRedemptionCode.getId(), couponClub.getId()); map.put("code", 0); map.put("msg", "优惠券兑换成功"); return map; } }