package com.panzhihua.service_community.api; import cn.hutool.core.bean.BeanUtil; import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.dtos.community.sanshuo.ComSanshuoExpertDTO; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.ExcelUtils; import com.panzhihua.common.utlis.Snowflake; import com.panzhihua.service_community.entity.ComEvent; import com.panzhihua.service_community.entity.ComSanshuoExpert; import com.panzhihua.service_community.service.ComSanShuoExpertService; import com.panzhihua.service_community.service.IComEventService; import com.panzhihua.service_community.util.ExcelListener; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.xml.crypto.Data; import java.io.IOException; import java.util.Date; import java.util.List; import static java.util.Objects.isNull; import static java.util.Objects.nonNull; /** * 三说会堂调解专家控制器 * */ @RestController @RequestMapping("/sanshuo/expert") public class ComSanShuoExpertApi extends BaseController { @Resource private ComSanShuoExpertService comSanShuoExpertService; @Resource private UserService userService; @Resource private IComEventService comEventService; /** * 添加专家 * */ @PostMapping public R add(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){ comSanshuoExpertDTO.setCreateBy(this.getLoginUserInfo().getName()); // comSanshuoExpertDTO.setAppId(userService.detailUser(getLoginUserInfo().getUserId()).getData().getAppId()); comSanshuoExpertDTO.setAppId(getAppId()); return comSanShuoExpertService.addOrUpdateExpert(comSanshuoExpertDTO); } @GetMapping("/detail") public R detail(@RequestParam Long id){ return R.ok(comSanShuoExpertService.getById(id)); } /** * 小程序获取可选择专家 * */ @GetMapping("/appletsList") public R appList(@RequestParam (value = "type",required = false)Integer type,@RequestParam(value = "id",required = false)Long id){ return comSanShuoExpertService.selectExpertList(type, id,this.getLoginUserInfo().getCommunityId()); } /** * 修改专家 * */ @PutMapping public R update(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){ return R.ok(comSanShuoExpertService.addOrUpdateExpert(comSanshuoExpertDTO)); } /** * 后台获取列表 * */ @GetMapping("/backstageList") public R backList(@RequestParam(value = "keyWord",required = false) String keyWord, @RequestParam(value = "page",required = false)Integer page, @RequestParam(value = "size",required = false)Integer size, @RequestParam(value = "level",required = false)Integer level){ LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); // loginUserInfo.setAppId(userService.detailUser(getLoginUserInfo().getUserId()).getData().getAppId()); loginUserInfo.setAppId(getAppId()); return comSanShuoExpertService.expertPage(keyWord,page,size,loginUserInfo,level); } /** * 删除 * */ @DeleteMapping("/remove") public R remove(@RequestParam("id")Long id){ List list = comEventService.list(new QueryWrapper().lambda().eq(ComEvent::getSpecialistId, id).in(ComEvent::getEventProcessStatus, (1), (2), (5))); if (list.size()!=0){ return R.fail("有未调解完成事件,无法删除!"); } ComSanshuoExpert expert = comSanShuoExpertService.getById(id); expert.setStatus(0); expert.setDelFlag(0); boolean b = comSanShuoExpertService.updateById(expert); if (b){ //删除专家账号的权限 userService.removeExpertRole(expert.getPhone()); } return R.ok(); } /** * 重置密码 * */ @PostMapping("/resetPassword") public R resetPassword(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){ ComSanshuoExpert expert = comSanShuoExpertService.getById(comSanshuoExpertDTO.getId()); expert.setPassword(comSanshuoExpertDTO.getPassword()); userService.sanShuoResetPassword(comSanshuoExpertDTO.getAccount(),comSanshuoExpertDTO.getPassword() ); return R.ok(comSanShuoExpertService.updateById(expert)); } /** * 专家风采 * */ @GetMapping("/expertShow") public R expertShow(){ return comSanShuoExpertService.expertShow(this.getLoginUserInfo().getAppId()); } /** * 专家范围 * */ @GetMapping("/expertRange") public R expertRange(){ LoginUserInfoVO loginUserInfo1=getLoginUserInfo(); LoginUserInfoVO loginUserInfo = userService.detailUser(loginUserInfo1.getUserId()).getData(); return comSanShuoExpertService.expertRange(loginUserInfo); } /** * 专家风采列表 * */ @GetMapping("/expertShowList") public R expertShowList(@RequestParam(value = "level",required = false)Integer level, @RequestParam(value = "id",required = false)Long id){ // return comSanShuoExpertService.expertShowList(level,id,userService.detailUser(this.getUserId()).getData().getAppId()); return comSanShuoExpertService.expertShowList(level,id,getAppId()); } /** * 是否为专家登陆小程序 * */ @GetMapping("/checkExpert") public R checkExpert(@RequestParam("number") String number){ ComSanshuoExpert expert = comSanShuoExpertService.getOne(new QueryWrapper().lambda().eq(ComSanshuoExpert::getPhone, number)); if (nonNull(expert)){ return R.ok(); } return R.fail(); } /** * 导入专家信息 * */ @PostMapping("/importExpert") public R importExpert(@RequestBody MultipartFile multipartFile){ try { ExcelListener listener=new ExcelListener(comSanShuoExpertService); EasyExcel.read(multipartFile.getInputStream(),ComSanshuoExpert.class,listener).sheet().doRead(); } catch (IOException e) { e.printStackTrace(); } return R.ok(); } /** * 后台获取专家列表 * */ @GetMapping("/backstageList2") public R backstageList(@RequestParam(value = "level",required = false)Integer level, @RequestParam(value = "page",required = false)Integer page, @RequestParam(value = "size",required = false)Integer size, @RequestParam(value = "keyWord",required = false)String keyWord){ LoginUserInfoVO loginUserInfo = getLoginUserInfo(); // loginUserInfo.setAppId(userService.detailUser(getLoginUserInfo().getUserId()).getData().getAppId()); loginUserInfo.setAppId(getAppId()); return comSanShuoExpertService.backstageList(level,loginUserInfo,page,size,keyWord); } }