package com.thhy.staff.modules.biz.group.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.api.utils.StringUtils; import com.github.pagehelper.PageInfo; import com.thhy.general.annotations.Excel; import com.thhy.general.common.BasicResult; import com.thhy.general.common.BasicStatus; import com.thhy.general.config.GlobalConfig; import com.thhy.general.exception.BasicException; import com.thhy.general.utils.ExcelUtils; import com.thhy.general.utils.PagingUtils; import com.thhy.staff.modules.biz.group.entity.*; import com.thhy.staff.modules.biz.platuser.entity.PlatUser; import com.thhy.staff.modules.biz.platuser.service.PlatUserService; import org.redisson.api.RBucket; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import com.thhy.staff.modules.biz.group.service.GroupService; import java.util.HashMap; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.RestController; /** * @author zhang_xiao_bo * @since 2023-03-31 13:25:03 */ @RestController @RequestMapping("group") public class GroupController { @Autowired private GroupService groupService; @Autowired private PlatUserService platUserService; @Autowired private RedissonClient redissonClient; @Autowired private GlobalConfig globalConfig; @RequestMapping("findList") public BasicResult findList(@RequestBody(required = false) Group group,HttpServletRequest req){ PagingUtils.setPageParam(req); List groupList = groupService.findList(group); PageInfo pageInfo = new PageInfo<>(groupList); return BasicResult.success(pageInfo); } @RequestMapping("pulldown") public BasicResult pulldown(){ List> groupList = groupService.pulldown(); return BasicResult.success(groupList); } @RequestMapping("export") public void export(String authcode, HttpServletResponse rsp){ RBucket rBucket = redissonClient.getBucket(globalConfig.getFilePreKey()+":authcode:"+authcode); String param = rBucket.getAndDelete(); if(StringUtils.isEmpty(param)){ throw new BasicException(BasicStatus.TOKEN_IS_NULL); } JSONObject jsonObject = JSON.parseObject(param); Group group = JSON.toJavaObject(jsonObject,Group.class); List groupList = groupService.findList(group); ExcelUtils.downExcel(groupList,GroupListVo.class,rsp,"班组列表"); } @RequestMapping("addGroup") public BasicResult addGroup(@RequestBody Group group){ groupService.addGroup(group); return BasicResult.success(); } /** @RequestMapping("update") public BasicResult update(@RequestBody Group group){ groupService.update(group); return BasicResult.success(); }**/ @RequestMapping("delete") public BasicResult delete(@RequestBody Group group){ groupService.delete(group.getGroupId()); return BasicResult.success(); } @RequestMapping("groupUserList") public BasicResult groupUserList(@RequestBody(required = false) GroupUserDto groupUserDto,HttpServletRequest req){ PagingUtils.setPageParam(req); List groupList = groupService.groupUserList(groupUserDto); PageInfo pageInfo = new PageInfo<>(groupList); return BasicResult.success(pageInfo); } @RequestMapping("groupUserExport") public void groupUserExport(String authcode,HttpServletResponse rsp){ RBucket rBucket = redissonClient.getBucket(globalConfig.getFilePreKey()+":authcode:"+authcode); String param = rBucket.getAndDelete(); if(StringUtils.isEmpty(param)){ throw new BasicException(BasicStatus.TOKEN_IS_NULL); } Group group = JSON.toJavaObject(JSON.parseObject(param),Group.class); GroupListVo groupListVo = groupService.queryGroupInfo(new Group().setGroupId(group.getGroupId())); List groupList = groupService.groupUserList(new GroupUserDto().setGroupId(group.getGroupId())); String fileName = groupListVo.getGroupName()+"-成员"+groupListVo.getGroupUserCount()+"人列表"; ExcelUtils.downExcel(groupList,GroupPlatUserVo.class,rsp,fileName); } @RequestMapping("groupUserDelete") public BasicResult groupUserDelete(@RequestBody(required = false) GroupUser groupUser, HttpServletRequest req){ groupService.groupUserDelete(groupUser); return BasicResult.success(); } @RequestMapping("groupUserAdd") public BasicResult groupUserAdd(@RequestBody(required = false) GroupUserDto groupUserDto, HttpServletRequest req){ groupService.groupUserAdd(groupUserDto); return BasicResult.success(); } @RequestMapping("setGroupAdmin") public BasicResult setGroupAdmin(@RequestBody(required = false) GroupUser groupUser, HttpServletRequest req){ groupService.setGroupAdmin(groupUser); PlatUser platUser = platUserService.get(groupUser.getUserId()); return BasicResult.success(platUser.getRealName()); } @RequestMapping("cancelGroupAdmin") public BasicResult cancelGroupAdmin(@RequestBody(required = false) GroupUser groupUser, HttpServletRequest req){ groupService.cancelGroupAdmin(groupUser); return BasicResult.success(); } }