| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- package com.ydtech.modules.admin.controller;
- import cn.hutool.core.collection.CollUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- 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.SysArea;
- import com.ydtech.modules.admin.model.po.*;
- import com.ydtech.modules.admin.model.vo.*;
- import com.ydtech.modules.admin.service.SysAreaService;
- import com.ydtech.modules.admin.service.SysChannelAreaRelationService;
- import com.ydtech.modules.admin.service.SysChannelGradeService;
- import com.ydtech.modules.admin.service.SysChannelGroupInfoService;
- import com.ydtech.modules.admin.service.impl.SysAreaServiceImpl;
- import com.ydtech.modules.admin.service.impl.SysChannelAreaRelationServiceImpl;
- import com.ydtech.modules.admin.service.impl.SysChannelGroupInfoServiceImpl;
- import com.ydtech.modules.admin.service.impl.SysChannelGroupServiceImpl;
- 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.validation.annotation.Validated;
- 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 SysAreaService sysAreaService;
- @Autowired
- private SysChannelGroupInfoService sysChannelGroupInfoService;
- @Autowired
- private SysChannelAreaRelationService sysChannelAreaRelationService;
- @PostMapping(value = "/queryList")
- @ApiOperation(value = "渠道分组列表")
- public HttpResult<Object> queryList(){
- return HttpResult.ok(sysChannelGradeService.queryList());
- }
- @PostMapping(value = "/queryRelationList/{id}")
- @ApiOperation(value = "获取关联机构列表")
- public HttpResult<Object> queryRelationList(@PathVariable Long id){
- return HttpResult.ok(sysChannelGradeService.queryRelationList(id));
- }
- @PostMapping(value = "/queryRelation")
- @ApiOperation(value = "获取关联机构列表")
- public HttpResult<Object> queryRelation(@RequestBody SysChannelVo sysChannelVo){
- return HttpResult.ok(sysChannelGradeService.queryRelation(sysChannelVo));
- }
- @PostMapping("/queryPage")
- @ApiOperation(value = "渠道分组分页列表")
- public HttpResult<PageResult<SysChannelGrade>> queryPage(@RequestBody @Valid SysChannelGradePageVo sysChannelGradePageVo) {
- Page page = buildPageRequest(sysChannelGradePageVo.getPageDto());
- Page<SysChannelGrade> 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<SysChannelGroupInfo> infoWapper = new LambdaQueryWrapper<>();
- infoWapper.eq(SysChannelGroupInfo::getGradeId, id);
- List<SysChannelGroupInfo> 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("删除成功");
- }
- @DeleteMapping("/deleteAuth")
- @ApiOperation("删除分组授权机构")
- public HttpResult deleteAuth(@RequestBody AuthSysChannelGradeVo authSysChannelGradeVo) {
- sysChannelGradeService.deleteAuth(authSysChannelGradeVo);
- return HttpResult.ok("删除成功");
- }
- @PostMapping("/grade/authorized")
- @ApiOperation("渠道分组授权机构")
- public HttpResult authorized(@RequestBody @Valid AuthSysChannelGradeVo authSysChannelGradeVo) {
- // 查询该机构是否有授权
- List<String> areaIdList = authSysChannelGradeVo.getAreaIdList();
- if(CollUtil.isEmpty(areaIdList)){
- // 删除所有已经授权机构
- QueryWrapper<SysChannelAreaRelation> wrapper = new QueryWrapper<>();
- LambdaQueryWrapper<SysChannelAreaRelation> lqw = new LambdaQueryWrapper<>();
- lqw.eq(SysChannelAreaRelation::getGradeId, authSysChannelGradeVo.getId());
- sysChannelAreaRelationService.remove(wrapper);
- return HttpResult.ok("授权成功");
- }
- LambdaQueryWrapper<SysChannelGrade> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.in(SysChannelGrade::getId, areaIdList);
- long count = sysChannelGradeService.count(queryWrapper);
- AssertionUtils.isFail(count > 0,"已授权的机构不能重复授权");
- LambdaQueryWrapper<SysArea> areaWrapper = new LambdaQueryWrapper<>();
- areaWrapper.in(SysArea::getId, areaIdList);
- List<SysArea> areas = sysAreaService.list(areaWrapper);
- AssertionUtils.isFail(areas.size() > 0, "勾选机构不存在");
- for (int i = 0; i < areas.size(); i++) {
- LambdaQueryWrapper<SysArea> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(SysArea::getUpperCode, areas.get(i).getAreaCode());
- long areaCount = sysAreaService.count(wrapper);
- AssertionUtils.isFail(areaCount <= 0,"非末级机构,不允许授权!");
- }
- sysChannelGradeService.authArea(authSysChannelGradeVo);
- return HttpResult.ok("授权成功");
- }
- }
|