AdministerController.java 5.95 KB
package com.zhongzhi.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.administer.AdministerPageDTO;
import com.zhongzhi.dto.administer.CreateAdministerDTO;
import com.zhongzhi.dto.administer.LoginDTO;
import com.zhongzhi.model.AdministerDO;
import com.zhongzhi.model.AdministerPermissionDO;
import com.zhongzhi.model.AdministerTrackMappingDO;
import com.zhongzhi.service.AdministerPermissionService;
import com.zhongzhi.service.AdministerService;
import com.zhongzhi.service.AdministerTrackMappingService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * <p>
 * 中心管理账户表 前端控制器
 * </p>
 *
 * @author DengMin
 * @since 2021-04-28
 */
@RestController
@Api(tags = "中心管理账户")
@RequestMapping("/administer")
public class AdministerController {

    @Autowired
    private AdministerService administerService;

    @Autowired
    private AdministerTrackMappingService administerTrackMappingService;

    @Autowired
    private AdministerPermissionService administerPermissionService;

    @PostMapping(value = "/login")
    @ApiOperation("中心端 --- 登录:手机号/telephone, code/验证码")
    public ResponseVO login(@RequestBody LoginDTO loginDTO) {
        return ResponseData.generateCreatedResponse(0, administerService.login(loginDTO));
    }

    @PostMapping(value = "/getAdministerPage")
    @ApiOperation("[立信]中心端 --- 成员管理分页查询:listItem/角色、 username/搜索名称、pageNo/当前页数、pageSize/每页显示条数")
    public ResponseVO getAdministerPage(@RequestBody AdministerPageDTO administerPageDTO) {
        return ResponseData.generateCreatedResponse(0, administerService.getAdministerPage(administerPageDTO));
    }

    @PostMapping(value = "/createAdminister")
    @ApiOperation("[立信]中心端 --- 新增成员:username/名称、telephone/手机号、avatar/头像、role/角色  trackIds[] 赛道ids  permissionIds[] 权限ids")
    public ResponseVO createAdminister(@RequestBody CreateAdministerDTO createAdministerDTO) {
        administerService.save(createAdministerDTO);
        List<Long> trackIds = createAdministerDTO.getTrackIds();

        if (null != trackIds){
            for (Long id : trackIds){
                AdministerTrackMappingDO administerTrackMappingDO = new AdministerTrackMappingDO();
                administerTrackMappingDO.setAdministerId(createAdministerDTO.getId());
                administerTrackMappingDO.setTrackId(id);
                administerTrackMappingService.save(administerTrackMappingDO);
            }
        }

        List<Long> permissionIds = createAdministerDTO.getPermissionIds();
        if (null != permissionIds){
            for (Long id : permissionIds){
                AdministerPermissionDO administerPermissionDO = new AdministerPermissionDO();
                administerPermissionDO.setAdministerId(createAdministerDTO.getId());
                administerPermissionDO.setPermissionId(id);
                administerPermissionService.save(administerPermissionDO);
            }
        }
        return ResponseData.generateCreatedResponse(0);
    }

    @PostMapping(value = "/updateAdminister")
    @ApiOperation("[立信]中心端 --- 编辑成员:id/成员ID、username/名称、telephone/手机号、avatar/头像、role/角色   trackIds[] 赛道ids  permissionIds[] 权限ids")
    public ResponseVO updateAdminister(@RequestBody CreateAdministerDTO createAdministerDTO) {

        administerService.updateAdminister(createAdministerDTO);

        List<Long> trackIds = createAdministerDTO.getTrackIds();
        if (null != trackIds){
            administerTrackMappingService.remove(new QueryWrapper<AdministerTrackMappingDO>()
                    .lambda()
                    .eq(AdministerTrackMappingDO::getAdministerId,createAdministerDTO.getId()));
            for (Long id : trackIds){
                AdministerTrackMappingDO administerTrackMappingDO = new AdministerTrackMappingDO();
                administerTrackMappingDO.setAdministerId(createAdministerDTO.getId());
                administerTrackMappingDO.setTrackId(id);
                administerTrackMappingService.save(administerTrackMappingDO);
            }
        }

        List<Long> permissionIds = createAdministerDTO.getPermissionIds();
        if (null != permissionIds) {
            administerPermissionService.remove(new QueryWrapper<AdministerPermissionDO>()
                    .lambda()
                    .eq(AdministerPermissionDO::getAdministerId,createAdministerDTO.getId()));
            for (Long id : permissionIds){
                AdministerPermissionDO administerPermissionDO = new AdministerPermissionDO();
                administerPermissionDO.setAdministerId(createAdministerDTO.getId());
                administerPermissionDO.setPermissionId(id);
                administerPermissionService.save(administerPermissionDO);
            }
        }

        return ResponseData.generateCreatedResponse(0);
    }

    @PostMapping(value = "/deleteById")
    @ApiOperation("[立信]中心端 --- 删除成员:id/成员ID")
    public ResponseVO delete(@RequestBody AdministerDO administerDO) {
        administerService.removeById(administerDO.getId());
        administerTrackMappingService.remove(new QueryWrapper<AdministerTrackMappingDO>()
                .lambda()
                .eq(AdministerTrackMappingDO::getAdministerId,administerDO.getId()));
        return ResponseData.generateCreatedResponse(0);
    }
}