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.
 
 
 
 
 

156 lines
6.0 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.WxTags;
  23. import com.simple.service.WxCUserBasicInfoService;
  24. import com.simple.service.WxCUserService;
  25. import com.simple.service.WxCUserTagsService;
  26. import com.simple.service.WxTagsService;
  27. import io.swagger.annotations.Api;
  28. import io.swagger.annotations.ApiImplicitParam;
  29. import io.swagger.annotations.ApiImplicitParams;
  30. import io.swagger.annotations.ApiOperation;
  31. @RestController
  32. @RequestMapping("wxCUserBasicInfo")
  33. @Api(description="会员管理相关接口")
  34. public class WxCUserBasicInfoController extends BaseController
  35. {
  36. @Autowired
  37. private WxCUserBasicInfoService wxCUserBasicInfoService;
  38. @Autowired
  39. private WxCUserTagsService wxCUserTagsService;
  40. @Autowired
  41. private WxTagsService wxTagsService;
  42. @Autowired
  43. private WxCUserService wxCUserService;
  44. private Logger logger = Logger.getLogger(WxCUserBasicInfoController.class);
  45. @ApiOperation("分页列表接口")
  46. @GetMapping("list")
  47. @ApiImplicitParams({
  48. @ApiImplicitParam(name="pageNum",value="页数",dataType="int", paramType = "query",required=true),
  49. @ApiImplicitParam(name="pageSize",value="每页条数",dataType="int", paramType = "query",required=true)})
  50. public ResultData list(@ModelAttribute WxCuerBasicInfoDto wxCUserBasicInfo,Integer pageNum, Integer pageSize) {
  51. if (null == wxCUserBasicInfo) wxCUserBasicInfo = new WxCuerBasicInfoDto();
  52. String tenantId = getTenantId();
  53. wxCUserBasicInfo.setTenantId(tenantId);
  54. PageInfo<WxCUserBasicInfo> page = wxCUserBasicInfoService.list(wxCUserBasicInfo, pageNum, pageSize);
  55. if(page.getSize()==0 && StringUtils.isNotBlank(wxCUserBasicInfo.getPhone())
  56. && wxCUserBasicInfo.getEndTime()==null && wxCUserBasicInfo.getStartTime()==null
  57. && StringUtils.isBlank(wxCUserBasicInfo.getName())
  58. ) {//当只有手机号查询并且查不到数据 ,新增
  59. WxCUser cUser = new WxCUser();
  60. cUser.setTenantId(tenantId);
  61. cUser.setPhone(wxCUserBasicInfo.getPhone());
  62. PageInfo<WxCUser> cUsers = wxCUserService.listAsPage(cUser, 1, 1);
  63. if(cUsers.getSize()>0) {
  64. createUserBasicInfo(cUsers.getList().get(0));
  65. page = wxCUserBasicInfoService.list(wxCUserBasicInfo, pageNum, pageSize);
  66. }
  67. }
  68. return new ResultData(page);
  69. }
  70. private void createUserBasicInfo(WxCUser wxCUser) {
  71. WxCUserBasicInfo wxCUserBasicInfo =new WxCUserBasicInfo();
  72. wxCUserBasicInfo.setCUserId(wxCUser.getId());
  73. wxCUserBasicInfo.setPhone(wxCUser.getPhone());
  74. wxCUserBasicInfo.setTenantId(wxCUser.getTenantId());
  75. wxCUserBasicInfoService.saveOrUpdate(wxCUserBasicInfo);
  76. }
  77. // @ApiOperation("新增接口")
  78. // @PostMapping("add")
  79. // public ResultData add(@RequestBody WxCUserBasicInfo wxCUserBasicInfo) {
  80. // //Assert.notNull(wxCUserBasicInfo.getName(), "角色名不能为空");
  81. // //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名");
  82. // wxCUserBasicInfoService.saveOrUpdate(wxCUserBasicInfo);
  83. // return new ResultData();
  84. // }
  85. @ApiOperation("根据id更新接口")
  86. @PostMapping("update")
  87. public ResultData update(@RequestBody WxCUserBasicInfo wxCUserBasicInfo) {
  88. wxCUserBasicInfo.setTenantId(getTenantId());
  89. if(StringUtils.isNotBlank(wxCUserBasicInfo.getTags())) {
  90. WxCUserTags record =new WxCUserTags();
  91. record.setUserId(wxCUserBasicInfo.getCUserId());
  92. record.setTenantId(getTenantId());
  93. PageInfo<WxCUserTags> page = wxCUserTagsService.listAsPage(record, 1, 1);
  94. if(page.getSize()>0) {
  95. WxCUserTags t = page.getList().get(0);
  96. record.setId(t.getId());
  97. }
  98. String tags = wxCUserBasicInfo.getTags();
  99. List<Long> tagIdList = new ArrayList<>();
  100. for(String t:tags.split(",")) {
  101. tagIdList.add(Long.valueOf(t));
  102. }
  103. record.setTags(JSON.toJSONString(tagIdList));
  104. wxCUserTagsService.saveOrUpdate(record);
  105. wxCUserBasicInfo.setTagId(record.getId());
  106. }
  107. wxCUserBasicInfoService.saveOrUpdate(wxCUserBasicInfo);
  108. return new ResultData();
  109. }
  110. @ApiOperation("根据id删除接口")
  111. @GetMapping("/del")
  112. @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true)
  113. public ResultData delete(Long id) {
  114. wxCUserBasicInfoService.deleteById(id);
  115. return new ResultData(Result.SUCCESS, "删除成功", null);
  116. }
  117. @ApiOperation("根据id查询接口")
  118. @GetMapping("/findById")
  119. @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true)
  120. public ResultData findById(Long id) {
  121. WxCUserBasicInfo info = wxCUserBasicInfoService.getById(id);
  122. if(info.getTagId()!=null) {
  123. WxCUserTags uTag = wxCUserTagsService.getById(id);
  124. if(StringUtils.isNotBlank(uTag.getTags())) {
  125. List<Long> ids = JSONObject.parseArray(uTag.getTags(),Long.class);
  126. WxTags wxTags =new WxTags();
  127. wxTags.setIds(ids);
  128. PageInfo<WxTags> page = wxTagsService.listAsPage(wxTags, 1, 5000);
  129. if(page.getSize()>0) {
  130. info.setTagList(page.getList());
  131. }
  132. }
  133. }
  134. return new ResultData(Result.SUCCESS,"查询成功",info);
  135. }
  136. }