package cc.mrbird.febs.ai.controller.memberRole; import cc.mrbird.febs.ai.entity.*; import cc.mrbird.febs.ai.res.AdminMoveChooseInfoVo; import cc.mrbird.febs.ai.service.*; 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 AiMemberRolePointService aiMemberRolePointService; private final AiProductService aiProductService; private final AiProductPointService aiProductPointService; @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); String companyId = entity.getCompanyId(); if(ObjectUtil.isNotNull(entity)){ //右侧数据 LambdaQueryWrapper query = Wrappers.lambdaQuery(AiMemberRoleProduct.class); if(StrUtil.isNotEmpty(id)){ query.eq(AiMemberRoleProduct::getRoleId, id); } if(StrUtil.isNotEmpty(companyId)){ query.eq(AiMemberRoleProduct::getCompanyId, companyId); } 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(companyId); 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"); } @GetMapping("productPointSet/{id}") @RequiresPermissions("memberRoleList:productPointSet") public String productPointSet(@PathVariable String id, Model model) { List vos = new ArrayList<>(); Set productPointIds = new HashSet<>(); AiMemberRole entity = aiMemberRoleService.getById(id); String companyId = entity.getCompanyId(); if(ObjectUtil.isNotNull(entity)){ //右侧数据 LambdaQueryWrapper query = Wrappers.lambdaQuery(AiMemberRolePoint.class); if(StrUtil.isNotEmpty(id)){ query.eq(AiMemberRolePoint::getRoleId, id); } if(StrUtil.isNotEmpty(companyId)){ query.eq(AiMemberRolePoint::getCompanyId, companyId); } List selectedList = aiMemberRolePointService.selectListByQuery(query); if(CollUtil.isNotEmpty(selectedList)){ //stream流操作happyMemberLabelRecords,获取memberId的set集合 productPointIds = selectedList.stream().map(AiMemberRolePoint::getProductPointId).collect(Collectors.toSet()); } //左侧数据 List allList = aiProductPointService.selectList(companyId); if(CollUtil.isNotEmpty(allList)){ //stream流操作mallMembers,生成一个新的List vos = allList.stream().map(AiProductPoint -> { AdminMoveChooseInfoVo vo = new AdminMoveChooseInfoVo(); vo.setId(AiProductPoint.getId()); vo.setName(AiProductPoint.getTitle()); return vo; }).collect(Collectors.toList()); } } model.addAttribute("productPointAll", vos); model.addAttribute("productPointSelected", productPointIds); model.addAttribute("choosePointId", id); return FebsUtil.view("modules/ai/memberRole/productPointSet"); } }