package com.iden.bms.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.iden.bms.service.CrowdService; import com.iden.bms.service.PersonService; import com.iden.common.annotation.Permission; import com.iden.common.exception.BDException; import com.iden.common.logaspect.LogAnnotation; import com.iden.common.logaspect.OperateType; import com.iden.common.util.PageResult; import com.iden.common.util.Result; import com.iden.common.util.WebPageUtils; import com.iden.common.vo.CrowdVO; import com.iden.common.vo.PageReqVO; import com.iden.common.vo.UserLoginedConvertVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.util.List; /** * @Author: lilt * @Date: 2021/5/26 * @Desc: */ @RestController @Api(value = "CrowdController", tags = { "人群管理" }) @Slf4j @RequestMapping("/bms/crowd") @Permission public class CrowdController { @Autowired private CrowdService crowdService; @Autowired private PersonService personService; @GetMapping("/listCommunity4Select") @ApiOperation(value = "人群下拉列表 ") public Result> listCommunity4Select(HttpServletRequest request, @RequestHeader(value = "token") String token, PageReqVO pageReqVo){ try { UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request); List datas = this.crowdService.lisCrowd4Select(loginUser); return Result.success(datas); }catch (BDException e) { log.error("人群下拉列表查询-分页列表出现异常",e); return PageResult.error(e.getMessage()); } catch (Exception e) { log.error("人群管理: 人群下拉列表查询出现异常",e); return PageResult.error( "获取列表失败"); } } @GetMapping("/listCrowd") @ApiOperation(value = "人群列表分页 ") @ApiImplicitParams(value = { @ApiImplicitParam(paramType = "query", name = "name", value = "人群名称") }) public PageResult> listCrowd(HttpServletRequest request, @RequestHeader(value = "token") String token, @RequestParam(value = "name", required = false) String name, PageReqVO pageReqVo){ try { UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request); IPage pageResponse = this.crowdService.listCrowd(name,loginUser ,pageReqVo); return PageResult.success(pageResponse.getRecords(),pageResponse.getCurrent(),pageResponse.getSize(),pageResponse.getTotal()); }catch (BDException e) { log.error("人群列表查询-分页列表出现异常",e); return PageResult.error(e.getMessage()); } catch (Exception e) { log.error("人群管理: 人群列表查询出现异常",e); return PageResult.error( "获取列表失败"); } } @ApiOperation(value = "导入Excel") @PostMapping(value = "/importWithExcel", headers = "content-type=multipart/form-data") public Result> importWithExcel(HttpServletRequest request, @RequestHeader(value = "token") String token, @RequestParam(value = "file") MultipartFile multipartFile) { try { List personIdList = personService.importWithExcel(multipartFile); return Result.success("导入成功!",personIdList); } catch (BDException e) { log.error("导入人员列表出现异常",e); return Result.error(e.getMessage()); } catch (Exception e) { log.error("人员管理: 导入人员列表出现异常",e); return Result.error("导入人员失败!"); } } @PostMapping("/addCrowd") @ApiOperation(value = "新增人群") @LogAnnotation( type = OperateType.ADD, moduleName = "新增人群", description = "新增人群" ) public Result addCrowd(HttpServletRequest request, @RequestHeader("token") String token, @RequestBody CrowdVO vo){ try { UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request); int flag = this.crowdService.createCrowd(vo,loginUser); if (flag == 1) { return Result.error("名称已存在!"); } if (flag == 2) { return Result.error("编码已存在!"); } if (flag == 3) { return Result.error("人员列表不能为空!"); } else if (flag == 0) { return Result.success("新增成功!"); } else { return Result.error("新增失败!"); } }catch (BDException e) { log.error("新增人群-出现异常",e); return Result.error(e.getMessage()); } catch (Exception e) { log.error("人群管理: 新增人群出现异常",e); return Result.error("新增失败!"); } } @PostMapping("/updateCrowd") @ApiOperation(value = "修改人群") @LogAnnotation( type = OperateType.MODIFY, moduleName = "修改人群", description = "修改人群" ) public Result updateCrowd(HttpServletRequest request,@RequestHeader("token") String token, @RequestBody CrowdVO vo){ try { this.crowdService.updateCrowd(vo); return Result.success("修改成功!"); }catch (BDException e) { log.error("修改人群-出现异常",e); return Result.error(e.getMessage()); } catch (Exception e) { log.error("人群管理: 修改人群出现异常",e); return Result.error("修改失败!"); } } @GetMapping("/getCrowdInfo/{id}") @ApiOperation(value = "人群详情") public Result getCrowdInfo(HttpServletRequest request, @RequestHeader("token") String token, @PathVariable("id") Long id){ CrowdVO vo = this.crowdService.getCrowdById(id); return Result.success("查询成功!",vo); } @PostMapping("/deleteCrowd/{id}") @ApiOperation(value = "删除人群") @LogAnnotation( type = OperateType.REMOVE, moduleName = "删除人群", description = "删除人群" ) public Result deleteCrowd(HttpServletRequest request,@RequestHeader("token") String token, @PathVariable("id") Long id){ try { if( this.crowdService.deleteById(id)){ return Result.success("删除成功!"); } else { return Result.error("人群被引用,删除失败!"); } } catch (Exception e) { log.error("人群管理: 删除出现异常",e); return Result.error("删除失败!"); } } }