package com.ruoyi.account.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.OperatorType; import com.ruoyi.common.security.annotation.Logical; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.other.api.dto.TagListQueryDto; import com.ruoyi.account.api.model.TAppUserTag; import com.ruoyi.account.service.TAppUserTagService; import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.TUserTag; import com.ruoyi.other.api.feignClient.OtherClient; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** *

* 前端控制器 *

* * @author luodangjia * @since 2024-08-06 */ @RestController @RequestMapping("/t-app-user-tag") public class TAppUserTagController { @Resource private OtherClient otherClient; @Resource private TAppUserTagService appUserTagService; @RequiresPermissions(value = {"/coupon", "/userTag"}, logical = Logical.OR) @ApiOperation(value = "标签管理列表", tags = {"用户管理-用户标签管理"}) @PostMapping(value = "/tags/page") public R> tagPage(@RequestBody TagListQueryDto tagListQueryDto) { //拿到单位列表 R> pageR = otherClient.queryTagPage(tagListQueryDto); Page data = pageR.getData(); //拿到单位的用户数 for (TUserTag record : data.getRecords()) { record.setCount(appUserTagService.lambdaQuery().eq(TAppUserTag::getUserTagId, record.getId()).count()); } return R.ok(data); } @RequiresPermissions(value = {"/appUser/list"}, logical = Logical.OR) @ApiOperation(value = "标签管理列表", tags = {"用户管理-用户标签管理"}) @GetMapping(value = "/tags/select") public R> select() { TagListQueryDto tagListQueryDto = new TagListQueryDto(); tagListQueryDto.setPageCurr(1); tagListQueryDto.setPageSize(999); R> pageR = otherClient.queryTagPage(tagListQueryDto); return R.ok(pageR.getData().getRecords()); } @RequiresPermissions(value = {"/userTag/add", "/userTag/update"}, logical = Logical.OR) @ApiOperation(value = "标签添加或修改", tags = {"用户管理-用户标签管理"}) @PostMapping(value = "/tags/add") @Log(title = "【用户标签管理】标签添加或修改", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE) public R> tagAdd(@RequestBody TUserTag tUserTag) { //拿到单位列表 otherClient.addorUpdateTag(tUserTag); return R.ok(); } @RequiresPermissions(value = {"/userTag/del"}, logical = Logical.OR) @ApiOperation(value = "标签删除", tags = {"用户管理-用户标签管理"}) @DeleteMapping(value = "/tags/delete") @Log(title = "【用户标签管理】删除标签", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE) public R delete(String ids) { //拿到单位列表 String[] split = ids.split(","); List list = appUserTagService.lambdaQuery().in(TAppUserTag::getUserTagId,split).list(); if (!list.isEmpty()){ return R.fail("当前标签已有用户获取,无法删除"); } for (String id : split) { otherClient.deleteTag(Integer.valueOf(id)); } return R.ok(); } /** * 获取用户标签关系 * @param appUserTag * @return */ @PostMapping(value = "/tags/getUserTag") public R getUserTag(@RequestBody TAppUserTag appUserTag){ TAppUserTag one = appUserTagService.getOne(new LambdaQueryWrapper().eq(TAppUserTag::getAppUserId, appUserTag.getAppUserId()) .eq(TAppUserTag::getUserTagId, appUserTag.getUserTagId())); return R.ok(one); } /** * 保存用户标签关系数据 * @param appUserTag */ @PostMapping(value = "/tags/addUserTag") public void addUserTag(@RequestBody TAppUserTag appUserTag){ appUserTagService.save(appUserTag); } }