UseIntegralHandler.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. package com.iamberry.wechat.handles.integral;
  2. import com.github.pagehelper.PageHelper;
  3. import com.iamberry.wechat.core.entity.PageBean;
  4. import com.iamberry.wechat.core.entity.ResultMsg;
  5. import com.iamberry.wechat.core.entity.WechatUtils;
  6. import com.iamberry.wechat.core.entity.coupon.CouponItem;
  7. import com.iamberry.wechat.core.entity.integral.RankRule;
  8. import com.iamberry.wechat.core.entity.integral.StayIntegral;
  9. import com.iamberry.wechat.core.entity.integral.UseIntegral;
  10. import com.iamberry.wechat.core.entity.member.Member;
  11. import com.iamberry.wechat.face.coupon.CouponItemService;
  12. import com.iamberry.wechat.face.integral.UseIntegralService;
  13. import com.iamberry.wechat.face.member.MemberService;
  14. import com.iamberry.wechat.face.order.AdminOrderService;
  15. import com.iamberry.wechat.tools.NameUtils;
  16. import com.iamberry.wechat.tools.ResultInfo;
  17. import org.apache.poi.ss.formula.functions.Rank;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Controller;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RequestParam;
  22. import org.springframework.web.bind.annotation.ResponseBody;
  23. import javax.servlet.http.HttpServletRequest;
  24. import javax.servlet.http.HttpSession;
  25. import java.lang.reflect.Array;
  26. import java.util.ArrayList;
  27. import java.util.HashMap;
  28. import java.util.List;
  29. import java.util.Map;
  30. /**
  31. * 会员积分使用 Controller
  32. */
  33. @Controller
  34. @RequestMapping("/wechat/userIntegral")
  35. public class UseIntegralHandler {
  36. @Autowired
  37. private UseIntegralService useIntegralService;
  38. @Autowired
  39. private MemberService memberService;
  40. @Autowired
  41. private AdminOrderService adminOrderService;
  42. @Autowired
  43. private CouponItemService couponItemService;
  44. /**
  45. * 获取等级积分
  46. * @param req
  47. * @return
  48. */
  49. @RequestMapping("/rankRule")
  50. @ResponseBody
  51. public ResultMsg rankRule(HttpServletRequest req){
  52. ResultMsg rm=new ResultMsg();
  53. Member m= WechatUtils.getUserBySession(req);
  54. String openid=m.getUserOpenid();
  55. List<RankRule> rankRuleList = useIntegralService.getRankRule();
  56. Map<String,Object> map=new HashMap<String, Object>();
  57. map.put("rankRuleList",rankRuleList);
  58. rm.setStatus(true);
  59. rm.setResultCode(ResultInfo.SUCCESSCODE);
  60. rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
  61. rm.setData(map);
  62. return rm;
  63. }
  64. /**
  65. * 收入记录 use_type=1
  66. * @param req
  67. * @param useType
  68. * @param pageSize
  69. * @param pageNO
  70. * @return
  71. */
  72. @RequestMapping("/listGainIntegralInfo")
  73. @ResponseBody
  74. public ResultMsg listGainIntegralInfo(HttpServletRequest req,
  75. @RequestParam(value="useType",defaultValue= "1", required=false)Integer useType,
  76. @RequestParam(value= "pageSize",defaultValue= "6" ,required=false) Integer pageSize,
  77. @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO){
  78. ResultMsg rm=new ResultMsg();
  79. Member m= WechatUtils.getUserBySession(req);
  80. String openid=m.getUserOpenid();
  81. if (m == null || openid == null) {
  82. rm.setMessage(ResultInfo.loginOutError);
  83. return rm;
  84. }
  85. Integer gainIntegralCount=useIntegralService.getGainIntegralCount(openid);
  86. if(gainIntegralCount != null && gainIntegralCount<0){
  87. rm.setStatus(false);
  88. rm.setResultCode(ResultInfo.ERRORCODE);
  89. rm.setMessage(NameUtils.getConfig("ERRORINFO"));
  90. return rm;
  91. }
  92. UseIntegral useIntegral=new UseIntegral();
  93. useIntegral.setUserOpenId(openid);
  94. useIntegral.setIntegralType(useType);
  95. useIntegral.getPage().setPageSize(pageSize);
  96. useIntegral.getPage().setPageNumber(pageNO);
  97. useIntegral.getPage().initRecordBegin();
  98. List<UseIntegral> listGainIntegralInfo=useIntegralService.listIntegralInfo(useIntegral);
  99. System.out.println(listGainIntegralInfo);
  100. Map<String,Object> map=new HashMap<String, Object>();
  101. map.put("listGainIntegralInfo",listGainIntegralInfo);
  102. map.put("gainIntegralCount",gainIntegralCount);
  103. rm.setStatus(true);
  104. rm.setResultCode(ResultInfo.SUCCESSCODE);
  105. rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
  106. rm.setData(map);
  107. return rm;
  108. }
  109. /**
  110. * 待入账记录 use_type=3
  111. * @param req
  112. * @param pageSize
  113. * @param pageNO
  114. * @return
  115. */
  116. @RequestMapping("/listStayIntegral")
  117. @ResponseBody
  118. public ResultMsg listStayIntegral(HttpServletRequest req,
  119. @RequestParam(value="useType",defaultValue= "3", required=false)Integer useType,
  120. @RequestParam(value= "pageSize",defaultValue= "6" ,required=false)Integer pageSize,
  121. @RequestParam(value = "pageNO", defaultValue = "1",required=false)Integer pageNO){
  122. ResultMsg rm=new ResultMsg();
  123. Member m= WechatUtils.getUserBySession(req);
  124. String openid=m.getUserOpenid();
  125. if (m == null || openid == null) {
  126. rm.setMessage(ResultInfo.loginOutError);
  127. return rm;
  128. }
  129. Integer stayIntegralCount=useIntegralService.getStayIntegralCount(openid);
  130. if(stayIntegralCount != null && stayIntegralCount<0){
  131. rm.setStatus(false);
  132. rm.setResultCode(ResultInfo.ERRORCODE);
  133. rm.setMessage(NameUtils.getConfig("ERRORINFO"));
  134. return rm;
  135. }
  136. UseIntegral useIntegral=new UseIntegral();
  137. useIntegral.setUserOpenId(openid);
  138. useIntegral.setIntegralType(useType);
  139. useIntegral.getPage().setPageSize(pageSize);
  140. useIntegral.getPage().setPageNumber(pageNO);
  141. useIntegral.getPage().initRecordBegin();
  142. List<UseIntegral> listStayIntegral=useIntegralService.listIntegralInfo(useIntegral);
  143. Map<String,Object> map=new HashMap<String, Object>();
  144. map.put("listStayIntegralInfo",listStayIntegral);
  145. map.put("stayIntegralCount",stayIntegralCount);
  146. rm.setStatus(true);
  147. rm.setResultCode(ResultInfo.SUCCESSCODE);
  148. rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
  149. rm.setData(map);
  150. return rm;
  151. }
  152. /**
  153. * 全部记录 use_type=null
  154. * @param req
  155. * @param useType
  156. * @param pageSize
  157. * @param pageNO
  158. * @return
  159. */
  160. @RequestMapping("/listAllIntegralInfo")
  161. @ResponseBody
  162. public ResultMsg listAllIntegralInfo(HttpServletRequest req,
  163. @RequestParam(value="useType",defaultValue= "", required=false)Integer useType,
  164. @RequestParam(value= "pageSize",defaultValue= "6" ,required=false)Integer pageSize,
  165. @RequestParam(value = "pageNO", defaultValue = "1",required=false)Integer pageNO){
  166. ResultMsg rm=new ResultMsg();
  167. Member m=WechatUtils.getUserBySession(req);
  168. String openid=m.getUserOpenid();
  169. if (m == null || openid == null) {
  170. rm.setMessage(ResultInfo.loginOutError);
  171. return rm;
  172. }
  173. Map<String,Object> map=new HashMap<String, Object>();
  174. UseIntegral useIntegral=new UseIntegral();
  175. useIntegral.setUserOpenId(openid);
  176. /**********判断useType=1 为收入记录**************/
  177. if(useType != null && useType==1){
  178. Integer gainIntegralCount=useIntegralService.getGainIntegralCount(openid);
  179. if(gainIntegralCount != null && gainIntegralCount<0){
  180. rm.setStatus(false);
  181. rm.setResultCode(ResultInfo.ERRORCODE);
  182. rm.setMessage(NameUtils.getConfig("ERRORINFO"));
  183. return rm;
  184. }
  185. useIntegral.getPage().setPageSize(pageSize);
  186. useIntegral.getPage().setPageNumber(pageNO);
  187. useIntegral.getPage().initRecordBegin();
  188. useIntegral.setIntegralType(useType);
  189. List<UseIntegral> listIntegralInfo=useIntegralService.listIntegralInfo(useIntegral);
  190. map.put("listIntegralInfo",listIntegralInfo);
  191. map.put("gainIntegralCount",gainIntegralCount);
  192. rm.setStatus(true);
  193. rm.setResultCode(ResultInfo.SUCCESSCODE);
  194. rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
  195. rm.setData(map);
  196. return rm;
  197. }
  198. /**********判断useType=3 为待入账记录**************/
  199. if(useType != null && useType==3){
  200. Integer stayIntegralCount=useIntegralService.getStayIntegralCount(openid);
  201. if(stayIntegralCount != null && stayIntegralCount<0){
  202. rm.setStatus(false);
  203. rm.setResultCode(ResultInfo.ERRORCODE);
  204. rm.setMessage(NameUtils.getConfig("ERRORINFO"));
  205. return rm;
  206. }
  207. useIntegral.getPage().setPageSize(pageSize);
  208. useIntegral.getPage().setPageNumber(pageNO);
  209. useIntegral.getPage().initRecordBegin();
  210. useIntegral.setIntegralType(useType);
  211. List<UseIntegral> listIntegralInfo=useIntegralService.listIntegralInfo(useIntegral);
  212. map.put("listIntegralInfo",listIntegralInfo);
  213. map.put("stayIntegralCount",stayIntegralCount);
  214. rm.setStatus(true);
  215. rm.setResultCode(ResultInfo.SUCCESSCODE);
  216. rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
  217. rm.setData(map);
  218. return rm;
  219. }
  220. /**********否则 为全部记录**************/
  221. Integer stayIntegralCount=useIntegralService.getStayIntegralCount(openid);
  222. Integer useIntegralCount=useIntegralService.getUseIntegralCount(openid);
  223. Integer gainIntegralCount=useIntegralService.getGainIntegralCount(openid);
  224. if(gainIntegralCount != null && gainIntegralCount<0){
  225. rm.setStatus(false);
  226. rm.setResultCode(ResultInfo.ERRORCODE);
  227. rm.setMessage(NameUtils.getConfig("ERRORINFO"));
  228. return rm;
  229. }
  230. if(stayIntegralCount != null && stayIntegralCount<0){
  231. rm.setStatus(false);
  232. rm.setResultCode(ResultInfo.ERRORCODE);
  233. rm.setMessage(NameUtils.getConfig("ERRORINFO"));
  234. return rm;
  235. }
  236. if(useIntegralCount != null && useIntegralCount<0){
  237. rm.setStatus(false);
  238. rm.setResultCode(ResultInfo.ERRORCODE);
  239. rm.setMessage(NameUtils.getConfig("ERRORINFO"));
  240. return rm;
  241. }
  242. useIntegral.getPage().setPageSize(pageSize);
  243. useIntegral.getPage().setPageNumber(pageNO);
  244. useIntegral.getPage().initRecordBegin();
  245. useIntegral.setIntegralType(null);
  246. List<UseIntegral> listIntegralInfo=useIntegralService.listIntegralInfo(useIntegral);
  247. map.put("listIntegralInfo",listIntegralInfo);
  248. map.put("useIntegralCount",useIntegralCount);
  249. map.put("gainIntegralCount",gainIntegralCount);
  250. map.put("stayIntegralCount",stayIntegralCount);
  251. rm.setStatus(true);
  252. rm.setResultCode(ResultInfo.SUCCESSCODE);
  253. rm.setMessage(NameUtils.getConfig("SUCCSSINFO"));
  254. rm.setData(map);
  255. return rm;
  256. }
  257. /**
  258. * 会员中心
  259. * @param req
  260. * @return
  261. */
  262. @RequestMapping("/getRankRule")
  263. @ResponseBody
  264. public ResultMsg getRankRule(HttpServletRequest req){
  265. ResultMsg rm=new ResultMsg();
  266. Map<String,Object> map=new HashMap<String, Object>();
  267. Member member=WechatUtils.getUserBySession(req);
  268. String openid=member.getUserOpenid();
  269. if (member == null || openid == null) {
  270. rm.setMessage(ResultInfo.loginOutError);
  271. return rm;
  272. }
  273. /*************会员等级***************/
  274. Member memberInfo=memberService.getMyMemberInfo(openid);
  275. if(memberInfo==null){
  276. rm.setStatus(false);
  277. rm.setResultCode(ResultInfo.ERRORCODE);
  278. rm.setMessage(NameUtils.getConfig("ERRORINFO"));
  279. rm.setData("");
  280. return rm;
  281. }
  282. Integer userIntegralCount=memberInfo.getUserIntegral();
  283. if(userIntegralCount != null && userIntegralCount<0){
  284. rm.setStatus(false);
  285. rm.setResultCode(ResultInfo.ERRORCODE);
  286. rm.setMessage(NameUtils.getConfig("ERRORINFO"));
  287. return rm;
  288. }
  289. List<RankRule> list=useIntegralService.getRankRule();
  290. if((list!=null&&list.size()<0)||list==null){
  291. rm.setStatus(false);
  292. rm.setResultCode(ResultInfo.ERRORCODE);
  293. rm.setMessage(NameUtils.getConfig("ERRORINFO"));
  294. rm.setData("");
  295. return rm;
  296. }
  297. List<RankRule> lists=new ArrayList<RankRule>();
  298. for(RankRule r:list){
  299. if(r.getRankRuleIntegral()>userIntegralCount){
  300. lists.add(r);
  301. }
  302. }
  303. /**************未发货数量*****************/
  304. Integer notSendCount=adminOrderService.getNotSendCount(openid);
  305. map.put("listRankRule",lists);
  306. map.put("notSendCount",notSendCount);
  307. map.put("memberInfo",memberInfo);
  308. rm.setStatus(true);
  309. rm.setResultCode(ResultInfo.SUCCESSCODE);
  310. rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
  311. rm.setData(map);
  312. return rm;
  313. }
  314. }