/** * Copyright 2018 人人开源 https://www.renren.io *

* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. *

* This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. *

* You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package com.epmet.controller; import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.enums.RequirePermissionEnum; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.excel.CustomerStaffExcel; import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.send.SendMqMsgUtil; import com.epmet.service.CustomerStaffService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; /** * 政府工作人员表 * * @author generator generator@elink-cn.com * @since v1.0.0 2020-04-18 */ @RestController @RequestMapping("customerstaff") public class CustomerStaffController { @Autowired private CustomerStaffService customerStaffService; @Autowired private LoginUserUtil loginUserUtil; @Autowired private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; @GetMapping("page") public Result> page(@RequestParam Map params) { PageData page = customerStaffService.page(params); return new Result>().ok(page); } @GetMapping("{id}") public Result get(@PathVariable("id") String id) { CustomerStaffDTO data = customerStaffService.get(id); return new Result().ok(data); } @PostMapping public Result save(@RequestBody CustomerStaffDTO dto) { //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); customerStaffService.save(dto); return new Result(); } @PutMapping public Result update(@RequestBody CustomerStaffDTO dto) { //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); customerStaffService.update(dto); return new Result(); } @DeleteMapping public Result delete(@RequestBody String[] ids) { //效验数据 AssertUtils.isArrayEmpty(ids, "id"); customerStaffService.delete(ids); return new Result(); } @GetMapping("export") public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { List list = customerStaffService.list(params); ExcelUtils.exportExcelToTarget(response, null, list, CustomerStaffExcel.class); } /** * @param mobile 手机号 * @return com.epmet.commons.tools.utils.Result * @Author yinzuomei * @Description 根据手机号查询政府端工作人员基本信息,校验用户是否存在 * @Date 2020/4/18 14:07 **/ @GetMapping(value = "getcustsomerstaffbyphone/{mobile}") public Result> getCustsomerStaffByPhone(@PathVariable("mobile") String mobile) { return customerStaffService.getCustsomerStaffByPhone(mobile); } /** * @param formDTO * @return com.epmet.commons.tools.utils.Result * @Author yinzuomei * @Description 根据手机号+客户id获取工作人员基本信息 * @Date 2020/4/20 14:04 **/ @PostMapping(value = "getcustomerstaffinfo") public Result getCustomerStaffInfo(@RequestBody CustomerStaffFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, CustomerStaffFormDTO.GetCustomerStaffInfo.class); return customerStaffService.getCustomerStaffInfo(formDTO); } /** * 根据userId查询网格下用户信息 * @param customerStaffGridDTOS * @return */ @PostMapping(value = "selectstaffgridlistbyuserid") public Result> selectStaffGridListByUserId(@RequestBody List customerStaffGridDTOS){ Result> listResult = customerStaffService.selectStaffGridListByUserId(customerStaffGridDTOS); return listResult; } /** * 根据用户ID获取工作人员基本信息 * * @param formDTO * @return com.epmet.commons.tools.utils.Result * @author zhaoqifeng * @date 2020/4/22 10:05 **/ @PostMapping(value = "getstaffinfobyuserid") public Result getCustomerStaffInfoByUserId(@RequestBody CustomerStaffDTO formDTO) { return customerStaffService.getCustomerStaffInfoByUserId(formDTO); } /** * 组织首页-工作人员列表 * @param fromDTO * @return */ @PostMapping("staffsinagency") public Result> getStaffInfoForHome(@RequestBody StaffsInAgencyFromDTO fromDTO) { return customerStaffService.getStaffInfoForHome(fromDTO); } /** * 工作人员列表 * @param fromDTO * @return */ @PostMapping("stafflist") public Result> getStaffList(@RequestBody StaffsInAgencyFromDTO fromDTO) { return customerStaffService.getStaffList(fromDTO); } /** * 查询网格下未被禁用人员 * @param userIdDTO * @auther zxc */ @PostMapping(value = "selectgridstaffcountbyuserid") public Result selectGridStaffCountByUserId(@RequestBody List userIdDTO){ return customerStaffService.selectGridStaffCountByUserId(userIdDTO); } /** * 人员添加页面初始化 * * @param fromDTO 参数 * @return Result */ @PostMapping("rolelist") public Result> addStaffInit(@RequestBody StaffInfoFromDTO fromDTO){ return customerStaffService.addStaffInit(fromDTO); } /** * 人员编辑页面初始化 * * @param fromDTO 参数 * @return Result */ @PostMapping("editstaffinit") public Result editStaffInit(@RequestBody StaffInfoFromDTO fromDTO){ return customerStaffService.editStaffInit(fromDTO); } /** * 人员添加 * * @param fromDTO 参数 * @return Result */ @PostMapping("addstaff") public Result addStaff(@RequestBody StaffSubmitFromDTO fromDTO){ Result result = customerStaffService.addStaff(fromDTO); //2021-10-18 推送mq,数据同步到中介库 start if (result.success()) { OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); mq.setCustomerId(fromDTO.getCustomerId()); mq.setOrgId(result.getData().getUserId()); mq.setOrgType("staff"); mq.setType("staff_create"); SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); } //2021-10-18 end return result; } /** * 人员添加 * * @param fromDTO 参数 * @return Result */ @PostMapping("addstaffv3") public Result addStaffV3(@RequestBody StaffSubmitV3FromDTO fromDTO){ Result result = customerStaffService.addStaffV3(fromDTO); //2021-10-18 推送mq,数据同步到中介库 start if (result.success()) { OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); mq.setCustomerId(fromDTO.getCustomerId()); mq.setOrgId(result.getData().getUserId()); mq.setOrgType("staff"); mq.setType("staff_create"); SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); } //2021-10-18 end return result; } /** * 人员编辑 * * @param fromDTO 参数 * @return Result */ @PostMapping("editstaff") public Result editStaff(@RequestBody StaffSubmitFromDTO fromDTO){ Result result = customerStaffService.editStaff(fromDTO); //2021-10-18 推送mq,数据同步到中介库 start if (result.success()) { OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); mq.setCustomerId(fromDTO.getCustomerId()); mq.setOrgId(fromDTO.getStaffId()); mq.setOrgType("staff"); mq.setType("staff_change"); SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); } //2021-10-18 end return result; } /** * 人员编辑 * * @param fromDTO 参数 * @return Result */ @PostMapping("editstaffv3") public Result editStaffV3(@RequestBody StaffSubmitV3FromDTO fromDTO){ Result result = customerStaffService.editStaffV3(fromDTO); //2021-10-18 推送mq,数据同步到中介库 start if (result.success()) { OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); mq.setCustomerId(fromDTO.getCustomerId()); mq.setOrgId(fromDTO.getStaffId()); mq.setOrgType("staff"); mq.setType("staff_change"); SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); } //2021-10-18 end return result; } /** * 人员详情 * * @param fromDTO 参数 * @return Result */ @PostMapping("staffdetail") public Result getStaffDetail(@RequestBody StaffInfoFromDTO fromDTO){ return customerStaffService.getStaffDetail(fromDTO); } /** * 人员禁用 * * @param fromDTO 参数 * @return Result */ @PostMapping("disabledstaff") public Result disabledStaff(@RequestBody StaffInfoFromDTO fromDTO){ return customerStaffService.disabledStaff(fromDTO); } /** * @param fromDTO * @return * @Author sun * @Description 根据客户Id及userId集合查询用户基本信息 */ @PostMapping("getdepartmentstafflist") public Result> getDepartmentStaffList(@RequestBody DepartmentInStaffFormDTO fromDTO) { return customerStaffService.getDepartmentStaffList(fromDTO); } /** * @Description 通过userId列表查询未被禁用的用户信息 * @Param CommonUserIdListFormDTO :: getUserIdList * @return Result> * @Author wangc * @Date 2020.04.24 15:44 **/ @PostMapping(value = "enabestaffmsglist") public Result> enableStaffMsgList(@RequestBody CommonUserIdListFormDTO userIdList){ ValidatorUtils.validateEntity(userIdList); return customerStaffService.getEnableStaffMsgList(userIdList); } /** * @param staffIdList * @return * @Author sun * @Description 根据staffId集合查询工作人员基础信息 **/ @PostMapping(value = "getcustomerstafflist") public Result getCustomerStaffList(@RequestBody List staffIdList){ return new Result().ok(customerStaffService.getCustomerStaffList(staffIdList)); } /** * @param staffId * @return * @Author sun * @Description 根据staffId查询工作人员基本信息 **/ @PostMapping(value = "getcustomerstaff/{staffId}") public Result getCustomerStaff(@PathVariable("staffId") String staffId){ return new Result().ok(customerStaffService.getCustomerStaff(staffId)); } /** * @return com.epmet.commons.tools.utils.Result * @param staffResetPwFormDTO * @author yinzuomei * @description 工作端,修改工作人员密码 * @Date 2020/7/1 10:39 **/ @PostMapping("resetstaffpassword") public Result resetStaffPassword(@RequestBody StaffResetPwFormDTO staffResetPwFormDTO){ ValidatorUtils.validateEntity(staffResetPwFormDTO,StaffResetPwFormDTO.AddUserShowGroup.class,StaffResetPwFormDTO.AddUserInternalGroup.class); customerStaffService.resetStaffPassword(staffResetPwFormDTO); return new Result(); } /** * @Description 得到工组人员的头像、名称、所属机关名称 * @param userId * @return * @author wangc * @date 2020.07.27 14:45 **/ @PostMapping("staffmsg") public Result staffMsg(@RequestBody IssueInitiatorFormDTO userId){ ValidatorUtils.validateEntity(userId, IssueInitiatorFormDTO.UserIdGroup.class); return new Result().ok(customerStaffService.getStaffMsg(userId)); } /** * @param formDTO * @return * @Author sun * @Description 根据客户ID、手机号查询政府端工作人员基本信息,校验用户是否存在 **/ @GetMapping(value = "getCustsomerStaffByIdAndPhone") public Result> getCustsomerStaffByIdAndPhone(@RequestBody ThirdCustomerStaffFormDTO formDTO) { return new Result>().ok(customerStaffService.getCustsomerStaffByIdAndPhone(formDTO)); } @GetMapping(value = "getCustsomerStaffByIdAndAccount") public Result> getCustsomerStaffByIdAndAccount(@RequestBody ThirdAccountCustomerStaffFormDTO formDTO) { return new Result>().ok(customerStaffService.getCustsomerStaffByIdAndAccount(formDTO)); } /** * @Description 查询工作人员的信息 * @param formDTO * @author zxc * @date 2020/8/13 1:45 下午 */ @PostMapping("getstaffinfolist") public Result> getStaffInfoList(@RequestHeader("customerId") String customerId,@RequestBody UserIdsFormDTO formDTO){ formDTO.setCustomerId(customerId); ValidatorUtils.validateEntity(formDTO); return new Result>().ok(customerStaffService.getStaffInfoList(formDTO)); } /** * @Description 查找工作人员的信息 - 对外开放接口 * @param staffParam * @return * @author wangc * @date 2020.08.17 10:30 **/ @PostMapping("extstaffinfo") public Result extStaffInfo(@RequestBody CommonStaffIdFormDTO staffParam){ ValidatorUtils.validateEntity(staffParam, CommonStaffIdFormDTO.StaffIdGroup.class); return new Result().ok(customerStaffService.extStaffInfo(staffParam)); } /** * 修改根管理员信息 * @author zhaoqifeng * @date 2020/8/19 14:31 * @param formDTO * @return com.epmet.commons.tools.utils.Result */ @PostMapping("updaterootmanage") public Result updateRootManage(@RequestBody UpdateRootManageFormDTO formDTO) { customerStaffService.updateRootManage(formDTO); return new Result(); } /** * 查询登陆用户客户列表(工作端) * 根据手机号查询customer_staff表数据,在根据查询到的数据的userId判断是不是根管理员,最后将同一手机号对应的客户列表且该手机都是根管理员的客户列表返给前端 * * @param formDTO * @return com.epmet.commons.tools.utils.Result> * @Author zhangyong * @Date 10:03 2020-08-25 **/ @PostMapping(value = "customerlist") public Result> customerList(@RequestBody CustomerListFormDTO formDTO){ return customerStaffService.selectCustomerList(formDTO); } /** * 获取pc工作端登陆用户信息 * 根据token中userId,去查询登陆用户基本信息 * @param tokenDTO * @return com.epmet.commons.tools.utils.Result * @Author zhangyong * @Date 11:09 2020-08-25 **/ @PostMapping(value = "staffbasicinfo") public Result staffBasicInfo(@LoginUser TokenDto tokenDTO){ return customerStaffService.selectStaffBasicInfo(tokenDTO.getUserId(),tokenDTO.getCustomerId()); } /** * @param formDTO * @return * @Author sun * @Description PC工作端登陆-根据客户Id和手机号查询登陆用户信息 **/ @PostMapping("getstaffidandpwd") public Result getStaffIdAndPwd(@RequestBody GovWebOperLoginFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); return new Result().ok(customerStaffService.getStaffIdAndPwd(formDTO)); } /** * 根据staffId查询用户基本信息 * @author sun */ @PostMapping("getstaffbasicinfo") public Result getStaffBasicInfo(@RequestBody StaffBasicInfoFromDTO fromDTO){ return new Result().ok(customerStaffService.getStaffBasicInfo(fromDTO)); } /** * @Description 通用列表查询。可以指定customerId,如果指定了,则使用指定的,如果未指定,则使用当前登录用户的customerId * @return * @author wxz * @date 2021.06.08 10:54 */ @PostMapping("list") public Result> list(@RequestBody CustomerStaffFormDTO input) { List staffs = customerStaffService.list(input.getCustomerId(), input.getRealName(), input.getMobile(), input.getUserIds()); return new Result>().ok(staffs); } /** * 【通讯录】工作人员解禁 * @author sun */ @PostMapping("enablestaff") @RequirePermission(requirePermission = RequirePermissionEnum.ORG_STAFF_ENABLE) public Result enableStaff(@LoginUser TokenDto tokenDto, @RequestBody EnableStaffFormDTO fromDTO){ if (tokenDto.getUserId().equals(fromDTO.getStaffId())) { throw new RenException("工作人员自己不能解禁自己"); } customerStaffService.enableStaff(fromDTO); return new Result(); } /** * @Author sun * @Description 根据工作人员姓名批量查询基础信息数据 **/ @PostMapping(value = "getbyrealnames") public Result> getByRealNames(@RequestBody GetByRealNamesFormDTO formDTO) { return new Result>().ok(customerStaffService.getByRealNames(formDTO)); } /** * @Author sun * @Description 【事件】网格员服务电话 **/ @PostMapping(value = "gridmobilelist") public Result> gridMobileList(@LoginUser TokenDto tokenDto, @RequestBody GridMobileListFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, GridMobileListFormDTO.Gridobile.class); return new Result>().ok(customerStaffService.gridMobileList(formDTO.getGridId(), tokenDto.getUserId())); } }