UseIntegralServiceImpl.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package com.iamberry.wechat.service.integral;
  2. import com.iamberry.wechat.core.entity.PageBean;
  3. import com.iamberry.wechat.core.entity.ResultMsg;
  4. import com.iamberry.wechat.core.entity.integral.*;
  5. import com.iamberry.wechat.core.entity.member.Member;
  6. import com.iamberry.wechat.face.integral.UseIntegralService;
  7. import com.iamberry.wechat.service.mapper.MemberMapper;
  8. import com.iamberry.wechat.service.mapper.UseIntegralMapper;
  9. import com.iamberry.wechat.tools.NameUtils;
  10. import com.iamberry.wechat.tools.ResultInfo;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import java.beans.Transient;
  14. import java.util.Date;
  15. import java.util.List;
  16. @Service
  17. public class UseIntegralServiceImpl implements UseIntegralService {
  18. @Autowired
  19. private UseIntegralMapper useIntegralMapper;
  20. @Autowired
  21. private MemberMapper memberMapper;
  22. /**
  23. * 获取会员信息.会员等级名称
  24. * @param openId
  25. * @return
  26. */
  27. @Override
  28. public MemberIntegral getMemberInfoAndRankName(String openId) {
  29. return useIntegralMapper.getMemberInfoAndRankName(openId);
  30. }
  31. /**
  32. * 获得的总积分数
  33. * @param userOpenId
  34. * @return
  35. */
  36. @Override
  37. public Integer getGainIntegralCount(String userOpenId) {
  38. return useIntegralMapper.getGainIntegralCount(userOpenId);
  39. }
  40. /**
  41. * 使用的总积分数
  42. * @param openid
  43. * @return
  44. */
  45. @Override
  46. public Integer getUseIntegralCount(String openid) {
  47. return useIntegralMapper.getUseIntegralCount(openid);
  48. }
  49. /**
  50. * 待入账的总积分数
  51. * @param userOpenId
  52. * @return
  53. */
  54. @Override
  55. public Integer getStayIntegralCount(String userOpenId) {
  56. return useIntegralMapper.getStayIntegralCount(userOpenId);
  57. }
  58. /**
  59. * 全部积分记录
  60. * @param useIntegral
  61. * @return
  62. */
  63. @Override
  64. public List<UseIntegral> listIntegralInfo(UseIntegral useIntegral) {
  65. return useIntegralMapper.listIntegralInfo(useIntegral);
  66. }
  67. @Override
  68. public List<IntegralConfig> listIntegralConfig(IntegralConfig integralConfig) {
  69. return useIntegralMapper.listIntegralConfig(integralConfig);
  70. }
  71. /**
  72. * 查询会员等级信息
  73. * @return
  74. */
  75. @Override
  76. public List<RankRule> getRankRule() {
  77. return useIntegralMapper.getRankRule();
  78. }
  79. /**
  80. * 查询待入账积分的集合
  81. * @return
  82. */
  83. @Override
  84. public List<StayIntegral> listStayIntegral(StayIntegral stayIntegral){
  85. return useIntegralMapper.listStayIntegral(stayIntegral);
  86. }
  87. @Override
  88. public List<UseIntegral> listUseIntegral(UseIntegral useIntegral) {
  89. return useIntegralMapper.listUseIntegral(useIntegral);
  90. }
  91. @Override
  92. @Transient
  93. public boolean updateIntegralStayToAlready() {
  94. StayIntegral stayIntegral = new StayIntegral();
  95. stayIntegral.setStayStatus(1);
  96. stayIntegral.setStayRecordedTime(new Date());
  97. /*获取所有的待入账积分*/
  98. List<StayIntegral> stayIntegralList = useIntegralMapper.listStayIntegral(stayIntegral);
  99. for(StayIntegral si : stayIntegralList ){
  100. /*增加入账积分,累计积分,减去待入账积分*/
  101. Member member = memberMapper.getMemberByUserOpenId(si.getUserOpenId());
  102. Member mem = new Member();
  103. mem.setUserOpenid(si.getUserOpenId());
  104. mem.setUserSurplusIntegral(member.getUserSurplusIntegral() + si.getStayNumber());
  105. mem.setUserIntegral(member.getUserIntegral() + si.getStayNumber());
  106. mem.setUserStayIntegral(member.getUserStayIntegral() - si.getStayNumber());
  107. Integer flag = memberMapper.updateMemberByUserId(mem);
  108. /*添加入账日志*/
  109. UseIntegral useIntegral = new UseIntegral();
  110. useIntegral.setUserOpenId(si.getUserOpenId());
  111. useIntegral.setIntegralNumber(si.getStayNumber());
  112. useIntegral.setStayId(si.getStayId());
  113. useIntegral.setIntegralBeforeNumber(member.getUserSurplusIntegral()); //变动前
  114. useIntegral.setIntegralEndNumber(mem.getUserSurplusIntegral()); //变动后
  115. useIntegral.setIntegralType(1); //入账
  116. useIntegral.setConfigId(si.getConfigId());
  117. useIntegral.setIntegralRemark("由待入账变更为已入账");
  118. flag = useIntegralMapper.addUseIntegral(useIntegral);
  119. if (flag < 1) {
  120. throw new RuntimeException("添加入账日志失败");
  121. }
  122. /*删除日志*/
  123. UseIntegral ui = new UseIntegral();
  124. ui.setUserOpenId(si.getUserOpenId());
  125. ui.setStayId(si.getStayId());
  126. ui.setIntegralType(3);
  127. flag = useIntegralMapper.delUseIntegral(ui);
  128. if (flag < 1) {
  129. throw new RuntimeException("删除待入账日志失败");
  130. }
  131. /*再将待入账信息改为已入账状态*/
  132. StayIntegral stayInte = new StayIntegral();
  133. stayInte.setStayId(si.getStayId());
  134. stayInte.setStayStatus(2);
  135. flag = useIntegralMapper.updateStayIntegral(stayInte);
  136. if (flag < 1) {
  137. throw new RuntimeException("修改待入账状态失败");
  138. }
  139. }
  140. /*增加入账记录*/
  141. return true;
  142. }
  143. }