TbAppUserController.java 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. package com.ruoyi.web.controller.api;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Arrays;
  6. import java.util.concurrent.atomic.AtomicInteger;
  7. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  8. import com.ruoyi.app.domain.TbAppUser;
  9. import com.ruoyi.app.domain.TbFamilyMember;
  10. import com.ruoyi.app.domain.vo.AppMemberVo;
  11. import com.ruoyi.app.service.ITbAppUserService;
  12. import com.ruoyi.app.service.ITbFamilyMemberService;
  13. import com.ruoyi.common.utils.StringUtils;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import lombok.RequiredArgsConstructor;
  17. import org.springframework.security.access.prepost.PreAuthorize;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.web.bind.annotation.GetMapping;
  20. import org.springframework.web.bind.annotation.PostMapping;
  21. import org.springframework.web.bind.annotation.PutMapping;
  22. import org.springframework.web.bind.annotation.DeleteMapping;
  23. import org.springframework.web.bind.annotation.PathVariable;
  24. import org.springframework.web.bind.annotation.RequestBody;
  25. import org.springframework.web.bind.annotation.RequestMapping;
  26. import org.springframework.web.bind.annotation.RestController;
  27. import com.ruoyi.common.annotation.Log;
  28. import com.ruoyi.common.core.controller.BaseController;
  29. import com.ruoyi.common.core.domain.AjaxResult;
  30. import com.ruoyi.common.enums.BusinessType;
  31. import com.ruoyi.common.utils.poi.ExcelUtil;
  32. import com.ruoyi.common.core.page.TableDataInfo;
  33. /**
  34. * 会员Controller
  35. *
  36. * @author Alex
  37. * @date 2020-09-24
  38. */
  39. @Api(value = "个人会员管理", tags = "个人会员管理")
  40. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  41. @RestController
  42. @RequestMapping("/system/appUser" )
  43. public class TbAppUserController extends BaseController {
  44. private final ITbAppUserService iTbAppUserService;
  45. private final ITbFamilyMemberService memberService;
  46. /**
  47. * 查询会员列表
  48. */
  49. @ApiOperation("查询会员+家族成员列表")
  50. @PreAuthorize("@ss.hasPermi('system:appUser:list')")
  51. @GetMapping("/memberList")
  52. public TableDataInfo memberList(AppMemberVo memberVo) {
  53. startPage();
  54. List<AppMemberVo> list = iTbAppUserService.selectAppMembers(memberVo.getEnable(),memberVo.getSearchValue(),
  55. memberVo.getBeginTime(),memberVo.getEndTime());
  56. return getDataTable(list);
  57. }
  58. /**
  59. * 查询会员列表
  60. */
  61. @ApiOperation("查询会员列表")
  62. @PreAuthorize("@ss.hasPermi('system:appUser:list')")
  63. @GetMapping("/list")
  64. public TableDataInfo list(TbAppUser tbAppUser)
  65. {
  66. startPage();
  67. LambdaQueryWrapper<TbAppUser> lqw = new LambdaQueryWrapper<TbAppUser>();
  68. if (tbAppUser.getTemplateId() != null){
  69. lqw.eq(TbAppUser::getTemplateId ,tbAppUser.getTemplateId());
  70. }
  71. if (StringUtils.isNotBlank(tbAppUser.getNickName())){
  72. lqw.like(TbAppUser::getNickName ,tbAppUser.getNickName());
  73. }
  74. if (StringUtils.isNotBlank(tbAppUser.getAvatar())){
  75. lqw.eq(TbAppUser::getAvatar ,tbAppUser.getAvatar());
  76. }
  77. if (StringUtils.isNotBlank(tbAppUser.getQrcode())){
  78. lqw.eq(TbAppUser::getQrcode ,tbAppUser.getQrcode());
  79. }
  80. if (tbAppUser.getMobile() != null){
  81. lqw.eq(TbAppUser::getMobile ,tbAppUser.getMobile());
  82. }
  83. if (StringUtils.isNotBlank(tbAppUser.getOpenid())){
  84. lqw.eq(TbAppUser::getOpenid ,tbAppUser.getOpenid());
  85. }
  86. if (StringUtils.isNotBlank(tbAppUser.getVerCode())){
  87. lqw.eq(TbAppUser::getVerCode ,tbAppUser.getVerCode());
  88. }
  89. List<TbAppUser> list = iTbAppUserService.list(lqw);
  90. return getDataTable(list);
  91. }
  92. /**
  93. * 导出会员列表
  94. */
  95. @ApiOperation("导出会员列表")
  96. @PreAuthorize("@ss.hasPermi('system:appUser:export')" )
  97. @Log(title = "会员" , businessType = BusinessType.EXPORT)
  98. @GetMapping("/export" )
  99. public AjaxResult export(TbAppUser tbAppUser) {
  100. LambdaQueryWrapper<TbAppUser> lqw = new LambdaQueryWrapper<TbAppUser>(tbAppUser);
  101. List<TbAppUser> list = iTbAppUserService.list(lqw);
  102. ExcelUtil<TbAppUser> util = new ExcelUtil<TbAppUser>(TbAppUser. class);
  103. return util.exportExcel(list, "user" );
  104. }
  105. /**
  106. * 获取会员详细信息
  107. */
  108. @ApiOperation("获取会员详细信息")
  109. @PreAuthorize("@ss.hasPermi('system:appUser:query')" )
  110. @GetMapping(value = "/{id}" )
  111. public AjaxResult getInfo(@PathVariable("id" ) Long id) {
  112. return AjaxResult.success(iTbAppUserService.getAppMember(id.toString(),""));
  113. }
  114. /**
  115. * 新增会员
  116. */
  117. @ApiOperation("新增会员")
  118. @PreAuthorize("@ss.hasPermi('system:appUser:add')" )
  119. @Log(title = "会员" , businessType = BusinessType.INSERT)
  120. @PostMapping
  121. public AjaxResult add(@RequestBody TbAppUser tbAppUser) {
  122. return toAjax(iTbAppUserService.save(tbAppUser) ? 1 : 0);
  123. }
  124. //
  125. // /**
  126. // * 修改会员
  127. // */
  128. // @ApiOperation("修改会员")
  129. // @PreAuthorize("@ss.hasPermi('system:appUser:edit')" )
  130. // @Log(title = "会员" , businessType = BusinessType.UPDATE)
  131. // @PutMapping
  132. // public AjaxResult edit(@RequestBody TbAppUser tbAppUser) {
  133. // return toAjax(iTbAppUserService.updateById(tbAppUser) ? 1 : 0);
  134. // }
  135. /**
  136. * 修改会员+家族成员
  137. */
  138. @ApiOperation("修改会员信息")
  139. @PreAuthorize("@ss.hasPermi('system:appUser:edit')" )
  140. @Log(title = "会员" , businessType = BusinessType.UPDATE)
  141. @PutMapping("/editAppMember")
  142. public AjaxResult editAppMember(@RequestBody AppMemberVo memberVo) {
  143. return toAjax(iTbAppUserService.saveOrUpdate(memberVo) ? 1 : 0);
  144. }
  145. /**
  146. * 删除会员
  147. */
  148. @ApiOperation("删除会员")
  149. @PreAuthorize("@ss.hasPermi('system:appUser:remove')" )
  150. @Log(title = "会员" , businessType = BusinessType.DELETE)
  151. @DeleteMapping("/{ids}" )
  152. public AjaxResult remove(@PathVariable Long[] ids) {
  153. List<TbAppUser> list = iTbAppUserService.listByIds(Arrays.asList(ids));
  154. if (list.size() <= 0) {
  155. return AjaxResult.success("数据不存在");
  156. }
  157. List<Long> mIds = new ArrayList<>();
  158. AtomicInteger ck = new AtomicInteger(0);
  159. list.forEach(item -> {
  160. if (item.getJoins().equals("Y")) {
  161. ck.set(1);
  162. mIds.add(item.getId());
  163. }
  164. });
  165. if(ck.intValue() > 0) {
  166. return AjaxResult.error("该会员已经加入家族,不允许删除");
  167. }
  168. List<TbFamilyMember> memberList = memberService.list(new LambdaQueryWrapper<TbFamilyMember>()
  169. .in(TbFamilyMember::getAppUserId, Arrays.asList(ids))
  170. );
  171. if (memberList.size() > 0) {
  172. memberList.forEach(item -> {
  173. item.setAppUserId(null);
  174. });
  175. memberService.updateBatchById(memberList);
  176. }
  177. return toAjax(iTbAppUserService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
  178. }
  179. }