| | |
| | | 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; |
| | | |
| | | /** |
| | | * 三说会堂调解专家控制器 |
| | |
| | | |
| | | @Resource |
| | | private ComSanShuoExpertService comSanShuoExpertService; |
| | | @Resource |
| | | private UserService userService; |
| | | @Resource |
| | | private IComEventService comEventService; |
| | | |
| | | /** |
| | | * 添加专家 |
| | |
| | | @PostMapping |
| | | public R add(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){ |
| | | comSanshuoExpertDTO.setCreateBy(this.getLoginUserInfo().getName()); |
| | | return R.ok(comSanShuoExpertService.addExpert(comSanshuoExpertDTO)); |
| | | comSanshuoExpertDTO.setAppId(userService.detailUser(getLoginUserInfo().getUserId()).getData().getAppId()); |
| | | return comSanShuoExpertService.addOrUpdateExpert(comSanshuoExpertDTO); |
| | | } |
| | | |
| | | @GetMapping("/detail") |
| | | public R detail(@RequestParam Long id){ |
| | | return R.ok(comSanShuoExpertService.getById(id)); |
| | | } |
| | | |
| | | /** |
| | | * 小程序获取可选择专家 |
| | | * */ |
| | | @GetMapping("appletsList") |
| | | public R appList(){ |
| | | return R.ok(comSanShuoExpertService.list(new QueryWrapper<ComSanshuoExpert>().eq("status",1).eq("del_flag",1))); |
| | | @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){ |
| | | ComSanshuoExpert expert=new ComSanshuoExpert(); |
| | | BeanUtil.copyProperties(comSanshuoExpertDTO,expert); |
| | | expert.setUpdateTime(new Date()); |
| | | return R.ok(comSanShuoExpertService.updateById(expert)); |
| | | return R.ok(comSanShuoExpertService.addOrUpdateExpert(comSanshuoExpertDTO)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 后台获取列表 |
| | | * */ |
| | | @GetMapping("/backstageList") |
| | | public R backList(@RequestParam(value = "keyWord",required = false)@ApiParam("搜索关键字") String keyWord, |
| | | public R backList(@RequestParam(value = "keyWord",required = false) String keyWord, |
| | | @RequestParam(value = "page",required = false)Integer page, |
| | | @RequestParam(value = "size",required = false)Integer size){ |
| | | //TODO 获取当前账号级别确定范围 |
| | | Integer range=null; |
| | | Long id=null; |
| | | return R.ok(comSanShuoExpertService.expertPage(keyWord,page,size,range,id)); |
| | | @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()); |
| | | return comSanShuoExpertService.expertPage(keyWord,page,size,loginUserInfo,level); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 删除 |
| | | * */ |
| | | @DeleteMapping("/remove/{id}") |
| | | public R remove(@PathVariable("id")Long id){ |
| | | //TODO 是否有为解决事件 |
| | | @DeleteMapping("/remove") |
| | | public R remove(@RequestParam("id")Long id){ |
| | | List<ComEvent> list = comEventService.list(new QueryWrapper<ComEvent>().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); |
| | | return R.ok(comSanShuoExpertService.updateById(expert)); |
| | | boolean b = comSanShuoExpertService.updateById(expert); |
| | | if (b){ |
| | | //删除专家账号的权限 |
| | | userService.removeExpertRole(expert.getPhone()); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | |
| | | 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 loginUserInfo = this.getLoginUserInfo(); |
| | | 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()); |
| | | } |
| | | |
| | | /** |
| | | * 是否为专家登陆小程序 |
| | | * */ |
| | | @GetMapping("/checkExpert") |
| | | public R checkExpert(@RequestParam("number") String number){ |
| | | ComSanshuoExpert expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().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()); |
| | | return comSanShuoExpertService.backstageList(level,loginUserInfo,page,size,keyWord); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |