package com.xzx.gc.user.controller; import cn.hutool.core.convert.Convert; import com.github.pagehelper.PageInfo; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.dto.log.OperationAppLog; import com.xzx.gc.common.request.BaseController; import com.xzx.gc.common.utils.MqUtil; import com.xzx.gc.common.utils.RedisUtil; import com.xzx.gc.entity.UserRole; import com.xzx.gc.model.JsonResult; import com.xzx.gc.model.admin.AppRoleModel; import com.xzx.gc.model.admin.PunchChannelModel; import com.xzx.gc.model.dto.FunctionNodeView; import com.xzx.gc.model.query.XzxUserRoleInfoQuery; import com.xzx.gc.user.service.UserAuthService; import com.xzx.gc.user.service.UserRoleService; import com.xzx.gc.user.service.UserService; import com.xzx.gc.util.ConvertUtil; import com.xzx.gc.util.PageQuery; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.List; /** * 用户管理 */ //@Controller @RestController @Api(tags = "APP角色管理") public class AppManagementController extends BaseController { private static final String MODEL = "/admin/front/app"; @Autowired private UserService userService; @Autowired private MqUtil mqUtil; @Autowired RedisUtil redisService; @Autowired private UserRoleService userRoleService; @Autowired private UserAuthService userAuthService; static SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @PostMapping( "/admin/front/app/appRoleList.do") @ApiOperation(value="APP管理-角色管理", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "limit", value = "每页条数", required = true, dataType = "int") }) public JsonResult> appRoleList(@RequestBody XzxUserRoleInfoQuery condtion) { PageQuery page = condtion.getPageQuery(); PageInfo pageInfo = userRoleService.queryByCondition(page); return JsonResult.successx(pageInfo.getList(),Convert.toStr(pageInfo.getTotal())); } @PostMapping( "/admin/front/app/tree.json") @ApiOperation(value="APP管理-角色管理(构造树型结构列表)", notes="test: 仅0有正确返回") public JsonResult> getFunctionTree() { List tree =userAuthService.buildViewList(); return JsonResult.success(tree); } @PostMapping( "/admin/front/app/add.json") @ApiOperation(value="APP管理-角色管理(添加角色)", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "authIds", value = "权限ID集合", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "roleName", value = "角色名称", required = true, dataType = "String") }) public JsonResult add(@RequestBody UserRole xzxUserRoleInfo, HttpServletRequest request) { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY)-1); String dataNow = sdf3.format(calendar.getTime()); xzxUserRoleInfo.setDelFlag("0"); xzxUserRoleInfo.setCreateTime(dataNow); String[] strs = xzxUserRoleInfo.getAuthIds().split(","); StringBuffer buf = new StringBuffer(); for (String str:strs) { if(Integer.parseInt(str)<10000){ buf.append(str).append(","); } } if(null!=buf.toString()&&!"".equals(buf.toString())){ String bufStr = buf.toString().substring(0,buf.toString().length()-1); xzxUserRoleInfo.setAuthIds(bufStr); } UserRole roleInfo = userRoleService.queryMaxAppRole(); String userType = roleInfo.getRoleCode(); xzxUserRoleInfo.setRoleCode((Integer.parseInt(userType)+1)+""); userRoleService.save(xzxUserRoleInfo); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.USER_MODUL_NAME).operateAction("添加角色-"+xzxUserRoleInfo.getId()).build(); mqUtil.sendApp(build); return new JsonResult().success(); } @PostMapping( "/admin/front/app/edit.json") @ApiOperation(value="APP管理-角色管理(修改角色)", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "角色表Id", required = true, dataType = "Long"), @ApiImplicitParam(paramType="query", name = "authIds", value = "权限ID集合", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "roleName", value = "角色名称", required = true, dataType = "String") }) public JsonResult update(@RequestBody UserRole xzxUserRoleInfo,HttpServletRequest request) { UserRole roleInfo = userRoleService.queryById(xzxUserRoleInfo.getId()); Calendar calendar = Calendar.getInstance(); if(roleInfo==null){ return JsonResult.failMessage("保存失败"); } if(null!=xzxUserRoleInfo.getAuthIds()){ String[] strs = xzxUserRoleInfo.getAuthIds().split(","); StringBuffer buf = new StringBuffer(); for (String str:strs) { if(Integer.parseInt(str)<10000){ buf.append(str).append(","); } } if(null!=buf.toString()&&!"".equals(buf.toString())){ String bufStr = buf.toString().substring(0,buf.toString().length()-1); roleInfo.setAuthIds(bufStr); } String dataNow = sdf3.format(calendar.getTime()); roleInfo.setDelFlag("0"); roleInfo.setUpdateTime(dataNow); } boolean success = userRoleService.update(roleInfo); if (success) { OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.USER_MODUL_NAME).operateAction("修改角色-"+xzxUserRoleInfo.getId()).build(); mqUtil.sendApp(build); return new JsonResult().success(); } else { return JsonResult.failMessage("保存失败"); } } @PostMapping(MODEL + "/delete.json") @ResponseBody @ApiOperation(value="APP管理-角色管理(删除角色)", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "ids", value = "角色表Id集合(多个角色用逗号隔开)", required = true, dataType = "String") }) public JsonResult delete(@RequestBody AppRoleModel model,HttpServletRequest request) { String ids = model.getIds(); if (ids.endsWith(",")) { ids = StringUtils.substringBeforeLast(ids, ","); } List idList = ConvertUtil.str2longs(ids); userRoleService.batchDelXzxUserRoleInfo(idList); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.USER_MODUL_NAME).operateAction("删除角色-"+model.getIds()).build(); mqUtil.sendApp(build); return new JsonResult().success(); } @GetMapping(MODEL + "/view.json") @ResponseBody @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "角色表Id", required = true, dataType = "String") }) public JsonResult queryInfo(@RequestBody AppRoleModel model) { Long id = model.getId(); UserRole xzxUserRoleInfo = userRoleService.queryById(id); return JsonResult.success(xzxUserRoleInfo); } @PostMapping(MODEL + "/queryPunchChannel.do") @ResponseBody @ApiOperation(value="APP管理-打卡通道", notes="test: 仅0有正确返回") public JsonResult queryPunchChannel() { String value = userRoleService.queryPunchChannel(); return JsonResult.success(value); } @PostMapping(MODEL + "/updatePunchChannel.json") @ResponseBody @ApiOperation(value="APP管理-打卡通道(保存)", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "status", value = "打卡通道状态(0:打开,1:关闭)", required = true, dataType = "String") }) public JsonResult updatePunchChannel (@RequestBody PunchChannelModel model,HttpServletRequest request) { userRoleService.updatePunchChannel(model); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.USER_MODUL_NAME).operateAction("修改配置打卡通道-CODE_SCAN_RK").build(); mqUtil.sendApp(build); return new JsonResult().success(); } }