AssoPersonVipService.java 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package com.example.xiaoshiweixinback.service;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.example.xiaoshiweixinback.business.utils.DateUtils;
  5. import com.example.xiaoshiweixinback.domain.AssoPersonVip;
  6. import com.example.xiaoshiweixinback.domain.Vip;
  7. import com.example.xiaoshiweixinback.mapper.AssoPersonVipMapper;
  8. import org.springframework.stereotype.Service;
  9. import java.util.Date;
  10. /**
  11. * @author admin
  12. * @description 针对表【asso_person_vip(人员会员管理表)】的数据库操作Service实现
  13. * @createDate 2024-03-29 15:32:20
  14. */
  15. @Service
  16. public class AssoPersonVipService extends ServiceImpl<AssoPersonVipMapper, AssoPersonVip> {
  17. public AssoPersonVip getAsso(String personUuid,Vip vip) {
  18. AssoPersonVip assoPersonVip = new AssoPersonVip();
  19. LambdaQueryWrapper<AssoPersonVip> queryWrapper = new LambdaQueryWrapper<>();
  20. queryWrapper.eq(AssoPersonVip::getPersonUuid, personUuid)
  21. .eq(AssoPersonVip::getVipType, vip.getVipType())
  22. .orderByDesc(AssoPersonVip::getExpiryTime);
  23. assoPersonVip = this.getOne(queryWrapper, false);
  24. if (assoPersonVip != null) {
  25. this.updateAssoPersonVip(assoPersonVip,personUuid,vip);
  26. }
  27. else {
  28. assoPersonVip = this.addAssoPersonVip(personUuid, vip);}
  29. return assoPersonVip;
  30. }
  31. public AssoPersonVip addAssoPersonVip(String personUuid, Vip vip) {
  32. //判断是否被邀请过
  33. Date date = new Date();
  34. AssoPersonVip assoPersonVip = new AssoPersonVip();
  35. assoPersonVip.setCreateTime(date);
  36. Integer lastTime = vip.getLastTime();
  37. Date expiryDate = DateUtils.getPlusMonthDate(date, lastTime);
  38. assoPersonVip.setExpiryTime(expiryDate);
  39. assoPersonVip.setVipUuid(vip.getVipUuid());
  40. assoPersonVip.setPersonUuid(personUuid);
  41. assoPersonVip.setVipType(vip.getVipType());
  42. assoPersonVip.insert();
  43. return assoPersonVip;
  44. }
  45. public AssoPersonVip updateAssoPersonVip(AssoPersonVip assoPersonVip, String personUuid, Vip vip) {
  46. Date date = new Date();
  47. Date orgExpiry = assoPersonVip.getExpiryTime();
  48. Integer lastTime = vip.getLastTime();
  49. Date expiryDate = null;
  50. if (orgExpiry.compareTo(date) > 0) {
  51. expiryDate = DateUtils.getPlusMonthDate(orgExpiry, lastTime);
  52. } else {
  53. expiryDate = DateUtils.getPlusMonthDate(date, lastTime);
  54. }
  55. assoPersonVip.setExpiryTime(expiryDate);
  56. assoPersonVip.setVipUuid(vip.getVipUuid());
  57. assoPersonVip.setVipType(vip.getVipType());
  58. assoPersonVip.setPersonUuid(personUuid);
  59. assoPersonVip.updateById();
  60. return assoPersonVip;
  61. }
  62. /**
  63. *
  64. * @param personUuid
  65. * @param dateType 0天 1月 2年
  66. * @param lastTime
  67. * @return
  68. */
  69. public AssoPersonVip addAssoPersonVipByTime(String personUuid,Integer dateType,Integer lastTime) {
  70. Date date = new Date();
  71. AssoPersonVip assoPersonVip = new AssoPersonVip();
  72. assoPersonVip.setCreateTime(date);
  73. Date expiryDate = DateUtils.getPlusDayDate(date, lastTime);
  74. assoPersonVip.setExpiryTime(expiryDate);
  75. assoPersonVip.setPersonUuid(personUuid);
  76. assoPersonVip.setVipType(1);
  77. assoPersonVip.insert();
  78. return assoPersonVip;
  79. }
  80. }