package cc.mrbird.febs.ai.controller.memberRole; import cc.mrbird.febs.ai.entity.AiMemberRole; import cc.mrbird.febs.ai.entity.AiMemberRoleProduct; import cc.mrbird.febs.ai.entity.AiProduct; import cc.mrbird.febs.ai.res.AdminMoveChooseInfoVo; import cc.mrbird.febs.ai.service.AiMemberRoleProductService; import cc.mrbird.febs.ai.service.AiMemberRoleService; import cc.mrbird.febs.ai.service.AiProductService; import cc.mrbird.febs.common.entity.FebsConstant; import cc.mrbird.febs.common.utils.FebsUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * @author Administrator */ @Controller("AiMemberRoleView") @RequestMapping(FebsConstant.VIEW_PREFIX + "modules/ai/memberRole") @RequiredArgsConstructor public class ViewController { private final AiMemberRoleService aiMemberRoleService; private final AiMemberRoleProductService aiMemberRoleProductService; private final AiProductService aiProductService; @GetMapping("list") @RequiresPermissions("memberRoleList:view") public String memberRoleList() { return FebsUtil.view("modules/ai/memberRole/list"); } @GetMapping(value = "/add") @RequiresPermissions("memberRoleList:add") public String artAdd() { return FebsUtil.view("modules/ai/memberRole/add"); } @GetMapping("info/{id}") @RequiresPermissions("memberRoleList:info") public String artInfo(@PathVariable String id, Model model) { AiMemberRole entity = aiMemberRoleService.getById(id); model.addAttribute("aiMemberRole", entity); return FebsUtil.view("modules/ai/memberRole/info"); } @GetMapping("productSet/{id}") @RequiresPermissions("memberRoleList:productSet") public String productSet(@PathVariable String id, Model model) { List vos = new ArrayList<>(); Set productIds = new HashSet<>(); AiMemberRole entity = aiMemberRoleService.getById(id); if(ObjectUtil.isNotNull(entity)){ //右侧数据 LambdaQueryWrapper query = Wrappers.lambdaQuery(AiMemberRoleProduct.class); if(StrUtil.isNotEmpty(id)){ query.eq(AiMemberRoleProduct::getRoleId, id); } List selectedList = aiMemberRoleProductService.selectListByQuery(query); if(CollUtil.isNotEmpty(selectedList)){ //stream流操作happyMemberLabelRecords,获取memberId的set集合 productIds = selectedList.stream().map(AiMemberRoleProduct::getProductId).collect(Collectors.toSet()); } //左侧数据 List allList = aiProductService.selectList(); if(CollUtil.isNotEmpty(allList)){ //stream流操作mallMembers,生成一个新的List vos = allList.stream().map(AiProduct -> { AdminMoveChooseInfoVo vo = new AdminMoveChooseInfoVo(); vo.setId(AiProduct.getId()); vo.setName(AiProduct.getName()); return vo; }).collect(Collectors.toList()); } } model.addAttribute("productAll", vos); model.addAttribute("productSelected", productIds); model.addAttribute("chooseId", id); return FebsUtil.view("modules/ai/memberRole/productSet"); } }