package com.ydtech.modules.admin.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ydtech.core.page.HttpResult; import com.ydtech.core.page.PageResult; import com.ydtech.modules.admin.constants.UserConstants; import com.ydtech.modules.admin.model.SysDept; import com.ydtech.modules.admin.model.po.*; import com.ydtech.modules.admin.model.vo.*; import com.ydtech.modules.admin.service.*; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.protocol.utils.AssertionUtils; import com.ydtech.utils.JudgeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.time.LocalDateTime; import java.util.List; @Api(tags = "渠道分组管理") @RestController @RequestMapping("/sysChannelGrade") public class SysChannelGradeController extends BaseController { @Autowired private SysChannelGradeService sysChannelGradeService; @Autowired private SysDeptService sysDeptService; @Autowired private SysChannelGroupInfoService sysChannelGroupInfoService; @PostMapping(value = "/queryList") @ApiOperation(value = "渠道分组列表") public HttpResult queryList(){ return HttpResult.ok(sysChannelGradeService.queryList()); } @PostMapping(value = "/queryRelation") @ApiOperation(value = "获取关联机构列表") public HttpResult queryRelation(@RequestBody SysChannelVo sysChannelVo){ return HttpResult.ok(sysChannelGradeService.queryRelation(sysChannelVo)); } @PostMapping("/queryPage") @ApiOperation(value = "渠道分组分页列表") public HttpResult> queryPage(@RequestBody @Valid SysChannelGradePageVo sysChannelGradePageVo) { Page page = buildPageRequest(sysChannelGradePageVo.getPageDto()); Page pageResultHttpResult = sysChannelGradeService.queryPage(page,sysChannelGradePageVo); return HttpResult.ok(buildPageResponse(pageResultHttpResult)); } @PostMapping("/grade") @ApiOperation("添加渠道分组") public HttpResult save(@RequestBody @Valid AddSysChannelGradeVo addSysChannelGradeVo) { // 获取当前登录信息 String userName = getUserName(); SysChannelGrade sysChannelGrade = new SysChannelGrade(); BeanUtils.copyProperties(addSysChannelGradeVo, sysChannelGrade); sysChannelGrade.setCreateTime(LocalDateTime.now()); sysChannelGrade.setCreateBy(userName); if (UserConstants.NOT_UNIQUE.equals(sysChannelGradeService.checkNameUnique(sysChannelGrade))) { return HttpResult.error("新增渠道分组'" + sysChannelGrade.getName() + "'失败,渠道分组名称已存在"); } boolean save = sysChannelGradeService.save(sysChannelGrade); return JudgeUtils.add(save); } @PutMapping("/grade/{id}") @ApiOperation("修改渠道分组") public HttpResult modify(@PathVariable Long id, @RequestBody AddSysChannelGradeVo addSysChannelGradeVo) { // 获取当前登录信息 String userName = getUserName(); SysChannelGrade sysChannelGrade = new SysChannelGrade(); BeanUtils.copyProperties(addSysChannelGradeVo, sysChannelGrade); sysChannelGrade.setId(id); sysChannelGrade.setUpdateTime(LocalDateTime.now()); sysChannelGrade.setUpdateBy(userName); if (UserConstants.NOT_UNIQUE.equals(sysChannelGradeService.checkNameUnique(sysChannelGrade))) { return HttpResult.error("修改渠道分组'" + sysChannelGrade.getName() + "'失败,渠道分组名称已存在"); } // 判断是否有费用设置 LambdaQueryWrapper infoWapper = new LambdaQueryWrapper<>(); infoWapper.eq(SysChannelGroupInfo::getGradeId, id); List infos = sysChannelGroupInfoService.list(infoWapper); for (SysChannelGroupInfo info : infos) { info.setGradeName(addSysChannelGradeVo.getName()); info.setUpdateBy(userName); info.setUpdateTime(LocalDateTime.now()); } sysChannelGroupInfoService.saveOrUpdateBatch(infos); boolean modify = sysChannelGradeService.saveOrUpdate(sysChannelGrade); return JudgeUtils.modify(modify); } @DeleteMapping("/grade/{id}") @ApiOperation("删除渠道分组") public HttpResult delete(@PathVariable Long id) { sysChannelGradeService.delete(id); return HttpResult.ok("删除成功"); } @PostMapping("/grade/authorized") @ApiOperation("渠道分组授权机构") public HttpResult authorized(@RequestBody @Valid AuthSysChannelGradeVo authSysChannelGradeVo) { // 查询该机构是否有授权 List areaIdList = authSysChannelGradeVo.getAreaIdList(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(SysChannelGrade::getId, areaIdList); long count = sysChannelGradeService.count(queryWrapper); AssertionUtils.isFail(count > 0,"已授权的机构不能重复授权"); LambdaQueryWrapper areaWrapper = new LambdaQueryWrapper<>(); areaWrapper.in(SysDept::getId, areaIdList); List areas = sysDeptService.list(areaWrapper); AssertionUtils.isFail(areas.size() <= 0, "勾选机构不存在"); sysChannelGradeService.authArea(authSysChannelGradeVo); return HttpResult.ok("授权成功"); } }