package com.panzhihua.service_community.api; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.enums.SanShuoEventStatusEnum; import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.sanshuo.ComEventArchiveVO; import com.panzhihua.common.model.vos.sanshuo.ComEventConciliationVO; import com.panzhihua.common.model.vos.sanshuo.ComEventVO; import com.panzhihua.common.model.vos.sanshuo.ComSanRequestVO; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.CopyUtil; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.entity.ComEvent; import com.panzhihua.service_community.service.ComSanShuoExpertService; import com.panzhihua.service_community.service.IComEventService; 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.BeanUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import javax.annotation.Resource; import javax.validation.Valid; import java.util.HashMap; import java.util.List; import static java.util.Objects.isNull; import static java.util.Objects.nonNull; /** * ClassName ComEventController * Description 三说会堂事件表控制层 * * @author manailin * @date 2022-09-07 11:23:51 */ @Slf4j @Api(tags = {"三说会堂事件表控制层"}) @RestController @RequestMapping("/sanshuo/comEvent") public class ComSanShuoEventController extends BaseController { @Resource private IComEventService comEventService; @Resource private UserService userService; @Resource private ComSanShuoExpertService comSanShuoExpertService; /** * description 新增三说会堂事件表 * * @param comEventVO 对象 * @return R 新增结果对象 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("新增三说会堂事件表") @PostMapping("/add") public R insertComEvent(@RequestBody @Valid ComSanRequestVO comEventVO, @ApiIgnore BindingResult results) { if (results.hasErrors()) { return R.fail(results.getFieldError().getDefaultMessage()); } ComEvent comEvent = CopyUtil.copyProperties(comEventVO, ComEvent.class); LoginUserInfoVO loginUser = getLoginUserInfo(); comEvent.setRequestUserId(loginUser.getUserId()); comEvent.setRequestUserName(loginUser.getName()); comEvent.setRequestUserTel(loginUser.getPhone()); if (isNull(comEventVO.getAppId())){ comEvent.setAppId(loginUser.getAppId()); } return comEventService.insertComEvent(comEvent); } /** * description 更新三说会堂事件表 * * @param comEventVO 对象 * @return R 修改结果对象 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("更新三说会堂事件表") @PostMapping("/update") public R updateComEvent(@RequestBody @Valid ComEventVO comEventVO, @ApiIgnore BindingResult results) { if (results.hasErrors()) { return R.fail(results.getFieldError().getDefaultMessage()); } ComEvent comEvent = CopyUtil.copyProperties(comEventVO, ComEvent.class); return comEventService.updateComEvent(comEvent); } /** * description 根据ID获取三说会堂事件表信息 * * @param id 主键id * @return R comEvent 对象 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("根据ID获取三说会堂事件表信息") @GetMapping("/get/{id}") public R get(@PathVariable(value = "id") String id) { if (StringUtils.isEmpty(id)) { throw new RuntimeException("参数不能为空"); } return R.ok(CopyUtil.copyProperties(comEventService.getById(id), ComEventVO.class)); } /** * description 根据ID获取三说会堂事件表信息 * * @param id 主键id * @return R comEvent 对象 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("根据ID获取三说会堂事件详情信息,返回事件信息和图片信息") @GetMapping("/detail/{id}") public R detail(@PathVariable(value = "id") String id) { if (StringUtils.isEmpty(id)) { throw new RuntimeException("参数不能为空"); } return R.ok(comEventService.detail(id)); } /** * description 查询返回列表数据 * * @param comEventVO 三说会堂事件表对象 * @return R> comEventVO对象列表 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("查询返回列表数据") @PostMapping("/list") public R> listByComEvent(@RequestBody ComEventVO comEventVO) { ComEvent comEvent = CopyUtil.copyProperties(comEventVO, ComEvent.class); return R.ok(CopyUtil.beanCopyList(comEventService.listByComEvent(comEvent,this.getLoginUserInfo()), ComEventVO.class)); } /** * description page 三说会堂事件表分页列表数据 * params [pageNo, pageSize] * * @param comEventVO 对象 * @param pageNo 当前页码 * @param pageSize 每页显示数量 * @return PageResult> 三说会堂事件表分页列表数据 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation(value = "三说会堂事件表分页列表数据", notes = "三说会堂事件表分页列表数据") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNo", value = "当前页码", required = true, dataType = "Long", paramType = "query"), @ApiImplicitParam(name = "pageSize", value = "每页显示数量", required = true, dataType = "Long", paramType = "query") }) @PostMapping("/page") public R page(@RequestBody ComEventVO comEventVO, Long pageNo, Long pageSize) { Page pagination = new Page(pageNo, pageSize); ComEvent comEvent=new ComEvent(); BeanUtils.copyProperties(comEventVO, comEvent); LoginUserInfoVO loginUserInfo = getLoginUserInfo(); if (isNull(comEventVO.getAppId())){ // String appId = userService.detailUser(loginUserInfo.getUserId()).getData().getAppId(); String appId = getAppId(); comEvent.setAppId(appId); } comEvent.setCommunityId(loginUserInfo.getCommunityId()); LoginUserInfoVO loginUserInfo1 = this.getLoginUserInfo(); loginUserInfo1.setType(userService.detailUser(this.getUserId()).getData().getType()); // loginUserInfo1.setType(loginUserInfo.getType()); return comEventService.pageByComEvent(comEvent, pagination,loginUserInfo1); } /** * description 根据ID删除三说会堂事件表 * * @param id 主键id * @return R 删除结果 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("删除三说会堂事件") @ApiImplicitParams( @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long") ) @DeleteMapping("/remove/{id}") public R remove(@PathVariable Long id) { ComEvent comEvent = new ComEvent(); comEvent.setId(id); comEvent.setEventProcessStatus(9); return comEventService.updateComEvent(comEvent); } /** * description 修改三说会堂事件表状态 * * @param id 主键id * @return Result 修改成功和失败 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("修改是否有效状态") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"), @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Boolean") }) @PutMapping("/updateEnabled") public R updateEnabled(@RequestParam("id") Long id, @RequestParam("enabled") Boolean enabled) { return comEventService.updateEnabled(id, enabled); } /** * description 修改三说会堂事件表状态 * * @param id 主键id * @return Result 修改成功和失败 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("取消申请") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"), }) @PutMapping("/cancelRequest") public R cancelRequest(@RequestParam("id") Long id) { return comEventService.cancelRequest(id); } /** * description 修改三说会堂事件表状态 * * @param id 主键id * @return Result 修改成功和失败 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("专家受理") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "事件ID", required = true, dataType = "Long"), @ApiImplicitParam(name = "specterId", value = "专家ID", required = true, dataType = "Long"), }) @PutMapping("/accept/Request") public R acceptRequest(@RequestParam("id") Long id, @RequestParam("specterId") Long specterId) { return comEventService.acceptRequest(id, specterId); } /** * description 修改三说会堂事件表状态 * * @param id 主键id * @return Result 修改成功和失败 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("专家不受理,转其他专家处理") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"), }) @PutMapping("/reject/Request") public R rejectRequest(@RequestParam("id") Long id) { ComEvent comEvent = comEventService.getById(id); comEvent.setEventProcessStatus(SanShuoEventStatusEnum.VALID.getCode()); comEvent.setSpecialistName("待分配"); comEvent.setSpecialistId(null); comEventService.updateEventStransferRecord(id); return R.ok(comEventService.updateById(comEvent)); } /** * description 修改三说会堂事件表状态 * * @param id 主键id * @return Result 修改成功和失败 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("重新指定专家处理") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"), @ApiImplicitParam(name = "specialistId", value = "专家ID", required = true, dataType = "Long") }) @PutMapping("/reappoint/Request") public R reappoint(Long id, Long specialistId) { return comEventService.reappoint(id, specialistId); } /** * description 专家调解处理 * * @param comEventConciliationVO 主键id * @return Result 修改成功和失败 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("专家调解处理") @PutMapping("/conciliation/Request") public R conciliationRequest(@RequestBody ComEventConciliationVO comEventConciliationVO) { return comEventService.conciliationEvent(comEventConciliationVO, getLoginUserInfo()); } /** * description 专家归档 * * @param comEventArchiveVO 归档对象 * @return Result 修改成功和失败 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("事件专家归档") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"), @ApiImplicitParam(name = "result", value = "归档结论", required = true, dataType = "String"), }) @PutMapping("/archive/Request") public R archiveRequest(@RequestBody ComEventArchiveVO comEventArchiveVO) { return comEventService.archiveRequest(comEventArchiveVO, getLoginUserInfo()); } /** * description 事件各种状态(处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消8 已删除)数据统计 * * @return Result 修改成功和失败 * @author manailin * @date 2022-09-07 11:23:51 */ @ApiOperation("事件各种状态(处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消8 已删除)数据统计") @GetMapping("/status/calculate") public R calculate(@RequestParam(value = "level",required = false)Integer level,@RequestParam(value = "id",required = false)Long id) { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); loginUserInfo.setType(userService.detailUser(loginUserInfo.getUserId()).getData().getType()); return comEventService.calculate(loginUserInfo,level,id); } /** * 大屏事件统计 * * @param indexDataDTO 查询参数 */ @PostMapping("/indexData") public R indexData(@RequestBody IndexDateDTO indexDataDTO) { return comEventService.indexData(indexDataDTO); } /** * 大屏事件统计(事件和专家各级别占比) */ @GetMapping("/indexData/event") public R eventIndexData(@RequestParam Integer type) { return comEventService.eventIndexData(type); } /** *可选街道列表 * */ @GetMapping("/streetList") public R getStreetId(){ return comEventService.listStreetScreen(); } /** *可选社区列表 * */ @GetMapping("/communityList") public R getCommunityList(){ return comEventService.listCommunityScreen(); } /** * 获取事件范围筛选列表 * */ @GetMapping("/rangeList") public R rangeList(){ return comSanShuoExpertService.rangeList(); } }