You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

198 lines
7.8 KiB

  1. package com.simple.controller;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import org.apache.commons.lang3.StringUtils;
  5. import org.apache.log4j.Logger;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.web.bind.annotation.GetMapping;
  8. import org.springframework.web.bind.annotation.ModelAttribute;
  9. import org.springframework.web.bind.annotation.PostMapping;
  10. import org.springframework.web.bind.annotation.RequestBody;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import com.alibaba.fastjson.JSON;
  14. import com.alibaba.fastjson.JSONObject;
  15. import com.github.pagehelper.PageInfo;
  16. import com.simple.common.Result;
  17. import com.simple.common.ResultData;
  18. import com.simple.domain.dto.WxCuerBasicInfoDto;
  19. import com.simple.domain.po.WxCUser;
  20. import com.simple.domain.po.WxCUserBasicInfo;
  21. import com.simple.domain.po.WxCUserTags;
  22. import com.simple.domain.po.WxCoupon;
  23. import com.simple.domain.po.WxCouponOrder;
  24. import com.simple.domain.po.WxTags;
  25. import com.simple.service.WxCUserBasicInfoService;
  26. import com.simple.service.WxCUserService;
  27. import com.simple.service.WxCUserTagsService;
  28. import com.simple.service.WxCouponOrderService;
  29. import com.simple.service.WxCouponService;
  30. import com.simple.service.WxTagsService;
  31. import io.swagger.annotations.Api;
  32. import io.swagger.annotations.ApiImplicitParam;
  33. import io.swagger.annotations.ApiImplicitParams;
  34. import io.swagger.annotations.ApiOperation;
  35. @RestController
  36. @RequestMapping("wxCUserBasicInfo")
  37. @Api(description="会员管理相关接口")
  38. public class WxCUserBasicInfoController extends BaseController
  39. {
  40. @Autowired
  41. private WxCUserBasicInfoService wxCUserBasicInfoService;
  42. @Autowired
  43. private WxCUserTagsService wxCUserTagsService;
  44. @Autowired
  45. private WxTagsService wxTagsService;
  46. @Autowired
  47. private WxCUserService wxCUserService;
  48. @Autowired
  49. private WxCouponOrderService wxCouponOrderService;
  50. @Autowired
  51. private WxCouponService wxCouponService;
  52. private Logger logger = Logger.getLogger(WxCUserBasicInfoController.class);
  53. @ApiOperation("分页列表接口")
  54. @GetMapping("list")
  55. @ApiImplicitParams({
  56. @ApiImplicitParam(name="pageNum",value="页数",dataType="int", paramType = "query",required=true),
  57. @ApiImplicitParam(name="pageSize",value="每页条数",dataType="int", paramType = "query",required=true)})
  58. public ResultData list(@ModelAttribute WxCuerBasicInfoDto wxCUserBasicInfo,Integer pageNum, Integer pageSize) {
  59. if (null == wxCUserBasicInfo) wxCUserBasicInfo = new WxCuerBasicInfoDto();
  60. String tenantId = getTenantId();
  61. wxCUserBasicInfo.setTenantId(tenantId);
  62. PageInfo<WxCUserBasicInfo> page = wxCUserBasicInfoService.list(wxCUserBasicInfo, pageNum, pageSize);
  63. if(page.getSize()==0 && StringUtils.isNotBlank(wxCUserBasicInfo.getPhone())
  64. && wxCUserBasicInfo.getEndTime()==null && wxCUserBasicInfo.getStartTime()==null
  65. && StringUtils.isBlank(wxCUserBasicInfo.getName())
  66. ) {//当只有手机号查询并且查不到数据 ,新增
  67. WxCUser cUser = new WxCUser();
  68. cUser.setTenantId(tenantId);
  69. cUser.setPhone(wxCUserBasicInfo.getPhone());
  70. PageInfo<WxCUser> cUsers = wxCUserService.listAsPage(cUser, 1, 1);
  71. if(cUsers.getSize()>0) {
  72. createUserBasicInfo(cUsers.getList().get(0));
  73. page = wxCUserBasicInfoService.list(wxCUserBasicInfo, pageNum, pageSize);
  74. }
  75. }
  76. return new ResultData(page);
  77. }
  78. private void createUserBasicInfo(WxCUser wxCUser) {
  79. WxCUserBasicInfo wxCUserBasicInfo =new WxCUserBasicInfo();
  80. wxCUserBasicInfo.setCUserId(wxCUser.getId());
  81. wxCUserBasicInfo.setPhone(wxCUser.getPhone());
  82. wxCUserBasicInfo.setTenantId(wxCUser.getTenantId());
  83. wxCUserBasicInfo.setNickName(wxCUser.getNickName());
  84. wxCUserBasicInfoService.saveOrUpdate(wxCUserBasicInfo);
  85. }
  86. // @ApiOperation("新增接口")
  87. // @PostMapping("add")
  88. // public ResultData add(@RequestBody WxCUserBasicInfo wxCUserBasicInfo) {
  89. // //Assert.notNull(wxCUserBasicInfo.getName(), "角色名不能为空");
  90. // //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名");
  91. // wxCUserBasicInfoService.saveOrUpdate(wxCUserBasicInfo);
  92. // return new ResultData();
  93. // }
  94. @ApiOperation("根据id更新接口")
  95. @PostMapping("update")
  96. public ResultData update(@RequestBody WxCUserBasicInfo wxCUserBasicInfo) {
  97. WxCUserBasicInfo info = wxCUserBasicInfoService.getById(wxCUserBasicInfo.getId());
  98. wxCUserBasicInfo.setTenantId(getTenantId());
  99. if(StringUtils.isNotBlank(wxCUserBasicInfo.getTagIds())) {
  100. WxCUserTags record =new WxCUserTags();
  101. record.setUserId(info.getCUserId());
  102. record.setTenantId(getTenantId());
  103. PageInfo<WxCUserTags> page = wxCUserTagsService.listAsPage(record, 1, 1);
  104. if(page.getSize()>0) {
  105. WxCUserTags t = page.getList().get(0);
  106. record.setId(t.getId());
  107. }
  108. String tags = wxCUserBasicInfo.getTagIds();
  109. List<Long> tagIdList = new ArrayList<>();
  110. for(String t:tags.split(",")) {
  111. tagIdList.add(Long.valueOf(t));
  112. }
  113. record.setTags(JSON.toJSONString(tagIdList));
  114. wxCUserTagsService.saveOrUpdate(record);
  115. wxCUserBasicInfo.setTagId(record.getId());
  116. }
  117. wxCUserBasicInfoService.saveOrUpdate(wxCUserBasicInfo);
  118. return new ResultData();
  119. }
  120. @ApiOperation("根据id删除接口")
  121. @GetMapping("/del")
  122. @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true)
  123. public ResultData delete(Long id) {
  124. wxCUserBasicInfoService.deleteById(id);
  125. return new ResultData(Result.SUCCESS, "删除成功", null);
  126. }
  127. @ApiOperation("根据id查询接口")
  128. @GetMapping("/findById")
  129. @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true)
  130. public ResultData findById(Long id) {
  131. WxCUserBasicInfo info = wxCUserBasicInfoService.getById(id);
  132. if(info.getTagId()!=null) {
  133. WxCUserTags uTag = wxCUserTagsService.getById(info.getTagId());
  134. if(StringUtils.isNotBlank(uTag.getTags())) {
  135. List<Long> ids = JSONObject.parseArray(uTag.getTags(),Long.class);
  136. WxTags wxTags =new WxTags();
  137. wxTags.setIds(ids);
  138. PageInfo<WxTags> page = wxTagsService.listAsPage(wxTags, 1, 5000);
  139. String tagNames="";
  140. String tagIds="";
  141. List<Long> tagIdList = new ArrayList<>();
  142. for(WxTags wt:page.getList()) {
  143. tagNames+=wt.getName()+"/";
  144. tagIds+=wt.getId()+",";
  145. tagIdList.add(wt.getId());
  146. }
  147. if(StringUtils.isNotBlank(tagNames)) {
  148. info.setTagNames(tagNames.substring(0,tagNames.length()-1));
  149. }
  150. if(StringUtils.isNoneBlank(tagIds)) {
  151. info.setTagIds(tagIds.substring(0,tagIds.length()-1));
  152. }
  153. long count = wxCUserTagsService.findCountByTag(tagIdList);
  154. info.setCount(count);
  155. }
  156. }
  157. return new ResultData(Result.SUCCESS,"查询成功",info);
  158. }
  159. @ApiOperation("根据userId查询交易记录接口")
  160. @GetMapping("/findOrderCouponByUserId")
  161. @ApiImplicitParam(name="userId",value="userId",dataType="Long", paramType = "query",required=true)
  162. public ResultData findOrderCouponByUserId(Long userId,Integer pageNum, Integer pageSize) {
  163. WxCouponOrder corder = new WxCouponOrder();
  164. corder.setCUserId(userId);
  165. corder.setTenantId(getTenantId());
  166. PageInfo<WxCouponOrder> page = wxCouponOrderService.listAsPage(corder, pageNum, pageSize);
  167. if(page.getSize()>0) {
  168. List<WxCouponOrder> list = page.getList();
  169. for(WxCouponOrder c:list) {
  170. WxCoupon coupon = wxCouponService.getById(c.getCouponId());
  171. c.setCouponName(coupon.getTitle());
  172. c.setSalePrice(coupon.getPrice());
  173. }
  174. }
  175. return new ResultData(Result.SUCCESS,"查询成功",page);
  176. }
  177. }