Here are the examples of the java api @org.springframework.stereotype.Controller taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
8489 Examples
19
View Source File : UserController.java
License : MIT License
Project Creator : zzzzbw
License : MIT License
Project Creator : zzzzbw
/**
* @author zbw
* @create 2018/4/22 10:27
*/
@Controller
public clreplaced UserController {
@GetMapping("user")
public String user(Model model) {
List<User> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
User user = new User();
user.setId(i);
user.setName("user" + i);
user.setCreate(new Date());
list.add(user);
}
model.addAttribute("list", list);
return "system/user";
}
}
19
View Source File : ShopController.java
License : MIT License
Project Creator : zzzzbw
License : MIT License
Project Creator : zzzzbw
/**
* @author zbw
* @create 2018/4/22 10:21
*/
@I18n("shop")
@Controller
public clreplaced ShopController {
@GetMapping("shop")
public String shop(Model model) {
List<Shop> list = new ArrayList<>();
Merchant merchant1 = new Merchant();
merchant1.setName("merchant1");
Merchant merchant2 = new Merchant();
merchant2.setName("merchant2");
for (int i = 0; i < 10; i++) {
Shop shop = new Shop();
shop.setId(i);
shop.setNumber(500 + i);
if (i % 2 == 0) {
shop.setMerchant(merchant1);
} else {
shop.setMerchant(merchant2);
}
shop.setName("shop" + i);
shop.setCreate(new Date());
list.add(shop);
}
model.addAttribute("list", list);
return "system/shop";
}
}
19
View Source File : HomeController.java
License : MIT License
Project Creator : zzh1991
License : MIT License
Project Creator : zzh1991
/**
* @author zhihao zhang
* @since 2019-03-18
*/
@Controller
public clreplaced HomeController {
@GetMapping(value = "/")
public String index() {
return "index";
}
}
19
View Source File : DefaultExceptionHandlerConfig.java
License : GNU Affero General Public License v3.0
Project Creator : zycSummer
License : GNU Affero General Public License v3.0
Project Creator : zycSummer
/**
* 自定义错误处理器
* @author LGH
*/
@Controller
@RestControllerAdvice
public clreplaced DefaultExceptionHandlerConfig {
@ExceptionHandler(BindException.clreplaced)
public ResponseEnreplacedy<String> bindExceptionHandler(BindException e) {
e.printStackTrace();
return ResponseEnreplacedy.status(HttpStatus.BAD_REQUEST).body(e.getBindingResult().getFieldErrors().get(0).getDefaultMessage());
}
@ExceptionHandler(MethodArgumentNotValidException.clreplaced)
public ResponseEnreplacedy<String> methodArgumentNotValidExceptionHandler(MethodArgumentNotValidException e) {
e.printStackTrace();
return ResponseEnreplacedy.status(HttpStatus.BAD_REQUEST).body(e.getBindingResult().getFieldErrors().get(0).getDefaultMessage());
}
@ExceptionHandler(YamiShopBindException.clreplaced)
public ResponseEnreplacedy<String> unauthorizedExceptionHandler(YamiShopBindException e) {
e.printStackTrace();
return ResponseEnreplacedy.status(e.getHttpStatusCode()).body(e.getMessage());
}
}
19
View Source File : OrderController.java
License : GNU Affero General Public License v3.0
Project Creator : zycSummer
License : GNU Affero General Public License v3.0
Project Creator : zycSummer
/**
* @author lgh on 2018/09/15.
*/
@Controller
@RequestMapping("/order/order")
public clreplaced OrderController {
@Autowired
private OrderService orderService;
@Autowired
private OrderItemService orderItemService;
@Autowired
private UserAddrOrderService userAddrOrderService;
@Autowired
private ProductService productService;
@Autowired
private SkuService skuService;
/**
* 分页获取
*/
@GetMapping("/page")
@PreAuthorize("@pms.hasPermission('order:order:page')")
public ResponseEnreplacedy<IPage<Order>> page(OrderParam orderParam, PageParam<Order> page) {
Long shopId = SecurityUtils.getSysUser().getShopId();
orderParam.setShopId(shopId);
IPage<Order> orderIPage = orderService.pageOrdersDetialByOrderParam(page, orderParam);
return ResponseEnreplacedy.ok(orderIPage);
}
/**
* 获取信息
*/
@GetMapping("/orderInfo/{orderNumber}")
@PreAuthorize("@pms.hasPermission('order:order:info')")
public ResponseEnreplacedy<Order> info(@PathVariable("orderNumber") String orderNumber) {
Long shopId = SecurityUtils.getSysUser().getShopId();
Order order = orderService.getOrderByOrderNumber(orderNumber);
if (!Objects.equal(shopId, order.getShopId())) {
throw new YamiShopBindException("您没有权限获取该订单信息");
}
List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(orderNumber);
order.setOrderItems(orderItems);
UserAddrOrder userAddrOrder = userAddrOrderService.getById(order.getAddrOrderId());
order.setUserAddrOrder(userAddrOrder);
return ResponseEnreplacedy.ok(order);
}
/**
* 发货
*/
@PutMapping("/delivery")
@PreAuthorize("@pms.hasPermission('order:order:delivery')")
public ResponseEnreplacedy<Void> delivery(@RequestBody DeliveryOrderParam deliveryOrderParam) {
Long shopId = SecurityUtils.getSysUser().getShopId();
Order order = orderService.getOrderByOrderNumber(deliveryOrderParam.getOrderNumber());
if (!Objects.equal(shopId, order.getShopId())) {
throw new YamiShopBindException("您没有权限修改该订单信息");
}
Order orderParam = new Order();
orderParam.setOrderId(order.getOrderId());
orderParam.setDvyId(deliveryOrderParam.getDvyId());
orderParam.setDvyFlowId(deliveryOrderParam.getDvyFlowId());
orderParam.setDvyTime(new Date());
orderParam.setStatus(OrderStatus.CONSIGNMENT.value());
orderParam.setUserId(order.getUserId());
orderService.delivery(orderParam);
List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(deliveryOrderParam.getOrderNumber());
for (OrderItem orderItem : orderItems) {
productService.removeProductCacheByProdId(orderItem.getProdId());
skuService.removeSkuCacheBySkuId(orderItem.getSkuId(), orderItem.getProdId());
}
return ResponseEnreplacedy.ok().build();
}
/**
* 打印待发货的订单表
*
* @param order
* @param consignmentName 发件人姓名
* @param consignmentMobile 发货人手机号
* @param consignmentAddr 发货地址
*/
@GetMapping("/waitingConsignmentExcel")
@PreAuthorize("@pms.hasPermission('order:order:waitingConsignmentExcel')")
public void waitingConsignmentExcel(Order order, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime, String consignmentName, String consignmentMobile, String consignmentAddr, HttpServletResponse response) {
Long shopId = SecurityUtils.getSysUser().getShopId();
order.setShopId(shopId);
order.setStatus(OrderStatus.PADYED.value());
List<Order> orders = orderService.listOrdersDetialByOrder(order, startTime, endTime);
// 通过工具类创建writer
ExcelWriter writer = ExcelUtil.getWriter();
Sheet sheet = writer.getSheet();
sheet.setColumnWidth(0, 20 * 256);
sheet.setColumnWidth(1, 20 * 256);
sheet.setColumnWidth(2, 20 * 256);
sheet.setColumnWidth(3, 60 * 256);
sheet.setColumnWidth(4, 60 * 256);
sheet.setColumnWidth(7, 60 * 256);
sheet.setColumnWidth(8, 60 * 256);
sheet.setColumnWidth(9, 60 * 256);
// 待发货
String[] hearder = { "订单编号", "收件人", "手机", "收货地址", "商品名称", "数量", "发件人姓名", "发件人手机号", "发货地址", "备注" };
writer.merge(hearder.length - 1, "发货信息整理");
writer.writeRow(Arrays.asList(hearder));
int row = 1;
for (Order dbOrder : orders) {
UserAddrOrder addr = dbOrder.getUserAddrOrder();
String addrInfo = addr.getProvince() + addr.getCity() + addr.getArea() + addr.getAddr();
List<OrderItem> orderItems = dbOrder.getOrderItems();
row++;
for (OrderItem orderItem : orderItems) {
// 第0列开始
int col = 0;
writer.writeCellValue(col++, row, dbOrder.getOrderNumber());
writer.writeCellValue(col++, row, addr.getReceiver());
writer.writeCellValue(col++, row, addr.getMobile());
writer.writeCellValue(col++, row, addrInfo);
writer.writeCellValue(col++, row, orderItem.getProdName());
writer.writeCellValue(col++, row, orderItem.getProdCount());
writer.writeCellValue(col++, row, consignmentName);
writer.writeCellValue(col++, row, consignmentMobile);
writer.writeCellValue(col++, row, consignmentAddr);
writer.writeCellValue(col++, row, dbOrder.getRemarks());
}
}
writeExcel(response, writer);
}
/**
* 已销售订单
*
* @param order
*/
@GetMapping("/soldExcel")
@PreAuthorize("@pms.hasPermission('order:order:soldExcel')")
public void soldExcel(Order order, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime, HttpServletResponse response) {
Long shopId = SecurityUtils.getSysUser().getShopId();
order.setShopId(shopId);
order.setIsPayed(1);
List<Order> orders = orderService.listOrdersDetialByOrder(order, startTime, endTime);
// 通过工具类创建writer
ExcelWriter writer = ExcelUtil.getWriter();
// 待发货
String[] hearder = { "订单编号", "下单时间", "收件人", "手机", "收货地址", "商品名称", "数量", "订单应付", "订单运费", "订单实付" };
Sheet sheet = writer.getSheet();
sheet.setColumnWidth(0, 20 * 256);
sheet.setColumnWidth(1, 20 * 256);
sheet.setColumnWidth(3, 20 * 256);
sheet.setColumnWidth(4, 60 * 256);
sheet.setColumnWidth(5, 60 * 256);
writer.merge(hearder.length - 1, "销售信息整理");
writer.writeRow(Arrays.asList(hearder));
int row = 1;
for (Order dbOrder : orders) {
UserAddrOrder addr = dbOrder.getUserAddrOrder();
String addrInfo = addr.getProvince() + addr.getCity() + addr.getArea() + addr.getAddr();
List<OrderItem> orderItems = dbOrder.getOrderItems();
int firstRow = row + 1;
int lastRow = row + orderItems.size();
int col = -1;
// 订单编号
mergeIfNeed(writer, firstRow, lastRow, ++col, col, dbOrder.getOrderNumber());
// 下单时间
mergeIfNeed(writer, firstRow, lastRow, ++col, col, dbOrder.getCreateTime());
// 收件人
mergeIfNeed(writer, firstRow, lastRow, ++col, col, addr.getReceiver());
// "手机"
mergeIfNeed(writer, firstRow, lastRow, ++col, col, addr.getMobile());
// "收货地址"
mergeIfNeed(writer, firstRow, lastRow, ++col, col, addrInfo);
int prodNameCol = ++col;
int prodCountCol = ++col;
for (OrderItem orderItem : orderItems) {
row++;
// 商品名称
writer.writeCellValue(prodNameCol, row, orderItem.getProdName());
// 数量
writer.writeCellValue(prodCountCol, row, orderItem.getProdCount());
}
// 订单应付
mergeIfNeed(writer, firstRow, lastRow, ++col, col, dbOrder.getTotal());
// 订单运费
mergeIfNeed(writer, firstRow, lastRow, ++col, col, dbOrder.getFreightAmount());
// 订单实付
mergeIfNeed(writer, firstRow, lastRow, ++col, col, dbOrder.getActualTotal());
}
writeExcel(response, writer);
}
/**
* 如果需要合并的话,就合并
*/
private void mergeIfNeed(ExcelWriter writer, int firstRow, int lastRow, int firstColumn, int lastColumn, Object content) {
if (lastRow - firstRow > 0 || lastColumn - firstColumn > 0) {
writer.merge(firstRow, lastRow, firstColumn, lastColumn, content, false);
} else {
writer.writeCellValue(firstColumn, firstRow, content);
}
}
private void writeExcel(HttpServletResponse response, ExcelWriter writer) {
// response为HttpServletResponse对象
response.setContentType("application/vnd.ms-excel;charset=utf-8");
// test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response.setHeader("Content-Disposition", "attachment;filename=1.xls");
ServletOutputStream servletOutputStream = null;
try {
servletOutputStream = response.getOutputStream();
writer.flush(servletOutputStream);
servletOutputStream.flush();
} catch (IORuntimeException | IOException e) {
e.printStackTrace();
} finally {
writer.close();
try {
if (servletOutputStream != null) {
servletOutputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
19
View Source File : GeneratorController.java
License : Apache License 2.0
Project Creator : zuihou
License : Apache License 2.0
Project Creator : zuihou
/**
* 常用Controller
*
* @author zuihou
* @date 2019-06-21 18:22
*/
@Controller
public clreplaced GeneratorController {
/**
* 解决swagger-bootstrap-ui的一个bug:
* <p>
* 将swagger发起的请求:
* http://127.0.0.1:8760/api/gate/api/authority/v2/api-docs?group=%E5%85%AC%E5%85%B1%E6%A8%A1%E5%9D%97
* 从定向到:
* http://127.0.0.1:8760/api/authority/v2/api-docs?group=%E5%85%AC%E5%85%B1%E6%A8%A1%E5%9D%97
*
* <p>
* 有个前提: nginx的端口要和访问端口一致,否则重定向出错
*
* @param service 服务
* @param group 组
* @param ext uri 后缀
*/
@ApiOperation(value = "获取指定服务的swagger", notes = "获取当前系统所有数据字典和枚举")
@GetMapping("${server.servlet.context-path}/{service}/v2/{ext}")
public String apiDocs(@PathVariable String service, @PathVariable String ext, String group) throws Exception {
if (group == null) {
group = "default";
}
String newGroup = group;
if (group.contains(StrPool.DASH)) {
newGroup = StrUtil.subSuf(group, group.indexOf(StrPool.DASH) + 1);
}
return "redirect:/" + service + "/v2/" + ext + "?group=" + URLEncoder.encode(newGroup, "UTF-8");
}
}
19
View Source File : GeneratorController.java
License : Apache License 2.0
Project Creator : zuihou
License : Apache License 2.0
Project Creator : zuihou
/**
* 常用Controller
*
* @author zuihou
* @date 2019-06-21 18:22
*/
@Controller
public clreplaced GeneratorController {
@Value("${server.servlet.context-path:}")
private String contextPath;
/**
* 兼容zuul 文档
*/
@GetMapping("/gate/doc.html")
public Rendering doc() {
String uri = String.format("%s/doc.html", contextPath);
return Rendering.redirectTo(uri).build();
}
}
19
View Source File : SysPermissionCol.java
License : Apache License 2.0
Project Creator : ztgreat
License : Apache License 2.0
Project Creator : ztgreat
/**
* 权限资源文件管理
*/
@Controller
@RequestMapping(value = "/api/permission")
public clreplaced SysPermissionCol {
@Autowired
private SysPermissionService sysPermissionService;
/**
* 指定资源权限树
* @param parentId
* @return
*/
@RequestMapping(value = "/page")
@ResponseBody
public ResponsePage<PermissionTreeIns> getPermissionTree(@RequestParam(value = "current", defaultValue = "1") int current, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize, @RequestParam(value = "parentId", defaultValue = "0") Integer parentId) {
ResponsePage<PermissionTreeIns> res = new ResponsePage<PermissionTreeIns>();
try {
IPage<PermissionTreeIns> page = sysPermissionService.getPermissionTree(current, pageSize, parentId);
List<PermissionTreeIns> permissionTree = page.getRecords();
setTree(permissionTree);
res.setPage(page);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "获取权限树失败:" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
// 保存或者更新
@RequestMapping(value = "/saveOrUpdate", method = RequestMethod.POST)
@ResponseBody
public ResponseEnreplacedy<String> saveOrUpdate(@RequestBody SysPermission permission) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<String>();
try {
String s = sysPermissionService.savePermission(permission);
res.success(s);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "权限资源保存失败:" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
// 删除
@RequestMapping(value = "/deleteBatch")
@ResponseBody
public ResponseEnreplacedy<String> deleteBatch(@RequestBody Map<String, Object> param) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<>();
List<String> ids = (List<String>) param.get("ids");
try {
String msg = sysPermissionService.deleteBatch(ids);
res.success(msg);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "删除权限资源:" + e.getMessage());
res.failure("该权限可能存在数据关联,暂时无法删除");
}
return res;
}
/**
* 指定资源权限树
* @param parentId
* @return
*/
@RequestMapping(value = "/getPermissionByParentId")
@ResponseBody
public ResponseList<PermissionTreeIns> getPermissionTree(@RequestParam(value = "parentId", defaultValue = "0") Integer parentId) {
ResponseList<PermissionTreeIns> res = new ResponseList<PermissionTreeIns>();
try {
List<PermissionTreeIns> permissionTree = sysPermissionService.getPermissionTree(parentId);
res.setData(permissionTree);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "获取权限树失败:" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
/**
* 设置权限树 状态(设置 是否选中)
* @param trees 菜单树
* @param trees 具有权限的菜单
*/
private boolean setTree(List<PermissionTreeIns> trees) {
if (trees == null || trees.isEmpty())
return false;
boolean flag = false;
for (PermissionTreeIns tree : trees) {
if (tree.getChildren() != null && !tree.getChildren().isEmpty()) {
tree.setIsParent(true);
if (setTree(tree.getChildren())) {
tree.setChecked(true);
}
}
}
return flag;
}
}
19
View Source File : LoginCol.java
License : Apache License 2.0
Project Creator : ztgreat
License : Apache License 2.0
Project Creator : ztgreat
/**
* 登录
*/
@Controller
public clreplaced LoginCol {
@Autowired
private SysUserService sysUserService;
// 登录
@RequestMapping(value = "/api/login", method = RequestMethod.POST)
@ResponseBody
public ResponseEnreplacedy<SysUserInfo> doLogin(@RequestBody SysUser user, Boolean rememberMe, String captcha, HttpServletRequest request, RedirectAttributes redirect) {
ResponseEnreplacedy<SysUserInfo> res = new ResponseEnreplacedy<SysUserInfo>();
try {
TokenManager.login(user, rememberMe);
UserToken token = TokenManager.getToken();
SysUserInfo su = new SysUserInfo(token);
try {
sysUserService.updateLoginTime(token.getId());
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "更新 系统用户登录时间失败:" + e.getMessage());
}
res.setData(su).success("登录成功");
} catch (DisabledAccountException e) {
res.failure("账号被禁用");
} catch (Exception e) {
e.printStackTrace();
res.failure("用户名或密码错误");
}
return res;
}
@RequestMapping(value = "/api/logout", method = RequestMethod.GET)
@ResponseBody
public ResponseEnreplacedy<String> logout() {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<String>();
try {
TokenManager.logout();
} catch (Exception ignore) {
}
res.success("登出成功");
return res;
}
}
19
View Source File : TestController.java
License : Apache License 2.0
Project Creator : ztgreat
License : Apache License 2.0
Project Creator : ztgreat
/**
* <p>
* 前端控制器
* </p>
*
* @author zt
* @since 2018-09-30
*/
@Controller
@RequestMapping("/api/test")
public clreplaced TestController {
@Autowired
private TestService testService;
@RequestMapping(value = "/get")
@ResponseBody
public ResponseEnreplacedy<Test> get() {
ResponseEnreplacedy<Test> res = new ResponseEnreplacedy<>();
Test test = testService.getById(1);
res.setData(test);
return res;
}
@RequestMapping(value = "/getAll")
@ResponseBody
public ResponseList<Test> getAll() {
ResponseList<Test> res = new ResponseList<>();
List<Test> tests = testService.getAll();
res.setData(tests);
return res;
}
@RequestMapping(value = "/save")
@ResponseBody
public ResponseEnreplacedy<Test> save() {
ResponseEnreplacedy<Test> res = new ResponseEnreplacedy<>();
Test test = new Test();
test.setName("asdf");
testService.save(test);
res.setMsg("ok");
return res;
}
}
19
View Source File : TestCol.java
License : Apache License 2.0
Project Creator : ztgreat
License : Apache License 2.0
Project Creator : ztgreat
/**
* 不拦截url 测试
*/
@Controller
public clreplaced TestCol {
@RequestMapping(value = "/api/test", method = RequestMethod.GET)
@ResponseBody
public ResponseEnreplacedy<String> logout(HttpServletRequest request, HttpServletResponse response) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<String>();
res.success("拦截url 测试");
return res;
}
}
19
View Source File : SysRoleCol.java
License : Apache License 2.0
Project Creator : ztgreat
License : Apache License 2.0
Project Creator : ztgreat
/**
* 角色管理
*/
@Controller
@RequestMapping(value = "/api/role")
public clreplaced SysRoleCol {
@Autowired
private SysMenuService sysMenuService;
@Autowired
private SysRoleService sysRoleService;
@Autowired
private SysPermissionService sysPermissionService;
// 查询
@RequestMapping(value = "/page", method = RequestMethod.GET)
@ResponseBody
public ResponsePage<SysRole> page(@RequestParam(value = "current", defaultValue = "1") int current, @RequestParam(value = "pageSize", defaultValue = "20") int pageSize, @RequestParam(value = "search", defaultValue = "") String search) {
IPage<SysRole> page = sysRoleService.page(current, pageSize, search);
ResponsePage<SysRole> res = new ResponsePage<SysRole>(page);
return res;
}
// 保存
@RequestMapping(value = "/saveOrUpdate", method = RequestMethod.POST)
@ResponseBody
public ResponseEnreplacedy<String> saveOrUpdate(@RequestBody SysRole role) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<String>();
try {
String s = sysRoleService.saveRole(role);
res.success(s);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "[角色更新或者删除]" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
// 删除
@RequestMapping(value = "delete", method = RequestMethod.POST)
@ResponseBody
public ResponseEnreplacedy<String> delete(@RequestBody Map<String, Object> param) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<>();
try {
List<Integer> ids = (List<Integer>) param.get("ids");
for (Integer id : ids) {
// 删除角色前需确定该角色是否已被分配权限,如已分配需先解除角色权限关系
int permissionCount = sysRoleService.queryPerAllocationNumOfRole(id.intValue());
if (permissionCount > 0) {
res.failure(CommonConstant.Message.ROLE_EXIST_PERMISSION);
} else {
sysRoleService.removeById(id);
res.success(CommonConstant.Message.OPTION_SUCCESS);
}
}
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "[role delete]" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
@RequestMapping(value = "/query/{id}")
@ResponseBody
public ResponseEnreplacedy<SysRole> query(HttpServletRequest request, @PathVariable("id") Integer id) {
ResponseEnreplacedy<SysRole> res = new ResponseEnreplacedy<>();
try {
SysRole role = sysRoleService.getById(id);
res.success(CommonConstant.Message.OPTION_SUCCESS);
res.setData(role);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "[role get]" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
/**
* 分页查询所有用户已分配角色
* @param current
* @param pageSize
* @param search 支持用户名模糊查询,可传null
* @param order 支持排序
* @return
*/
@RequestMapping(value = "/pageUserRoles", method = RequestMethod.GET)
@ResponseBody
public ResponsePage<UserRoleAllocationBoIns> pageUserRoles(@RequestParam(value = "current", defaultValue = "1") int current, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize, @RequestParam(value = "search", defaultValue = "") String search, @RequestParam(value = "order", defaultValue = "") String order) {
ResponsePage<UserRoleAllocationBoIns> res = new ResponsePage<UserRoleAllocationBoIns>();
try {
IPage<UserRoleAllocationBoIns> page = sysRoleService.queryUserRoleByPage(search, current, pageSize, order);
for (UserRoleAllocationBoIns userRoleAllocationBo : page.getRecords()) {
// 查询结果行专列
userRoleAllocationBo.roleVerToHor();
}
return res.setPage(page);
} catch (RuntimeException e) {
LoggerUtils.error(getClreplaced(), "[sysrole pageUserRoles]" + e.getMessage());
}
res.failure("获取列表失败");
return res;
}
/**
* 更新用户角色关系
* @return
*/
@RequestMapping(value = "/updateUserRoles", method = RequestMethod.POST)
@ResponseBody
public ResponseEnreplacedy<String> updateUserRoles(@RequestBody Map<String, Object> param) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<String>();
Integer userId = (Integer) param.get("userId");
List<Integer> roleIds = (List<Integer>) param.get("roleIds");
try {
sysRoleService.updateUserRoles(userId, roleIds);
res.setMsg(CommonConstant.Message.OPTION_SUCCESS);
} catch (RuntimeException e) {
res.setMsg(e.getMessage());
LoggerUtils.error(getClreplaced(), "[sys updateUserRoles]" + e.getMessage());
}
return res;
}
/**
* 查询单个用户角色分配情况
* @param userId
* @return
*/
@RequestMapping(value = "/querySingleUserRole/{userId}", method = RequestMethod.GET)
@ResponseBody
public ResponseList<SingleUserRolesBoIns> querySingleUserRole(@PathVariable("userId") String userId) {
ResponseList<SingleUserRolesBoIns> res = new ResponseList<SingleUserRolesBoIns>();
try {
List<SingleUserRolesBoIns> singleUserRoleAllocationBos = sysRoleService.queryRoleAllocationByUserId(userId);
res.setData(singleUserRoleAllocationBos);
} catch (RuntimeException e) {
res.failure(CommonConstant.Message.OPTION_FAILURE);
LoggerUtils.error(getClreplaced(), "[querySingleUserRole]" + e.getMessage());
}
return res;
}
/**
* 清空单个用户角色
* @param userId
* @return
*/
@RequestMapping(value = "/deleteRoleByUserId/{userId}", method = RequestMethod.GET)
@ResponseBody
public ResponseEnreplacedy<String> deleteRoleByUserId(@PathVariable("userId") Integer userId) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<>();
try {
sysRoleService.deleteAllRoleByUserId(userId);
res.success(CommonConstant.Message.OPTION_SUCCESS);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "[role get]" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
/**
* 得到某个角色的权限树
* @param roleId
* @return
*/
@RequestMapping(value = "/getPermissionTreeByRoleId")
@ResponseBody
public ResponseList<PermissionTreeIns> getPermissionTreeByRoleId(Integer roleId) {
ResponseList<PermissionTreeIns> res = new ResponseList<PermissionTreeIns>();
try {
List<SysPermission> permissions = sysPermissionService.getPermissionByRoleId(roleId);
Map<Integer, SysPermission> mapPermissions = new HashMap<Integer, SysPermission>();
for (SysPermission permission : permissions) {
mapPermissions.put(permission.getId(), permission);
}
List<PermissionTreeIns> permissionTrees = sysPermissionService.getPermissionTree(0);
setPermissionTree(permissionTrees, mapPermissions);
res.setData(permissionTrees);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "[role gePermissionTree]" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
/**
* 设置权限树 状态(设置 是否选中)
* @param trees
* @param mapPermissions
*/
private void setPermissionTree(List<PermissionTreeIns> trees, Map<Integer, SysPermission> mapPermissions) {
if (trees == null || trees.isEmpty())
return;
for (PermissionTreeIns tree : trees) {
if (mapPermissions.containsKey(tree.getId())) {
tree.setChecked(true);
}
if (tree.getChildren() != null && !tree.getChildren().isEmpty()) {
tree.setIsParent(true);
setPermissionTree(tree.getChildren(), mapPermissions);
}
}
return;
}
/**
* 用户菜单授权 tree
* 某个角色的菜单树
*/
@RequestMapping(value = "/getMenuTreeByRoleId", method = RequestMethod.GET)
@ResponseBody
public ResponseList<AuthMenuTreeIns> getMenuTree(Integer roleId) {
ResponseList<AuthMenuTreeIns> res = new ResponseList<AuthMenuTreeIns>();
try {
List<SysMenu> sysMenus = sysMenuService.getMenuByRoleId(roleId);
Map<Integer, SysMenu> mapMenus = new HashMap<Integer, SysMenu>();
for (SysMenu menu : sysMenus) {
mapMenus.put(menu.getId(), menu);
}
List<AuthMenuTreeIns> menus = sysMenuService.getMenuTree(0);
setMenuTree(menus, mapMenus);
res.setData(menus);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "通过角色id 获取菜单树失败 :" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
/**
* 设置权限树 状态(设置 是否选中)
* @param trees 菜单树
* @param mapHasMenusMenus 具有权限的菜单
*/
private void setMenuTree(List<AuthMenuTreeIns> trees, Map<Integer, SysMenu> mapHasMenusMenus) {
if (trees == null || trees.isEmpty())
return;
for (AuthMenuTreeIns tree : trees) {
if (mapHasMenusMenus != null && mapHasMenusMenus.containsKey(tree.getId())) {
tree.setChecked(true);
}
if (tree.getChildren() != null && !tree.getChildren().isEmpty()) {
tree.setIsParent(true);
setMenuTree(tree.getChildren(), mapHasMenusMenus);
}
}
return;
}
/**
* 更新菜单权限
* @return
*/
@RequestMapping(value = "/updateMenus", method = RequestMethod.POST)
@ResponseBody
public ResponseEnreplacedy<String> updateMenus(@RequestBody Map<String, Object> param) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<>();
Integer roleId = (Integer) param.get("roleId");
List<Integer> menusIds = (List<Integer>) param.get("menusIds");
try {
sysMenuService.updatePermission(roleId, menusIds);
res.success(CommonConstant.Message.OPTION_SUCCESS);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "更新菜单权限失败 :" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
/**
* 更新角色权限
* @return
*/
@RequestMapping(value = "/updatePermission", method = RequestMethod.POST)
@ResponseBody
public ResponseEnreplacedy<String> updatePermission(@RequestBody Map<String, Object> param) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<>();
Integer roleId = (Integer) param.get("roleId");
List<Integer> permissionIds = (List<Integer>) param.get("permissionIds");
try {
sysPermissionService.updatePermission(roleId, permissionIds);
res.success(CommonConstant.Message.OPTION_SUCCESS);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "[role updatePermission]" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
}
19
View Source File : SysMenuCol.java
License : Apache License 2.0
Project Creator : ztgreat
License : Apache License 2.0
Project Creator : ztgreat
/**
* 菜单操作
*/
@Controller
@RequestMapping(value = "/api/menu")
public clreplaced SysMenuCol {
@Autowired
private SysMenuService sysMenuService;
/**
* 获取所有菜单tree
*
* @return
*/
@RequestMapping(value = "/getMenuTree", method = RequestMethod.GET)
@ResponseBody
public ResponseList<AuthMenuTreeIns> getMenuTree() {
ResponseList<AuthMenuTreeIns> res = new ResponseList<AuthMenuTreeIns>();
List<AuthMenuTreeIns> menus = null;
try {
menus = sysMenuService.getMenuTree(0);
setMenuTree(menus, null);
res.setData(menus);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "获取菜单树 失败:" + e.getMessage());
res.failure(e.getMessage());
}
return res;
}
// 保存
@RequestMapping(value = "/saveOrUpdate", method = RequestMethod.POST)
@ResponseBody
public ResponseEnreplacedy<String> saveOrUpdate(@RequestBody SysMenu menu) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<String>();
try {
String s = sysMenuService.saveMenu(menu);
res.success(s);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "菜单保存失败:" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
// 删除
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public ResponseEnreplacedy<String> delete(Integer id) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<String>();
try {
boolean flag = sysMenuService.removeById(id);
res.success("删除成功");
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "菜单删除失败:" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
/**
* 通过用户id获取菜单tree
*
* @return
*/
@RequestMapping(value = "/getUserMenuTree")
@ResponseBody
public ResponseList<AuthMenuTreeIns> userTree() {
ResponseList<AuthMenuTreeIns> res = new ResponseList<AuthMenuTreeIns>();
List<AuthMenuTreeIns> menus = null;
try {
UserToken token = TokenManager.getToken();
menus = sysMenuService.getMenuTreeByUserId(token.getId());
res.setData(menus);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "通过用户id 获取用户菜单树 失败:" + e.getMessage());
res.failure("获取用户菜单树 失败");
}
return res;
}
/**
* 批量删除
*
* @return
*/
@RequestMapping(value = "/deleteBatch", method = RequestMethod.POST)
@ResponseBody
public ResponseEnreplacedy<String> deleteBatch(@RequestBody Map<String, Object> param) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<String>();
List<String> ids = (List<String>) param.get("ids");
try {
sysMenuService.deleteBatch(ids);
res.success(CommonConstant.Message.OPTION_SUCCESS);
} catch (Exception e) {
LoggerUtils.error(getClreplaced(), "批量删除菜单失败:" + e.getMessage());
res.failure(CommonConstant.Message.OPTION_FAILURE);
}
return res;
}
/**
* 设置权限树 状态(设置 是否选中)
*
* @param trees
* 菜单树
* @param mapHasMenusMenus
* 具有权限的菜单
*/
private boolean setMenuTree(List<AuthMenuTreeIns> trees, Map<Integer, SysMenu> mapHasMenusMenus) {
if (trees == null || trees.isEmpty())
return false;
boolean flag = false;
for (AuthMenuTreeIns tree : trees) {
if (mapHasMenusMenus != null && mapHasMenusMenus.containsKey(tree.getId())) {
tree.setChecked(true);
flag = true;
}
if (tree.getChildren() != null && !tree.getChildren().isEmpty()) {
tree.setIsParent(true);
if (setMenuTree(tree.getChildren(), mapHasMenusMenus)) {
tree.setChecked(true);
}
}
}
return flag;
}
}
19
View Source File : LoginCol.java
License : Apache License 2.0
Project Creator : ztgreat
License : Apache License 2.0
Project Creator : ztgreat
/**
* 登录
*/
@Controller
public clreplaced LoginCol {
@RequestMapping(value = "/api/logout", method = RequestMethod.GET)
@ResponseBody
public ResponseEnreplacedy<String> logout(HttpServletRequest request, HttpServletResponse response) {
ResponseEnreplacedy<String> res = new ResponseEnreplacedy<String>();
try {
TokenManager.logout(request, response);
} catch (Exception ignore) {
return res;
}
res.success("登出成功");
return res;
}
}
19
View Source File : TestController.java
License : Apache License 2.0
Project Creator : ztgreat
License : Apache License 2.0
Project Creator : ztgreat
/**
* <p>
* 前端控制器
* </p>
*
* @author zt
* @since 2018-09-30
*/
@Controller
@RequestMapping("/api/test")
public clreplaced TestController {
@Autowired
private TestService testService;
@RequestMapping(value = "/get")
@ResponseBody
public ResponseEnreplacedy<Test> get() {
ResponseEnreplacedy<Test> res = new ResponseEnreplacedy<>();
Test test = testService.getById(1);
res.setData(test);
return res;
}
@RequestMapping(value = "/getAll")
@ResponseBody
public ResponseList<Test> getAll() {
ResponseList<Test> res = new ResponseList<>();
List<Test> tests = testService.getAll();
res.setData(tests);
return res;
}
@RequestMapping(value = "/save")
@ResponseBody
public ResponseEnreplacedy<Test> save() {
ResponseEnreplacedy<Test> res = new ResponseEnreplacedy<>();
Test test = new Test();
test.setName("hello");
testService.save(test);
res.setMsg("ok");
return res;
}
}
19
View Source File : RedisController.java
License : Apache License 2.0
Project Creator : zq2599
License : Apache License 2.0
Project Creator : zq2599
@Controller
public clreplaced RedisController {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Autowired
private RedisService redisService;
/**
* 加入一些公共信息,这样在tomcat集群的时候可以确定响应来自哪台机器
* @param model
*/
private void addCommon(Model model) {
if (null == model) {
return;
}
model.addAttribute("time", sdf.format(new Date()));
Map<String, String> map = System.getenv();
model.addAttribute("serviceSource", map.get("TOMCAT_SERVER_ID"));
}
@RequestMapping("/strSet")
public String set(HttpServletRequest request, Model model) {
String key = request.getParameter("key");
String value = request.getParameter("value");
redisService.strSet(key, value);
model.addAttribute("key", key);
model.addAttribute("value", value);
addCommon(model);
return "strSet";
}
@RequestMapping("/setGet")
public String get(HttpServletRequest request, Model model) {
String key = request.getParameter("key");
String value = redisService.setGet(key);
model.addAttribute("key", key);
model.addAttribute("value", value);
addCommon(model);
return "setGet";
}
@RequestMapping("/check")
public String check(HttpServletRequest request, Model model) {
String key = request.getParameter("key");
model.addAttribute("key", key);
model.addAttribute("exists", redisService.exists(key) ? "存在" : "不存在");
addCommon(model);
return "check";
}
@RequestMapping("/listappend")
public String listappend(HttpServletRequest request, Model model) {
String key = request.getParameter("key");
String value = request.getParameter("value");
redisService.listAppend(key, value);
model.addAttribute("key", key);
model.addAttribute("value", value);
addCommon(model);
return "listappend";
}
@RequestMapping("/listgetall")
public String listgetall(HttpServletRequest request, Model model) {
String key = request.getParameter("key");
List<String> list = redisService.listGetAll(key);
model.addAttribute("key", key);
if (!list.isEmpty()) {
model.addAttribute("value", list.get(0));
}
model.addAttribute("list", list);
addCommon(model);
return "listgetall";
}
}
19
View Source File : TagController.java
License : Apache License 2.0
Project Creator : zouzhirong
License : Apache License 2.0
Project Creator : zouzhirong
/**
* 管理标签Tag Controller
*
* @author <a href="mailto:[email protected]">zhirong.zou</a>
* @version 1.0
* @since 1.0
*/
@Controller
@RequestMapping("/")
public clreplaced TagController {
@Autowired
private AppService appService;
@Autowired
private TagService tagService;
@Autowired
private PrivilegeService privilegeService;
/**
* 列出指定环境下的Tag列表
*
* @param appId 应用ID
* @return
*/
@RequestMapping(value = "/apps/{appId}/tags", method = RequestMethod.GET)
public ModelAndView getTagList(@PathVariable("appId") int appId) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
App app = appService.getApp(appId);
List<Tag> tagList = tagService.getTagList(appId);
return new ModelAndView("app/tag").addObject("appId", appId).addObject("app", app).addObject("tagList", tagList);
}
/**
* 获取Profile
*
* @param appId
* @param tagId
* @return
*/
@RequestMapping(value = "/apps/{appId}/tags/{tagId}", method = RequestMethod.GET)
@ResponseBody
public Object getTag(@PathVariable("appId") int appId, @PathVariable("tagId") int tagId) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
return tagService.getTag(appId, tagId);
}
/**
* 创建Tag
*
* @param appId 应用ID
* @param name tag名称
* @param description tag描述
* @return
*/
@RequestMapping(value = "/apps/{appId}/tags", method = RequestMethod.POST)
@ResponseBody
public Object createTag(@PathVariable("appId") int appId, @RequestParam("name") String name, @RequestParam("description") String description) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
tagService.createTag(appId, name, description);
return true;
}
/**
* 更改Tag
*
* @param appId 应用ID
* @param tagId tag id
* @param name tag名称
* @param description tag描述
* @return
*/
@RequestMapping(value = "/apps/{appId}/tags/{tagId}", method = RequestMethod.PUT)
@ResponseBody
public Object modifyTag(@PathVariable("appId") int appId, @PathVariable("tagId") int tagId, @RequestParam("name") String name, @RequestParam("description") String description) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
tagService.modifyTag(tagId, name, description);
return true;
}
/**
* 删除Tag
*
* @param appId 应用ID
* @param tagId tag id
* @return
*/
@RequestMapping(value = "/apps/{appId}/tags/{tagId}", method = RequestMethod.DELETE)
@ResponseBody
public Object deleteTag(@PathVariable("appId") int appId, @PathVariable("tagId") int tagId) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
tagService.delete(appId, tagId);
return true;
}
}
19
View Source File : ProfileController.java
License : Apache License 2.0
Project Creator : zouzhirong
License : Apache License 2.0
Project Creator : zouzhirong
/**
* 管理项目的环境的Profile Controller
*
* @author <a href="mailto:[email protected]">zhirong.zou</a>
* @version 1.0
* @since 1.0
*/
@Controller
@RequestMapping("/")
public clreplaced ProfileController {
@Autowired
private AppService appService;
@Autowired
private ProfileService profileService;
@Autowired
private PrivilegeService privilegeService;
/**
* 列出指定环境下的Profile列表
*
* @param appId 应用ID
* @return
*/
@RequestMapping(value = "/apps/{appId}/profiles", method = RequestMethod.GET)
public ModelAndView getProfileList(@PathVariable("appId") int appId) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
App app = appService.getApp(appId);
List<Profile> profileList = profileService.getProfileList(appId);
return new ModelAndView("app/profile").addObject("appId", appId).addObject("app", app).addObject("profileList", profileList);
}
/**
* 获取Profile
*
* @param appId
* @param profileId
* @return
*/
@RequestMapping(value = "/apps/{appId}/profiles/{profileId}", method = RequestMethod.GET)
@ResponseBody
public Object getProfile(@PathVariable("appId") int appId, @PathVariable("profileId") int profileId) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
return profileService.getProfile(appId, profileId);
}
/**
* 创建Profile
*
* @param appId 应用ID
* @param name profile名称
* @param description profile描述
* @param order 顺序
* @param color 颜色
* @return
*/
@RequestMapping(value = "/apps/{appId}/profiles", method = RequestMethod.POST)
@ResponseBody
public Object createProfile(@PathVariable("appId") int appId, @RequestParam("name") String name, @RequestParam("description") String description, @RequestParam(value = "order", required = false, defaultValue = "0") int order, @RequestParam(value = "color", required = false, defaultValue = "") String color) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
profileService.createProfile(appId, name, description, order, color);
return true;
}
/**
* 更改Profile
*
* @param appId 应用ID
* @param profileId profile id
* @param name profile名称
* @param description profile描述
* @param order 顺序
* @param color 颜色
* @return
*/
@RequestMapping(value = "/apps/{appId}/profiles/{profileId}", method = RequestMethod.PUT)
@ResponseBody
public Object modifyProfile(@PathVariable("appId") int appId, @PathVariable("profileId") int profileId, @RequestParam("name") String name, @RequestParam("description") String description, @RequestParam(value = "order", required = false, defaultValue = "0") int order, @RequestParam(value = "color", required = false, defaultValue = "") String color) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
profileService.modifyProfile(appId, profileId, name, description, order, color);
return true;
}
/**
* 删除Profile
*
* @param appId 应用ID
* @param profileId profile id
* @return
*/
@RequestMapping(value = "/apps/{appId}/profiles/{profileId}", method = RequestMethod.DELETE)
@ResponseBody
public Object deleteProfile(@PathVariable("appId") int appId, @PathVariable("profileId") int profileId) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
profileService.delete(appId, profileId);
return true;
}
}
19
View Source File : IndexController.java
License : Apache License 2.0
Project Creator : zouzhirong
License : Apache License 2.0
Project Creator : zouzhirong
/**
* Index Controller
*/
@Controller
public clreplaced IndexController {
@Autowired
private AppService appService;
@RequestMapping("/")
public String index() {
App app = appService.getDefaultApp(UserContext.email());
if (app == null) {
return "redirect:/apps";
} else {
return "redirect:/apps/" + app.getId() + "/config";
}
}
}
19
View Source File : EnvController.java
License : Apache License 2.0
Project Creator : zouzhirong
License : Apache License 2.0
Project Creator : zouzhirong
/**
* 管理项目的环境(Env) Controller
*
* @author Zhirong Zou
*/
@Controller
@RequestMapping("/")
public clreplaced EnvController {
@Autowired
private AppService appService;
@Autowired
private EnvService envService;
@Autowired
private PrivilegeService privilegeService;
/**
* 列出项目的环境列表
*
* @param appId 应用ID
* @return
*/
@RequestMapping(value = "/apps/{appId}/envs", method = RequestMethod.GET)
public ModelAndView getEnvList(@PathVariable("appId") int appId) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
App app = appService.getApp(appId);
List<Env> envList = envService.getEnvList(appId);
return new ModelAndView("app/env").addObject("appId", appId).addObject("app", app).addObject("envList", envList);
}
/**
* 环境列表为空的提示
*
* @return
*/
@RequestMapping(value = "/apps/{appId}/envs/empty", method = RequestMethod.GET)
public ModelAndView emptyList(@PathVariable("appId") int appId) {
App app = appService.getApp(appId);
return new ModelAndView("app/env_empty").addObject("app", app);
}
/**
* 获取环境
*
* @param appId
* @param envId
* @return
*/
@RequestMapping(value = "/apps/{appId}/envs/{envId}", method = RequestMethod.GET)
@ResponseBody
public Object getEnv(@PathVariable("appId") int appId, @PathVariable("envId") int envId) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
return envService.getEnv(appId, envId);
}
/**
* 创建环境
*
* @param appId 应用ID
* @param name 环境名称
* @param alias 环境别名
* @param description 环境描述
* * @param order 顺序
* @return
*/
@RequestMapping(value = "/apps/{appId}/envs", method = RequestMethod.POST)
@ResponseBody
public Object createEnv(@PathVariable("appId") int appId, @RequestParam("name") String name, @RequestParam("alias") String alias, @RequestParam("description") String description, @RequestParam(value = "order", required = false, defaultValue = "0") int order) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
envService.createEnv(appId, name, alias, description, order);
return true;
}
/**
* 更改环境
*
* @param appId 应用ID
* @param envId 环境ID
* @param name 环境名称
* @param alias 环境别名
* @param autoRelease 自动发布
* @param description 环境描述
* @param order 顺序
* @return
*/
@RequestMapping(value = "/apps/{appId}/envs/{envId}", method = RequestMethod.PUT)
@ResponseBody
public Object modifyEnv(@PathVariable("appId") int appId, @PathVariable("envId") int envId, @RequestParam("name") String name, @RequestParam("alias") String alias, @RequestParam(name = "autoRelease", required = false, defaultValue = "false") boolean autoRelease, @RequestParam("description") String description, @RequestParam(value = "order", required = false, defaultValue = "0") int order) {
// 权限认证
privilegeService.replacedertAppAdmin(appId, UserContext.email());
envService.modifyEnv(envId, name, alias, autoRelease, description, order);
return true;
}
/**
* 删除环境
*
* @param appId 应用ID
* @param envId 环境ID
* @return
*/
@RequestMapping(value = "/apps/{appId}/envs/{envId}", method = RequestMethod.DELETE)
@ResponseBody
public Object deleteEnv(@PathVariable("appId") int appId, @PathVariable("envId") int envId) {
// 权限认证
privilegeService.replacedertAppAdmin(appId, UserContext.email());
envService.delete(appId, envId);
return true;
}
}
19
View Source File : AppController.java
License : Apache License 2.0
Project Creator : zouzhirong
License : Apache License 2.0
Project Creator : zouzhirong
/**
* 应用管理Controller
*
* @author Zhirong Zou
*/
@Controller
@RequestMapping("/")
public clreplaced AppController {
@Autowired
private AppService appService;
@Autowired
private PrivilegeService privilegeService;
/**
* 列出项目列表
*
* @param page
* @param size
* @return
*/
@RequestMapping(value = "/apps", method = RequestMethod.GET)
public ModelAndView getAppList(@RequestParam(name = "page", required = false, defaultValue = "1") int page, @RequestParam(name = "size", required = false, defaultValue = "10") int size) {
List<App> appList = appService.getUserAppList(UserContext.email());
PageRequest pageRequest = new PageRequest(page, size);
Page<Void, App> pageResponse = new Page<>(appList, pageRequest);
return new ModelAndView("app/app").addObject("page", pageResponse);
}
/**
* 项目列表为空的提示
*
* @return
*/
@RequestMapping(value = "/apps/empty", method = RequestMethod.GET)
public ModelAndView emptyList() {
return new ModelAndView("app/app_empty");
}
/**
* 获取项目
*
* @param appId
* @return
*/
@RequestMapping(value = "/apps/{appId}", method = RequestMethod.GET)
@ResponseBody
public Object getApp(@PathVariable("appId") int appId) {
// 权限认证
privilegeService.replacedertAppDeveloper(appId, UserContext.email());
return appService.getApp(appId);
}
/**
* 创建项目
*
* @param name 应用名称
* @param description 应用描述
* @param admins 管理员邮箱
* @param developers 开发者邮箱
* @return
*/
@RequestMapping(value = "/apps", method = RequestMethod.POST)
@ResponseBody
public Object createApp(@RequestParam("name") String name, @RequestParam(value = "description", required = false, defaultValue = "") String description, @RequestParam(value = "admins", required = false, defaultValue = "") String admins, @RequestParam(value = "developers", required = false, defaultValue = "") String developers) {
appService.createApp(name, description, admins, developers);
return true;
}
/**
* 更改项目
*
* @param appId 应用ID
* @param name 应用名称
* @param description 应用描述
* @param admins 管理员邮箱
* @param developers 开发者邮箱
* @return
*/
@RequestMapping(value = "/apps/{appId}", method = RequestMethod.PUT)
@ResponseBody
public Object modifyApp(@PathVariable("appId") int appId, @RequestParam("name") String name, @RequestParam(value = "description", required = false, defaultValue = "") String description, @RequestParam(value = "admins", required = false, defaultValue = "") String admins, @RequestParam(value = "developers", required = false, defaultValue = "") String developers) {
// 权限认证
privilegeService.replacedertAppAdmin(appId, UserContext.email());
appService.modifyApp(appId, name, description, admins, developers);
return true;
}
/**
* 删除项目
*
* @param appId 应用ID
* @return
*/
@RequestMapping(value = "/apps/{appId}", method = RequestMethod.DELETE)
@ResponseBody
public Object deleteApp(@PathVariable("appId") int appId) {
// 权限认证
privilegeService.replacedertAppAdmin(appId, UserContext.email());
appService.delete(appId);
return true;
}
}
19
View Source File : IndexController.java
License : GNU General Public License v2.0
Project Creator : ZoeShaw101
License : GNU General Public License v2.0
Project Creator : ZoeShaw101
/**
* 通用访问拦截匹配
* 创建者 科帮网
* 创建时间 2018年4月3日
*/
@Controller
public clreplaced IndexController {
/**
* 页面跳转
* @param module
* @param url
* @return
*/
@RequestMapping("{url}.shtml")
public String page(@PathVariable("url") String url) {
return url;
}
/**
* 页面跳转(二级目录)
* @param module
* @param function
* @param url
* @return
*/
@RequestMapping("{module}/{url}.shtml")
public String page(@PathVariable("module") String module, @PathVariable("url") String url) {
return module + "/" + url;
}
}
19
View Source File : CorpAdminController.java
License : MIT License
Project Creator : Zo3i
License : MIT License
Project Creator : Zo3i
/**
* 系统管理员Controller
* @author ThinkGem
* @version 2017-03-26
*/
@Controller
@RequestMapping(value = "${adminPath}/sys/corpAdmin")
public clreplaced CorpAdminController extends BaseController {
@Autowired
private UserService userService;
@ModelAttribute
public User get(String userCode, boolean isNewRecord) {
return userService.get(userCode, isNewRecord);
}
@RequiresPermissions("sys:corpAdmin:view")
@RequestMapping(value = "list")
public String list(User user, Model model) {
user.setCorpCode(null);
user.setCorpName(null);
return "modules/sys/user/corpAdminList";
}
@RequiresPermissions("sys:corpAdmin:view")
@RequestMapping(value = "listData")
@ResponseBody
public Page<User> listData(User user, HttpServletRequest request, HttpServletResponse response) {
// 租户管理员
user.setMgrType(User.MGR_TYPE_CORP_ADMIN);
// 禁用自动添加租户代码条件,添加自定义租户查询条件
user.getSqlMap().getWhere().disableAutoAddCorpCodeWhere().and("corp_code", QueryType.EQ, user.getCorpCode_()).and("corp_name", QueryType.LIKE, user.getCorpName_());
Page<User> page = userService.findPage(new Page<User>(request, response), user);
return page;
}
@RequiresPermissions("sys:corpAdmin:view")
@RequestMapping(value = "form")
public String form(User user, String op, Model model) {
if (user.getIsNewRecord()) {
// 新增租户管理员,如果已存在,则不能保存
if ("addCorp".equals(op)) {
// 租户代码
user.setCorpCode_(StringUtils.EMPTY);
// 租户名称
user.setCorpName_(StringUtils.EMPTY);
}
}
// 操作类型:addCorp: 添加租户; addAdmin: 添加管理员; edit: 编辑
model.addAttribute("op", op);
model.addAttribute("user", user);
return "modules/sys/user/corpAdminForm";
}
@RequiresPermissions("sys:corpAdmin:edit")
@PostMapping(value = "save")
@ResponseBody
public String save(@Validated User user, String oldLoginCode, String op) {
if (!user.getCurrentUser().isSuperAdmin()) {
return renderResult(Global.FALSE, "越权操作,只有超级管理员才能修改此数据!");
}
if (User.isSuperAdmin(user.getUserCode())) {
return renderResult(Global.FALSE, "非法操作,不能够操作此用户!");
}
if (!EmpUser.USER_TYPE_EMPLOYEE.equals(user.getUserType())) {
return renderResult(Global.FALSE, "非法操作,不能够操作此用户!");
}
if (StringUtils.isBlank(user.getCorpCode_())) {
return renderResult(Global.FALSE, "租户代码不能为空!");
}
if (!Global.TRUE.equals(userService.checkLoginCode(oldLoginCode, user.getLoginCode()))) {
return renderResult(Global.FALSE, "保存用户'" + user.getLoginCode() + "'失败,登录账号已存在");
}
if (user.getIsNewRecord()) {
// 仅登录用户
user.setUserType(User.USER_TYPE_NONE);
}
// 租户管理员
user.setMgrType(User.MGR_TYPE_CORP_ADMIN);
// 如果新增,则验证租户代码合法性
if (user.getIsNewRecord()) {
User where = new User();
where.setCorpCode_(user.getCorpCode_());
List<User> list = userService.findCorpList(where);
if (list.size() > 0) {
// 新增租户,如果已存在,则不能保存
if ("addCorp".equals(op)) {
return renderResult(Global.FALSE, "保存用户失败,租户代码已存在");
} else // 新增管理员,则使用已有的租户代码和名称
if ("addAdmin".equals(op)) {
user.setCorpCode_(list.get(0).getCorpCode_());
user.setCorpName_(list.get(0).getCorpName_());
} else // 非法操作
{
return renderResult(Global.FALSE, "非法操作,参数错误。");
}
}
}
userService.save(user);
// 如果修改的是当前用户,则清除当前用户缓存
if (user.getUserCode().equals(UserUtils.getUser().getUserCode())) {
UserUtils.clearCache();
}
return renderResult(Global.TRUE, "保存管理员'" + user.getUserCode() + "'成功");
}
/**
* 停用用户
* @param user
* @return
*/
@RequiresPermissions("sys:corpAdmin:edit")
@ResponseBody
@RequestMapping(value = "disable")
public String disable(User user) {
if (User.isSuperAdmin(user.getUserCode())) {
return renderResult(Global.FALSE, "非法操作,不能够操作此用户!");
}
if (user.getCurrentUser().getUserCode().equals(user.getUserCode())) {
return renderResult(Global.FALSE, "停用用户失败, 不允许停用当前用户");
}
user.setStatus(User.STATUS_DISABLE);
userService.updateStatus(user);
return renderResult(Global.TRUE, "停用用户成功");
}
/**
* 启用用户
* @param user
* @return
*/
@RequiresPermissions("sys:corpAdmin:edit")
@ResponseBody
@RequestMapping(value = "enable")
public String enable(User user) {
if (User.isSuperAdmin(user.getUserCode())) {
return renderResult(Global.FALSE, "非法操作,不能够操作此用户!");
}
user.setStatus(User.STATUS_NORMAL);
userService.updateStatus(user);
return renderResult(Global.TRUE, "启用用户成功");
}
/**
* 密码重置
* @param user
* @return
*/
@RequiresPermissions("sys:corpAdmin:edit")
@RequestMapping(value = "resetpwd")
@ResponseBody
public String resetpwd(User user) {
if (User.isSuperAdmin(user.getUserCode())) {
return renderResult(Global.FALSE, "非法操作,不能够操作此用户!");
}
userService.updatePreplacedword(user.getUserCode(), null);
return renderResult(Global.TRUE, "重置用户密码成功");
}
/**
* 删除用户
* @param user
* @return
*/
@RequiresPermissions("sys:corpAdmin:edit")
@RequestMapping(value = "delete")
@ResponseBody
public String delete(User user) {
if (User.isSuperAdmin(user.getUserCode())) {
return renderResult(Global.FALSE, "非法操作,不能够操作此用户!");
}
if (user.getCurrentUser().getUserCode().equals(user.getUserCode())) {
return renderResult(Global.FALSE, "删除用户失败,不允许删除当前用户");
}
if (User.USER_TYPE_NONE.equals(user.getUserType())) {
// 删除系统管理员
userService.delete(user);
return renderResult(Global.TRUE, "删除用户'" + user.getUserName() + "'成功!");
} else {
// 取消系统管理员身份
user.setMgrType(User.MGR_TYPE_NOT_ADMIN);
userService.updateMgrType(user);
return renderResult(Global.TRUE, "取消用户'" + user.getUserName() + "'管理员身份成功!");
}
}
}
19
View Source File : AccountController.java
License : MIT License
Project Creator : Zo3i
License : MIT License
Project Creator : Zo3i
/**
* 账号自助服务Controller
* @author ThinkGem
* @version 2017-12-7
*/
@Controller
@RequestMapping(value = "/account")
public clreplaced AccountController extends BaseController {
@Autowired
private UserService userService;
/**
* 忘记密码页面
*/
@RequestMapping(value = "forgetPwd")
public String forgetPwd(Model model) {
model.addAttribute("message", "正在研发中,敬请期待!");
return "modules/sys/account/forgetPwd";
}
/**
* 获取找回密码短信、邮件验证码
* @param validCode 图片验证码,防止重复机器人。
* @param validType 验证方式:mobile、email
*/
@PostMapping(value = "getFpValidCode")
@ResponseBody
public String getFpValidCode(User user, String validCode, String validType, HttpServletRequest request) {
// 校验图片验证码,防止重复机器人。
if (!ValidCodeUtils.validate(request, validCode)) {
return renderResult(Global.FALSE, "图片验证码不正确或已失效,请点击图片刷新!");
}
if (!"mobile".equals(validType) && !"email".equals(validType)) {
return renderResult(Global.FALSE, "非法操作。");
}
User u = UserUtils.getByLoginCode(user.getLoginCode());
if (u == null) {
return renderResult(Global.FALSE, "登录账号不正确!");
}
if ("mobile".equals(validType) && StringUtils.isBlank(u.getMobile())) {
return renderResult(Global.FALSE, "该账号未设置手机号码!");
} else if ("email".equals(validType) && StringUtils.isBlank(u.getEmail())) {
return renderResult(Global.FALSE, "该账号未设置邮件地址!");
}
// 操作是否频繁验证, 如果离上次获取验证码小于20秒,则提示操作频繁。
Date date = (Date) UserUtils.getCache("fpLastDate");
if (date != null && (System.currentTimeMillis() - date.getTime()) / (1000L) < 20L) {
return renderResult(Global.FALSE, "您当前操作太频繁,请稍等一会再操作!");
} else {
UserUtils.putCache("fpLastDate", new Date());
}
// 生成验证码,并缓存。
String fpValidCode = StringUtils.getRandomNum(6);
UserUtils.putCache("fpUserCode", u.getUserCode());
UserUtils.putCache("fpLoginCode", u.getLoginCode());
UserUtils.putCache("fpValidCode", fpValidCode);
// 发送短信消息。
if ("mobile".equals(validType)) {
return sendSmsValidCode(u, fpValidCode, "找回密码");
} else // 发送邮件消息。
if ("email".equals(validType)) {
return sendEmailValidCode(u, fpValidCode, "找回密码");
}
return null;
}
/**
* 根据短信或邮件验证码保存密码
*/
@PostMapping(value = "savePwdByValidCode")
@ResponseBody
public String savePwdByValidCode(User user, String fpValidCode, HttpServletRequest request) {
String userCode = (String) UserUtils.getCache("fpUserCode");
String loginCode = (String) UserUtils.getCache("fpLoginCode");
String validCode = (String) UserUtils.getCache("fpValidCode");
Date date = (Date) UserUtils.getCache("fpLastDate");
// 一同验证保存的用户名和验证码是否正确(如果只校验验证码,不验证用户名,则会有获取验证码后修改用户名的漏洞)
if (!(userCode != null && loginCode != null && loginCode.equals(user.getLoginCode()))) {
return renderResult(Global.FALSE, "请重新获取验证码!");
}
// 清理验证码,验证码只允许使用一次。
UserUtils.removeCache("fpUserCode");
UserUtils.removeCache("fpLoginCode");
UserUtils.removeCache("fpValidCode");
UserUtils.removeCache("fpLastDate");
// 验证码是否超时
boolean isTimeout = true;
// 验证码有效时间(单位分钟,0表示不限制,默认值10)
String validTime = Global.getConfig("sys.account.validCodeTimeout", "10");
if ("0".equals(validTime) || (date != null && (System.currentTimeMillis() - date.getTime()) / (1000L) < 60 * Long.parseLong(validTime))) {
isTimeout = false;
}
if (!(validCode != null && validCode.equals(fpValidCode) && !isTimeout)) {
return renderResult(Global.FALSE, "验证码不正确或已失效,请重新获取验证码!");
}
// 更新为新密码。
try {
userService.updatePreplacedword(userCode, user.getPreplacedword());
} catch (ServiceException se) {
return renderResult(Global.FALSE, se.getMessage());
}
return renderResult(Global.TRUE, "恭喜你,您的账号 " + loginCode + " 密码修改成功!");
}
/**
* 获取保密问题
* @param validCode 图片验证码,防止重复机器人。
*/
@PostMapping(value = "getPwdQuestion")
@ResponseBody
public String getPwdQuestion(User user, String validCode, HttpServletRequest request) {
// 校验图片验证码,防止重复机器人。
if (!ValidCodeUtils.validate(request, validCode)) {
return renderResult(Global.FALSE, "图片验证码不正确或已失效,请点击图片刷新!");
}
// 账号是否存在验证
User u = UserUtils.getByLoginCode(user.getLoginCode());
if (u == null) {
return renderResult(Global.FALSE, "登录账号不正确!");
}
// 操作是否频繁验证, 如果离上次获取验证码小于20秒,则提示操作频繁。
Date date = (Date) UserUtils.getCache("fpLastDate");
if (date != null && (System.currentTimeMillis() - date.getTime()) / (1000L) < 20L) {
return renderResult(Global.FALSE, "您当前操作太频繁,请稍等一会再操作!");
} else {
UserUtils.putCache("fpLastDate", new Date());
}
// 未设置密保
if (StringUtils.isAnyBlank(u.getPwdQuestion(), u.getPwdQuestion2(), u.getPwdQuestion3())) {
return renderResult(Global.FALSE, "该账号未设置密保问题!");
}
// 获取保密问题,并缓存
Map<String, String> data = MapUtils.newHashMap();
data.put("pwdQuestion", u.getPwdQuestion());
data.put("pwdQuestion2", u.getPwdQuestion2());
data.put("pwdQuestion3", u.getPwdQuestion3());
UserUtils.putCache("fpUserCode", u.getUserCode());
UserUtils.putCache("fpLoginCode", u.getLoginCode());
return renderResult(Global.TRUE, "获取密保问题成功!", data);
}
/**
* 校验密保问题答案
* @param user
* @param request
* @return
*/
@PostMapping(value = "savePwdByPwdQuestion")
@ResponseBody
public String savePwdByPwdQuestion(User user, HttpServletRequest request) {
String userCode = (String) UserUtils.getCache("fpUserCode");
String loginCode = (String) UserUtils.getCache("fpLoginCode");
// 一同验证保存的用户名和验证码是否正确(如果只校验验证码,不验证用户名,则会有获取验证码后修改用户名的漏洞)
if (!(userCode != null && loginCode != null && loginCode.equals(user.getLoginCode()))) {
return renderResult(Global.FALSE, "请重新获取保密问题!");
}
// 清理保密问题,每次获取只允许使用一次。
UserUtils.removeCache("fpUserCode");
UserUtils.removeCache("fpLoginCode");
// 验证三个密保问题是否正确。
User u = UserUtils.getByLoginCode(user.getLoginCode());
if (!(u != null && loginCode.equals(user.getLoginCode()) && UserService.validatePreplacedword(user.getPwdQuestionAnswer(), u.getPwdQuestionAnswer()) && UserService.validatePreplacedword(user.getPwdQuestionAnswer2(), u.getPwdQuestionAnswer2()) && UserService.validatePreplacedword(user.getPwdQuestionAnswer3(), u.getPwdQuestionAnswer3()))) {
return renderResult(Global.FALSE, "您填写的密保问题答案不正确!");
}
// 更新为新密码。
try {
userService.updatePreplacedword(userCode, user.getPreplacedword());
} catch (ServiceException se) {
return renderResult(Global.FALSE, se.getMessage());
}
return renderResult(Global.TRUE, "验证通过");
}
/**
* 用户注册页面
* @param user 用户信息参数
*/
@RequestMapping(value = "registerUser")
public String registerUser(User user, HttpServletRequest request) {
return "modules/sys/account/registerUser";
}
/**
* 根据短信或邮件验证码注册用户(通过邮箱、手机号)
* @param user 用户信息参数
* @param validType 验证方式:mobile、email
*/
@PostMapping(value = "getRegValidCode")
@ResponseBody
public String getRegValidCode(User user, String validCode, String validType, HttpServletRequest request) {
// 校验图片验证码,防止重复机器人。
if (!ValidCodeUtils.validate(request, validCode)) {
return renderResult(Global.FALSE, "图片验证码不正确或已失效,请点击图片刷新!");
}
if (!"mobile".equals(validType) && !"email".equals(validType)) {
return renderResult(Global.FALSE, "非法操作。");
}
// 非空数据校验。
if (!(StringUtils.isNotBlank(user.getLoginCode()) && StringUtils.isNotBlank(user.getUserName()))) {
return renderResult(Global.FALSE, "登录账号和用户姓名不能为空!");
}
// 邮箱、手机号码是否填写验证
if ("email".equals(validType) && !StringUtils.isNotBlank(user.getEmail())) {
return renderResult(Global.FALSE, "电子邮箱不能为空!");
} else if ("mobile".equals(validType) && !StringUtils.isNotBlank(user.getMobile())) {
return renderResult(Global.FALSE, "手机号码不能为空!");
}
// 操作是否频繁验证,如果离上次获取验证码小于20秒,则提示操作频繁。
Date date = (Date) UserUtils.getCache("regLastDate");
if (date != null && (System.currentTimeMillis() - date.getTime()) / (1000L) < 20L) {
return renderResult(Global.FALSE, "您当前操作太频繁,请稍等一会再操作!");
} else {
UserUtils.putCache("regLastDate", new Date());
}
// 验证用户编码是否存在。
if (UserUtils.getByLoginCode(user.getLoginCode()) != null) {
return renderResult(Global.FALSE, "登录账号已存在!");
}
// 生成验证码,并缓存。
String code = StringUtils.getRandomNum(6);
UserUtils.putCache("regCorpCode", user.getCorpCode());
UserUtils.putCache("regCorpName", user.getCorpName());
UserUtils.putCache("regLoginCode", user.getLoginCode());
// 账号注册类型
String[] userTypes = StringUtils.split(Global.getConfig("sys.account.registerUser.userTypes.userTypes", "-1"), ",");
if (StringUtils.inString(user.getUserType(), userTypes)) {
UserUtils.putCache("regUserType", user.getUserType());
} else {
return renderResult(Global.FALSE, "非法的用户类型!");
}
UserUtils.putCache("regEmail", user.getEmail());
UserUtils.putCache("regMobile", user.getMobile());
UserUtils.putCache("regValidCode", code);
// 发送邮箱或短信验证码
if ("send_email".equals(validType)) {
return sendEmailValidCode(user, code, "注册账号");
} else if ("send_mobile".equals(validType)) {
return sendSmsValidCode(user, code, "注册账号");
}
return null;
}
/**
* 根据短信或邮件验证码注册用户(通过邮箱、手机号)
* @param user 用户信息参数
* @param validType 验证方式:mobile、email
*/
@PostMapping(value = "saveRegByValidCode")
@ResponseBody
public String saveRegByValidCode(User user, String regValidCode, HttpServletRequest request) {
if (!"true".equals(Global.getConfig("sys.account.registerUser"))) {
return renderResult(Global.FALSE, "当前系统没有开启注册功能!");
}
String corpCode = (String) UserUtils.getCache("regCorpCode");
String corpName = (String) UserUtils.getCache("regCorpName");
String userType = (String) UserUtils.getCache("regUserType");
String loginCode = (String) UserUtils.getCache("regLoginCode");
String email = (String) UserUtils.getCache("regEmail");
String mobile = (String) UserUtils.getCache("regMobile");
String validCode = (String) UserUtils.getCache("regValidCode");
Date date = (Date) UserUtils.getCache("regLastDate");
// 一同验证保存的用户名和验证码是否正确(如果只校验验证码,不验证用户名,则会有获取验证码后修改用户名的漏洞)
if (!(loginCode != null && loginCode.equals(user.getLoginCode()))) {
return renderResult(Global.FALSE, "非法操作。");
}
// 验证码是否超时
boolean isTimeout = true;
// 验证码有效时间(单位分钟,0表示不限制,默认值10)
String validTime = Global.getConfig("sys.account.validCodeTimeout", "10");
if ("0".equals(validTime) || (date != null && (System.currentTimeMillis() - date.getTime()) / (1000L) < 60 * Long.parseLong(validTime))) {
isTimeout = false;
}
if (!(validCode != null && validCode.equals(regValidCode) && !isTimeout)) {
return renderResult(Global.FALSE, "验证码不正确或已失效,请重新获取验证码!");
}
// 非空数据校验。
if (!(StringUtils.isNotBlank(user.getLoginCode()) && StringUtils.isNotBlank(user.getUserName()))) {
return renderResult(Global.FALSE, "登录账号和用户姓名不能为空!");
}
// 新增并保存用户。
User u = new User();
u.setIsNewRecord(true);
if (StringUtils.isNotBlank(corpCode)) {
u.setCorpCode(corpCode);
u.setCorpName(corpName);
}
u.setLoginCode(loginCode);
u.setUserName(user.getUserName());
u.setPreplacedword(user.getPreplacedword());
u.setEmail(email);
u.setMobile(mobile);
u.setUserType(userType);
u.setMgrType(User.MGR_TYPE_NOT_ADMIN);
userService.save(u);
// 验证成功后清理验证码,验证码只允许使用一次。
UserUtils.removeCache("regUserType");
UserUtils.removeCache("regLoginCode");
UserUtils.removeCache("regValidCode");
UserUtils.removeCache("regLastDate");
return renderResult(Global.TRUE, "恭喜你,您的账号 " + u.getLoginCode() + " 注册成功!");
}
/**
* 发送邮件验证码
*/
private String sendEmailValidCode(User user, String code, String replacedle) {
String account = user.getEmail();
try {
replacedle = user.getUserName() + "(" + user.getLoginCode() + ")" + replacedle + "验证码";
String content = "尊敬的用户,您好!\n\n您的验证码是:" + code + "(请勿透露给其他人)\n\n" + "请复制后,填写在你的验证码窗口完成验证。\n\n本邮件由系统自动发出,请勿回复。\n\n感谢您的使用!";
// String receiveUserCode = "[CODE]"+account;
// MsgPushUtils.push(MsgPush.TYPE_EMAIL, replacedle, content, null, null, receiveUserCode);
EmailUtils.send(account, replacedle, content);
} catch (Exception e) {
logger.error(replacedle + "发送邮件错误。", e);
return renderResult(Global.FALSE, "系统出现了点问题,错误信息:" + e.getMessage());
}
account = account.replaceAll("([\\w\\W]?)([\\w\\W]+)([\\w\\W])(@[\\w\\W]+)", "$1****$3$4");
return renderResult(Global.TRUE, "验证码已发送到“" + account + "”邮箱账号,请尽快查收!");
}
/**
* 发送短信验证码
*/
private String sendSmsValidCode(User user, String code, String replacedle) {
String account = user.getMobile();
try {
replacedle = user.getUserName() + "(" + user.getLoginCode() + ")" + replacedle + "验证码";
String content = "您好,您的验证码是:" + code + "(请勿透露给其他人)感谢您的使用。";
// String receiveUserCode = "[CODE]"+account;
// MsgPushUtils.push(MsgPush.TYPE_SMS, replacedle, content, null, null, receiveUserCode);
SmsUtils.send(content, account);
} catch (Exception e) {
logger.error(replacedle + "发送短信错误。", e);
return renderResult(Global.FALSE, "系统出现了点问题,错误信息:" + e.getMessage());
}
account = account.replaceAll("(\\d{3})(\\d+)(\\d{3})", "$1****$3");
return renderResult(Global.TRUE, "验证码已发送到“" + account + "”的手机号码,请尽快查收!");
}
}
19
View Source File : OnlineController.java
License : MIT License
Project Creator : Zo3i
License : MIT License
Project Creator : Zo3i
/**
* 在线用户Controller
* @author ThinkGem
* @version 2016-8-31
*/
@Controller
@RequestMapping(value = "${adminPath}/sys/online")
public clreplaced OnlineController extends BaseController {
@Autowired
private SessionDAO sessionDAO;
/**
* 在线用户数
* @param request
* @param response
* @author ThinkGem
*/
@RequestMapping(value = "count")
@ResponseBody
public Integer count(HttpServletRequest request, HttpServletResponse response) {
return sessionDAO.getActiveSessions(true, true).size();
}
/**
* 在线用户列表
* @param request
* @param response
* @param model
*/
@RequiresPermissions("sys:online:view")
@RequestMapping(value = "list")
public String list(Model model) {
return "modules/sys/onlineList";
}
/**
* 在线用户列表数据
* @param request
* @param response
* @author ThinkGem
*/
@RequiresPermissions("sys:online:view")
@RequestMapping(value = "listData")
@ResponseBody
public List<Map<String, Object>> listData(String isAllOnline, String isVisitor, String sessionId, String userCode, String userName, String userType, String orderBy) {
List<Map<String, Object>> list = Lists.newArrayList();
boolean excludeLeave = isAllOnline == null || !Global.YES.equals(isAllOnline);
boolean excludeVisitor = isVisitor == null || !Global.YES.equals(isVisitor);
Collection<Session> sessions = sessionDAO.getActiveSessions(excludeLeave, excludeVisitor, null, sessionId, userCode);
long currentTime = System.currentTimeMillis();
for (Session session : sessions) {
if (StringUtils.isNotBlank(userName) && ((String) session.getAttribute("userName")).contains(userName)) {
continue;
}
if (StringUtils.isNotBlank(userType) && ((String) session.getAttribute("userType")).equals(userType)) {
continue;
}
Map<String, Object> map = Maps.newLinkedHashMap();
// 为了安全性,需要有权限的人才能看
if (UserUtils.getSubject().isPermitted("sys:online:edit")) {
map.put("id", session.getId().toString());
}
map.put("startTimestamp", DateUtils.formatDateTime(session.getStartTimestamp()));
map.put("lastAccessTime", DateUtils.formatDateTime(session.getLastAccessTime()));
map.put("timeout", TimeUtils.formatDateAgo(session.getTimeout() - (currentTime - session.getLastAccessTime().getTime())));
PrincipalCollection pc = (PrincipalCollection) session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
LoginInfo principal = (pc != null ? (LoginInfo) pc.getPrimaryPrincipal() : null);
if (principal != null) {
// principal.getId());
map.put("userCode", session.getAttribute("userCode"));
// principal.getName());
map.put("userName", session.getAttribute("userName"));
// ObjectUtils.toString(principal.getParam("userType")));
map.put("userType", session.getAttribute("userType"));
map.put("deviceType", ObjectUtils.toString(principal.getParam("deviceType")));
}
map.put("host", session.getHost());
list.add(map);
}
// 本地排序
if (StringUtils.isNotBlank(orderBy)) {
final String[] ss = orderBy.trim().split(" ");
if (ss != null && ss.length == 2) {
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
String s1 = (String) o1.get(ss[0]);
String s2 = (String) o2.get(ss[0]);
if ("asc".equals(ss[1])) {
return s1.compareTo(s2);
} else {
return s2.compareTo(s1);
}
}
});
}
}
return list;
}
/**
* 提出在线用户
* @author ThinkGem
*/
@RequiresPermissions("sys:online:edit")
@RequestMapping(value = "tickOut")
@ResponseBody
public String tickOut(String sessionId) {
Session session = sessionDAO.readSession(sessionId);
if (session != null) {
sessionDAO.delete(session);
return renderResult(Global.TRUE, "踢出已成功!");
}
return renderResult(Global.FALSE, "踢出失败,没有找到该在线用户!");
}
}
19
View Source File : CacheController.java
License : MIT License
Project Creator : Zo3i
License : MIT License
Project Creator : Zo3i
/**
* 缓存管理
* @author ThinkGem
* @version 20167-8-27
*/
@Controller
@RequestMapping(value = "${adminPath}/sys/cache")
public clreplaced CacheController extends BaseController {
/**
* 清理全部缓存,可清理属性文件里的缓存
* @return
*/
@RequiresPermissions("sys:config:edit")
@RequestMapping(value = "clearAll")
@ResponseBody
public String clearAll() {
CacheUtils.clearCache();
UserUtils.clearCache();
Global.clearCache();
return renderResult(Global.TRUE, "清理缓存成功!");
}
}
19
View Source File : ValidateCodeController.java
License : Apache License 2.0
Project Creator : zlt2000
License : Apache License 2.0
Project Creator : zlt2000
/**
* 验证码提供
* @author zlt
* @date 2018/12/18
*/
@Controller
public clreplaced ValidateCodeController {
@Autowired
private IValidateCodeService validateCodeService;
/**
* 创建验证码
*
* @throws Exception
*/
@GetMapping(SecurityConstants.DEFAULT_VALIDATE_CODE_URL_PREFIX + "/{deviceId}")
public void createCode(@PathVariable String deviceId, HttpServletResponse response) throws Exception {
replacedert.notNull(deviceId, "机器码不能为空");
// 设置请求头为输出图片类型
CaptchaUtil.setHeader(response);
// 三个参数分别为宽、高、位数
GifCaptcha gifCaptcha = new GifCaptcha(100, 35, 4);
// 设置类型:字母数字混合
gifCaptcha.setCharType(Captcha.TYPE_DEFAULT);
// 保存验证码
validateCodeService.saveImageCode(deviceId, gifCaptcha.text().toLowerCase());
// 输出图片流
gifCaptcha.out(response.getOutputStream());
}
/**
* 发送手机验证码
* 后期要加接口限制
*
* @param mobile 手机号
* @return R
*/
@ResponseBody
@GetMapping(SecurityConstants.MOBILE_VALIDATE_CODE_URL_PREFIX + "/{mobile}")
public Result createCode(@PathVariable String mobile) {
replacedert.notNull(mobile, "手机号不能为空");
return validateCodeService.sendSmsCode(mobile);
}
}
19
View Source File : JobApiController.java
License : Apache License 2.0
Project Creator : zlt2000
License : Apache License 2.0
Project Creator : zlt2000
/**
* Created by xuxueli on 17/5/10.
*/
@Controller
public clreplaced JobApiController implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
}
@RequestMapping(AdminBiz.MAPPING)
@PermessionLimit(limit = false)
public void api(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
XxlJobDynamicScheduler.invokeAdminService(request, response);
}
}
19
View Source File : HomeController.java
License : Apache License 2.0
Project Creator : zlt2000
License : Apache License 2.0
Project Creator : zlt2000
/**
* @author zlt
* @date 2020/2/22
* <p>
* Blog: https://zlt2000.gitee.io
* Github: https://github.com/zlt2000
*/
@Controller
public clreplaced HomeController {
@GetMapping("/")
public String home(ModelMap modelMap, Authentication authentication) {
OAuth2Authentication oauth2Authentication = (OAuth2Authentication) authentication;
modelMap.put("username", oauth2Authentication.getName());
modelMap.put("authorities", oauth2Authentication.getAuthorities());
modelMap.put("clientId", oauth2Authentication.getOAuth2Request().getClientId());
OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) oauth2Authentication.getDetails();
modelMap.put("token", details.getTokenValue());
return "index";
}
}
19
View Source File : MainController.java
License : Apache License 2.0
Project Creator : zipingdong
License : Apache License 2.0
Project Creator : zipingdong
@Controller
public clreplaced MainController {
private Map<String, File> readerPlugins = new HashMap<String, File>();
private Map<String, File> writerPlugins = new HashMap<String, File>();
@RequestMapping("index")
public String showPlugins(ModelMap modelMap) throws FileNotFoundException {
listPlugin(readerPlugins, new File(Constant.DATAX_READER_HOME));
listPlugin(writerPlugins, new File(Constant.DATAX_WRITER_HOME));
modelMap.put("readerPlugins", readerPlugins);
modelMap.put("writerPlugins", writerPlugins);
return "index";
}
private void listPlugin(Map<String, File> plugins, File dir) {
for (File file : dir.listFiles()) {
plugins.put(file.getName(), new File(file, "plugin_job_template.json"));
}
}
}
19
View Source File : IndexController.java
License : Apache License 2.0
Project Creator : ZimoLoveShuang
License : Apache License 2.0
Project Creator : ZimoLoveShuang
@Controller
public clreplaced IndexController {
@RequestMapping(path = { "/", "/index", "/index.html" })
public String index() {
return "index";
}
}
19
View Source File : UserController.java
License : Apache License 2.0
Project Creator : zifangsky
License : Apache License 2.0
Project Creator : zifangsky
/**
* 用户相关controller
*
* @author zifangsky
* @date 2018/7/9
* @since 1.0.0
*/
@Controller
@RequestMapping("/user")
public clreplaced UserController {
/**
* 用户首页
* @author zifangsky
* @date 2018/7/9 17:10
* @since 1.0.0
* @return java.lang.String
*/
@RequestMapping("/userIndex")
public String userIndex() {
return "userIndex";
}
/**
* 一个测试的受保护的页面
* @author zifangsky
* @date 2018/7/9 17:10
* @since 1.0.0
* @return java.lang.String
*/
@RequestMapping("/protected")
public String protectedPage() {
return "protected";
}
}
19
View Source File : UserController.java
License : Apache License 2.0
Project Creator : zifangsky
License : Apache License 2.0
Project Creator : zifangsky
/**
* 用户相关controller
*
* @author zifangsky
* @date 2018/8/3
* @since 1.0.0
*/
@Controller
public clreplaced UserController {
@Resource(name = "userServiceImpl")
private UserService userService;
/**
* 注册接口
* @author zifangsky
* @date 2018/8/3 11:13
* @since 1.0.0
* @return java.util.Map<java.lang.String,java.lang.Object>
*/
@PostMapping(value = "/register", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public Map<String, Object> register(@RequestBody(required = true) User user) {
Map<String, Object> result = new HashMap<>(2);
boolean registerRet = userService.register(user);
if (registerRet) {
result.put("code", "200");
} else {
result.put("code", "500");
result.put("msg", "注册失败");
}
return result;
}
/**
* 登录页面
* @author zifangsky
* @date 2018/8/3 11:13
* @since 1.0.0
* @return org.springframework.web.servlet.ModelAndView
*/
@RequestMapping("/login")
public ModelAndView loginPage(HttpServletRequest request) {
String redirectUrl = request.getParameter("redirectUri");
if (StringUtils.isNoneBlank(redirectUrl)) {
HttpSession session = request.getSession();
// 将回调地址添加到session中
session.setAttribute(Constants.SESSION_LOGIN_REDIRECT_URL, redirectUrl);
}
return new ModelAndView("login");
}
/**
* 登录验证
* @author zifangsky
* @date 2018/8/3 11:13
* @since 1.0.0
* @return java.util.Map<java.lang.String,java.lang.Object>
*/
@PostMapping("/check")
@ResponseBody
public Map<String, Object> check(HttpServletRequest request) {
Map<String, Object> result = new HashMap<>(2);
// 用户名
String username = request.getParameter("username");
// 密码
String preplacedword = request.getParameter("preplacedword");
if (StringUtils.isNoneBlank(username) && StringUtils.isNoneBlank(preplacedword)) {
// 1. 登录验证
Map<String, Object> checkMap = userService.checkLogin(username, preplacedword);
Boolean loginResult = (Boolean) checkMap.get("result");
User correctUser = (User) checkMap.get("user");
// 登录验证通过
if (loginResult != null && loginResult) {
// 2. session中添加用户信息
HttpSession session = request.getSession();
session.setAttribute(Constants.SESSION_USER, correctUser);
// 3. 返回给页面的数据
result.put("code", 200);
// 登录成功之后的回调地址
String redirectUrl = (String) session.getAttribute(Constants.SESSION_LOGIN_REDIRECT_URL);
session.removeAttribute(Constants.SESSION_LOGIN_REDIRECT_URL);
if (StringUtils.isNoneBlank(redirectUrl)) {
result.put("redirect_uri", redirectUrl);
}
} else {
if (correctUser.getStatus() == 0) {
result.put("msg", "该用户还未开通!");
} else if (correctUser.getStatus() == 3) {
result.put("msg", "该用户已被管理员禁用!");
} else {
result.put("msg", "用户名或密码错误!");
}
}
} else {
result.put("msg", "请求参数不能为空!");
}
return result;
}
/**
* 注销
* @author zifangsky
* @date 2018/8/3 11:47
* @since 1.0.0
* @return org.springframework.web.servlet.ModelAndView
*/
@RequestMapping("/logout")
public ModelAndView logout(HttpServletRequest request) {
HttpSession session = request.getSession();
session.removeAttribute(Constants.SESSION_USER);
return new ModelAndView("redirect:/login");
}
/**
* 用户首页
* @author zifangsky
* @date 2018/8/3 11:13
* @since 1.0.0
* @return java.lang.String
*/
@RequestMapping("/user/userIndex")
public String userIndex() {
return "userIndex";
}
}
19
View Source File : LoginController.java
License : Apache License 2.0
Project Creator : zifangsky
License : Apache License 2.0
Project Creator : zifangsky
/**
* 登录
* @author zifangsky
* @date 2018/7/9
* @since 1.0.0
*/
@Controller
public clreplaced LoginController {
/**
* 模拟登录验证
* @author zifangsky
* @date 2018/7/9 17:09
* @since 1.0.0
* @param username 用户名
* @param preplacedword 密码
* @return java.util.Map<java.lang.String,java.lang.Object>
*/
@PostMapping("/check")
@ResponseBody
public Map<String, Object> test(@RequestParam(required = true) String username, @RequestParam(required = true) String preplacedword) {
Map<String, Object> result = new HashMap<>(1);
System.out.println(MessageFormat.format("用户名:{0},密码:{1}", username, preplacedword));
// 模拟登录
System.out.println("模拟登录流程");
result.put("code", 200);
return result;
}
/**
* 用户首页
* @author zifangsky
* @date 2018/7/9 17:10
* @since 1.0.0
* @return java.lang.String
*/
@RequestMapping("/userIndex")
public String userIndex() {
return "userIndex";
}
}
19
View Source File : WeiXinPayTestController.java
License : Apache License 2.0
Project Creator : zhuoqianmingyue
License : Apache License 2.0
Project Creator : zhuoqianmingyue
@Controller
@RestController
@RequestMapping("/wx")
public clreplaced WeiXinPayTestController {
private static final String UNIFIEDORDERURL = "https://api.mch.weixin.qq.com/pay/unifiedorder";
private static final String GETSIGNKEYURL = "https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey";
private static final String SANDBOXUNIFIEDORDERURL = "https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder";
private static final String ORDERQUERYURL = "https://api.mch.weixin.qq.com/pay/orderquery";
@Autowired
private WeiXinPayProperties weiXinPayProperties;
@Autowired
private RestTemplate restTemplate;
/**
* 正式支付
* @return
*/
@RequestMapping("/nativePay")
public String nativePay() {
/*配置微信支付基础信息参数*/
Map<String, String> requestData = new HashMap<String, String>();
// 公众账号ID
requestData.put("appid", weiXinPayProperties.getAppid());
// 商户号
requestData.put("mch_id", weiXinPayProperties.getMchId());
// 随机字符串 32位以内
requestData.put("nonce_str", RandomUtil.randomString(15));
// APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。
requestData.put("spbill_create_ip", "15.23.160.111");
// 交易类型 扫码支付
requestData.put("trade_type", "NATIVE");
/*配置微信支付自定义支付信息参数*/
requestData.put("attach", "附加数据远洋返回");
// 商品简单描述
requestData.put("body", "订单号 BW_000001");
// 商户订单号
requestData.put("out_trade_no", "BW_000001");
// 标价金额 按照分进行计算
requestData.put("total_fee", WeiXinUtil.getMoney("0.01"));
// 通知地址 异步接收微信支付结果通知的回调地址必须外网访问 不能携带参数
requestData.put("notify_url", "www.beiwaiclreplaced.com");
/*配置微信支付sign信息参数*/
String sign = null;
String payUrl = null;
if (Boolean.valueOf(weiXinPayProperties.getUseSandbox())) {
// 生成签名
sign = WeiXinUtil.generateSign(requestData, weiXinPayProperties.getKey());
payUrl = UNIFIEDORDERURL;
} else {
// 生成签名
sign = WeiXinUtil.generateSign(requestData, weiXinPayProperties.getSandboxKey());
payUrl = SANDBOXUNIFIEDORDERURL;
}
requestData.put("sign", sign);
/*将map信息转换成String*/
String mapToXmlStr = XmlUtil.mapToXmlStr(requestData, "xml");
/*调用微信统一下单Api将mapToXmlStr作为参数*/
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_XML);
HttpEnreplacedy<String> formEnreplacedy = new HttpEnreplacedy<>(mapToXmlStr, headers);
ResponseEnreplacedy<String> postForEnreplacedy = restTemplate.postForEnreplacedy(payUrl, formEnreplacedy, String.clreplaced);
// 获取微信返回的信息
String returnXmlString = postForEnreplacedy.getBody();
Map<String, Object> xmlToMap = XmlUtil.xmlToMap(returnXmlString);
String returnCode = (String) xmlToMap.get("return_code");
if ("SUCCESS".equals(returnCode)) {
String codeUrl = (String) xmlToMap.get("code_url");
return codeUrl;
}
return "";
}
/**
* 支付回调
* @throws Exception
*/
@RequestMapping("/wxNotify")
public void wxNotify(HttpServletRequest request) throws Exception {
Map<String, String> parseNotifyParameter = parseNotifyParameter(request);
// 生成签名
String sign = WeiXinUtil.generateSign(parseNotifyParameter, weiXinPayProperties.getKey());
if (sign.equals(parseNotifyParameter.get("sign"))) {
// 支付成功
}
}
/**
* @return
*/
@RequestMapping("/query")
public String query(String orderSn) {
if (StringUtils.isBlank(orderSn)) {
throw new RuntimeException("订单号不能为空!");
}
// 配置微信支付基础信息参数
Map<String, String> requestData = new HashMap<String, String>();
// 公众账号ID
requestData.put("appid", weiXinPayProperties.getAppid());
// 商户号
requestData.put("mch_id", weiXinPayProperties.getMchId());
// 随机字符串 32位以内
requestData.put("nonce_str", RandomUtil.randomString(15));
// 终端IP 支持IPV4和IPV6两种格式的IP地址 123.12.12.123
requestData.put("spbill_create_ip", "127.0.0.1");
// 配置微信支付查询订单号参数
// 商户订单号
requestData.put("out_trade_no", orderSn);
// 配置微信支付查询sign信息参数
// 生成签名
String sign = WeiXinUtil.generateSign(requestData, weiXinPayProperties.getKey());
requestData.put("sign", sign);
// 将map信息转换成String
String mapToXmlStr = XmlUtil.mapToXmlStr(requestData, "xml");
// 调用微信统一下单Api 将xml的String信息作为参数
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_XML);
HttpEnreplacedy<String> formEnreplacedy = new HttpEnreplacedy<>(mapToXmlStr, headers);
ResponseEnreplacedy<String> postForEnreplacedy = restTemplate.postForEnreplacedy(ORDERQUERYURL, formEnreplacedy, String.clreplaced);
// 获取微信返回的信息
String returnXmlString = postForEnreplacedy.getBody();
Map<String, Object> xmlToMap = XmlUtil.xmlToMap(returnXmlString);
String returnCode = (String) xmlToMap.get("return_code");
if ("SUCCESS".equals(returnCode)) {
return "支付成功!";
} else {
return "";
}
}
/**
* 获取沙箱环境验签秘钥API
* https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=23_1
* @return
* @throws Exception
*/
@RequestMapping("/getSignKey")
public Map<String, Object> getSignKey() throws Exception {
Map<String, String> requestData = new HashMap<>();
requestData.put("appid", weiXinPayProperties.getAppid());
requestData.put("mch_id", weiXinPayProperties.getMchId());
requestData.put("nonce_str", RandomUtil.randomString(15));
// 生成签名
String sign = WeiXinUtil.generateSign(requestData, weiXinPayProperties.getKey());
requestData.put("sign", sign);
String mapToXmlStr = XmlUtil.mapToXmlStr(requestData, "xml");
// 调用微信统一下单Api 将xml的String信息作为参数
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_XML);
HttpEnreplacedy<String> formEnreplacedy = new HttpEnreplacedy<>(mapToXmlStr, headers);
ResponseEnreplacedy<String> postForEnreplacedy = restTemplate.postForEnreplacedy(GETSIGNKEYURL, formEnreplacedy, String.clreplaced);
String returnXmlString = postForEnreplacedy.getBody();
Map<String, Object> responseMap = XmlUtil.xmlToMap(returnXmlString);
return responseMap;
}
/**
* 从request的inputStream中获取参数
* @param request
* @return
* @throws Exception
*/
public Map<String, String> parseNotifyParameter(HttpServletRequest request) throws Exception {
InputStream inputStream = request.getInputStream();
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length = 0;
while ((length = inputStream.read(buffer)) != -1) {
outSteam.write(buffer, 0, length);
}
outSteam.close();
inputStream.close();
// 获取微信调用我们notify_url的返回信息
String resultXml = new String(outSteam.toByteArray(), "utf-8");
Map<String, String> notifyMap = WeiXinUtil.xmlToMap(resultXml);
return notifyMap;
}
}
19
View Source File : ProductController.java
License : Apache License 2.0
Project Creator : zhuoqianmingyue
License : Apache License 2.0
Project Creator : zhuoqianmingyue
@Controller
public clreplaced ProductController {
@Autowired
private LocaleResolver localeResolver;
private ProductService productService = new ProductService();
@RequestMapping("/")
public String useT(Model model, HttpServletRequest request, HttpServletResponse response) {
// 获取所有的商品
List<Product> allProducts = productService.findAll();
model.addAttribute("prods", allProducts);
// 获取当前日期
model.addAttribute("today", Calendar.getInstance());
// 设置访问用户信息到session
request.getSession(true).setAttribute("user", new User("桌前", "明月", "CHINA", null));
localeResolver.setLocale(request, response, Locale.CHINA);
return "productList";
}
}
19
View Source File : LayoutController.java
License : Apache License 2.0
Project Creator : zhuoqianmingyue
License : Apache License 2.0
Project Creator : zhuoqianmingyue
@Controller
@RequestMapping("/layout")
public clreplaced LayoutController {
@RequestMapping("/index")
public String index(Model model) {
return "/layout/index";
}
@RequestMapping("/index2")
public String index2(Model model) {
return "/layout/index2";
}
}
19
View Source File : ThymeleafHelloWrodController.java
License : Apache License 2.0
Project Creator : zhuoqianmingyue
License : Apache License 2.0
Project Creator : zhuoqianmingyue
@Controller
@RequestMapping("/hello")
public clreplaced ThymeleafHelloWrodController {
@RequestMapping("/thymeleaf")
public String helloThymeleaf(Model model) {
model.addAttribute("hello", "hello Thymeleaf!");
return "hello/index";
}
}
19
View Source File : CourseController.java
License : Apache License 2.0
Project Creator : zhuoqianmingyue
License : Apache License 2.0
Project Creator : zhuoqianmingyue
@Controller
@RequestMapping("/course")
public clreplaced CourseController {
@RequestMapping("/th")
public String th(Model model) {
String msg = "<h1>我是h1</h1>";
model.addAttribute("msg", msg);
model.addAttribute("a", 1);
model.addAttribute("b", 2);
model.addAttribute("flag", true);
User user = new User("ljk", 23);
model.addAttribute("user", user);
return "/course/th";
}
@RequestMapping("/thif")
public String thif(Model model) {
model.addAttribute("flag", true);
return "/course/thif";
}
@RequestMapping("/thswitch")
public String thswitch(Model model) {
User user = new User("ljk", 23);
model.addAttribute("user", user);
return "/course/thswitch";
}
@RequestMapping("/theach")
public String theach(Model model) {
List<User> userList = new ArrayList<User>();
User user1 = new User("ljk", 18);
User user2 = new User("ljk2", 19);
User user3 = new User("ljk3", 20);
User user4 = new User("lj4", 21);
userList.add(user1);
userList.add(user2);
userList.add(user3);
userList.add(user4);
model.addAttribute("userList", userList);
List<String> strList = new ArrayList<String>();
strList.add("ljk");
strList.add("ljk2");
strList.add("ljk3");
strList.add("lj4");
model.addAttribute("strList", strList);
return "/course/theach";
}
@RequestMapping("/dates")
public String dates(Model model) throws ParseException {
Date date = new Date();
model.addAttribute("date", date);
String dateStr = "2018-05-30";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date2 = sdf.parse(dateStr);
Date[] datesArray = new Date[2];
datesArray[0] = date;
datesArray[1] = date2;
model.addAttribute("datesArray", datesArray);
List<Date> datesList = new ArrayList<Date>();
datesList.add(date);
datesList.add(date2);
model.addAttribute("datesList", datesList);
return "/course/dates";
}
@RequestMapping("/numbers")
public String numbers(Model model) throws ParseException {
List<Integer> numList = new ArrayList<Integer>();
numList.add(1);
numList.add(12);
numList.add(13);
model.addAttribute("numList", numList);
return "/course/numbers";
}
@RequestMapping("/strings")
public String strings(Model model) {
Object object = "123";
model.addAttribute("object", object);
List<Integer> numList = new ArrayList<Integer>();
numList.add(1);
numList.add(12);
numList.add(13);
model.addAttribute("numList", numList);
String name = null;
model.addAttribute("name", name);
String[] nameArr = { null, "1", null };
model.addAttribute("textArray", nameArr);
List<String> nameList = new ArrayList<String>();
nameList.add("1");
nameList.add(null);
model.addAttribute("nameList", nameList);
Set<String> nameSet = new HashSet<String>();
nameSet.add(null);
nameSet.add("1");
model.addAttribute("nameSet", nameSet);
String text = null;
model.addAttribute("text", text);
String[] textArr = { "abc" };
model.addAttribute("textArry", textArr);
List<String> textList = new ArrayList<String>();
textList.add("abc");
textList.add(null);
model.addAttribute("textList", textList);
Set<String> textSet = new HashSet<String>();
textSet.add("abc");
textSet.add("");
textSet.add("default");
model.addAttribute("textSet", textSet);
String[] namesArray = { "a", "b", "c" };
model.addAttribute("namesArray", namesArray);
List<String> namesList = new ArrayList<String>();
namesList.add("a");
namesList.add("b");
namesList.add("c");
model.addAttribute("namesList", namesList);
Set<String> namesSet = new HashSet<String>();
namesSet.add("a");
namesSet.add("b");
namesSet.add("c");
model.addAttribute("namesSet", namesSet);
return "/course/strings";
}
@RequestMapping("/objects")
public String objects(Model model) {
Object obj = null;
model.addAttribute("obj", obj);
Object[] objArray = { "abc" };
model.addAttribute("objArray", objArray);
List<String> objList = new ArrayList();
objList.add("1");
objList.add(null);
objList.add("2");
model.addAttribute("objList", objList);
Set<String> objSet = new HashSet();
objSet.add("1");
objSet.add(null);
objSet.add("2");
model.addAttribute("objSet", objSet);
return "/course/objects";
}
@RequestMapping("/bools")
public String bools(Model model) {
return "/course/bools";
}
@RequestMapping("/arrays")
public String arrays(Model model) {
List<String> object = new ArrayList<String>();
object.add("1");
object.add("2");
model.addAttribute("object", object);
Integer[] array = { 1, 2, 3 };
model.addAttribute("array", array);
Integer[] array2 = { 1, 3 };
model.addAttribute("array2", array2);
return "/course/arrays";
}
@RequestMapping("/lists")
public String lists(Model model) {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(3);
list.add(2);
model.addAttribute("list", list);
List<Integer> list2 = new ArrayList<Integer>();
list2.add(1);
list2.add(2);
model.addAttribute("list2", list2);
return "/course/lists";
}
@RequestMapping("/sets")
public String sets(Model model) {
Set<Integer> set = new HashSet<Integer>();
set.add(1);
set.add(2);
set.add(3);
set.add(4);
model.addAttribute("set", set);
Integer[] elements = { 1, 2 };
model.addAttribute("elements", elements);
return "/course/sets";
}
@RequestMapping("/maps")
public String maps(Model model) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("1", 1);
map.put("2", 2);
map.put("3", 3);
model.addAttribute("map", map);
String[] keys = { "1", "2" };
model.addAttribute("keys", keys);
Integer[] values = { 1, 2 };
model.addAttribute("values", values);
return "/course/maps";
}
@RequestMapping("/aggregates")
public String aggregates(Model model) {
Integer[] array = { 1, 2, 3, 4 };
model.addAttribute("array", array);
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
model.addAttribute("list", list);
return "/course/aggregates";
}
@RequestMapping("/ids")
public String ids(Model model) {
return "/course/ids";
}
@RequestMapping("/threeElementOperation")
public String threeElementOperation(Model model) {
model.addAttribute("name", "ljk");
return "/course/threeElementOperation";
}
@RequestMapping("/elvis")
public String elvis(Model model) {
model.addAttribute("age", null);
model.addAttribute("age2", 18);
return "/course/elvis";
}
@RequestMapping("/noOperation")
public String noOperation(Model model) {
model.addAttribute("name", null);
return "/course/noOperation";
}
@RequestMapping("/thhref")
public String thhref(Model model) {
return "/course/thhref";
}
@RequestMapping("/thclreplaced")
public String thclreplaced(Model model) {
return "/course/thclreplaced";
}
@RequestMapping("/thattr")
public String thattr(Model model) {
return "/course/thattr";
}
@RequestMapping("/thvalue")
public String thvalue(Model model) {
model.addAttribute("name", "ljk");
return "/course/thvalue";
}
@RequestMapping("/thaction")
public String thaction(Model model) {
return "/course/thaction";
}
@RequestMapping("/thid")
public String thid(Model model) {
model.addAttribute("id", 123);
return "/course/thid";
}
@RequestMapping("/thonclick")
public String honclick(Model model) {
return "/course/thonclick";
}
@RequestMapping("/thselected")
public String thselected(Model model) {
model.addAttribute("sex", 1);
return "/course/thselected";
}
@RequestMapping("/thsrc")
public String thsrc(Model model) {
return "/course/thsrc";
}
@RequestMapping("/thstyle")
public String thstyle(Model model) {
model.addAttribute("isShow", true);
return "/course/thstyle";
}
@RequestMapping("/thwith")
public String thwith(Model model) {
model.addAttribute("today", new Date());
List<User> users = new ArrayList<User>();
users.add(new User("ljk", 18));
users.add(new User("ljk2", 18));
model.addAttribute("users", users);
return "/course/thwith";
}
}
19
View Source File : JspController.java
License : Apache License 2.0
Project Creator : zhuoqianmingyue
License : Apache License 2.0
Project Creator : zhuoqianmingyue
@Controller
@RequestMapping()
public clreplaced JspController {
@RequestMapping("/jsp")
public String toJps(Model model) {
model.addAttribute("welcome", "不建议使用jsp");
return "welcome";
}
}
19
View Source File : IndexController.java
License : Apache License 2.0
Project Creator : zhuoqianmingyue
License : Apache License 2.0
Project Creator : zhuoqianmingyue
@Controller
public clreplaced IndexController {
@GetMapping("/index")
public String index(ModelAndView modelAndView) {
return "index";
}
}
19
View Source File : HelloWorldController.java
License : Apache License 2.0
Project Creator : zhuoqianmingyue
License : Apache License 2.0
Project Creator : zhuoqianmingyue
@Controller
@RequestMapping("/hello")
public clreplaced HelloWorldController {
@RequestMapping("/test")
public String test(Model model) {
model.addAttribute("msg", "SpringBoot With Freemark hello world!");
return "test/helloworld";
}
}
19
View Source File : LoginController.java
License : GNU General Public License v3.0
Project Creator : zhshuixian
License : GNU General Public License v3.0
Project Creator : zhshuixian
/**
* @author xian
*/
@Controller
public clreplaced LoginController {
@RequestMapping("/login")
public String login() {
return "login";
}
@RequestMapping("/login-error")
public String loginError(Model model) {
// 登录错误
model.addAttribute("error", true);
return "login";
}
}
19
View Source File : AdminController.java
License : GNU General Public License v3.0
Project Creator : zhshuixian
License : GNU General Public License v3.0
Project Creator : zhshuixian
/**
* @author xian
*/
@Controller
public clreplaced AdminController {
@PreAuthorize("hasRole('ADMIN')")
@RequestMapping("/admin")
public String admin() {
return "admin";
}
}
19
View Source File : SysLoginInfoController.java
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
/**
* 登陆日志控制器
* @author zhouzhou
* @date 2018-03-13 15:15
*/
@Controller
@RequestMapping("/sys/logininfo")
public clreplaced SysLoginInfoController extends BaseController {
private String urlPrefix = "modules/log";
@Autowired
private SysLoginInfoSerice sysLoginInfoService;
@RequiresPermissions("sys:logininfo:view")
@GetMapping()
public String indfo() {
return urlPrefix + "/logininfo";
}
/**
* 列表
*/
@RequestMapping("/list")
@RequiresPermissions("sys:logininfo:list")
@ResponseBody
public ResponseData list(@RequestParam Map<String, Object> params) {
PageUtil page = sysLoginInfoService.findPage(params);
return success(page);
}
@RequestMapping("/del")
@BussinessLog(replacedle = "登陆日志", businessType = BusinessType.DELETE)
@RequiresPermissions("sys:logininfo:del")
@ResponseBody
public ResponseData del(Long[] ids) {
return sysLoginInfoService.deleteBatchByIds(ids) ? success() : error("删除失败!");
}
@BussinessLog(replacedle = "登陆日志", businessType = BusinessType.CLEAN)
@RequiresPermissions("sys:logininfo:clean")
@PostMapping("/clean")
@ResponseBody
@RepeatSubmit
public ResponseData clean() {
return sysLoginInfoService.cleanLog() ? success() : error("清空失败!");
}
}
19
View Source File : SysLogController.java
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
/**
* 系统操作日志
*/
@Controller
@RequestMapping("/sys/operlog")
public clreplaced SysLogController extends BaseController {
private String urlPrefix = "modules/log";
@Autowired
private SysOperLogSerice sysOperLogSerice;
@RequiresPermissions("sys:log:view")
@GetMapping()
public String operlog() {
return urlPrefix + "/operlog";
}
/**
* 列表
*/
@ResponseBody
@RequestMapping("/list")
@RequiresPermissions("sys:log:list")
public ResponseData list(@RequestParam Map<String, Object> params) {
PageUtil page = sysOperLogSerice.findPage(params);
return success(page);
}
@RequiresPermissions("sys:log:detail")
@GetMapping("/detail/{operId}")
public String detail(@PathVariable("operId") Long operId, ModelMap mmap) {
mmap.put("sysLog", sysOperLogSerice.getById(operId));
return urlPrefix + "/detail";
}
@BussinessLog(replacedle = "操作日志", businessType = BusinessType.CLEAN)
@RequiresPermissions("sys:log:clean")
@PostMapping("/clean")
@ResponseBody
@RepeatSubmit
public ResponseData clean() {
return sysOperLogSerice.cleanLog() ? success() : error("清空失败!");
}
@RequestMapping("/del")
@BussinessLog(replacedle = "操作日志", businessType = BusinessType.DELETE)
@RequiresPermissions("sys:log:del")
@ResponseBody
public ResponseData del(Long[] ids) {
return sysOperLogSerice.removeByIds(Arrays.asList(ids)) ? success() : error("删除失败!");
}
}
19
View Source File : SysJobLogController.java
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
/**
* 定时任务日志控制器
* @author zhouzhou
* @date 2020-03-08 20:52
*/
@Controller
@RequestMapping("/sys/jobLog")
public clreplaced SysJobLogController extends BaseController {
private String urlPrefix = "modules/sys/job";
@Autowired
private SysJobLogService sysJobLogService;
@RequiresPermissions("sys:job:loglist")
@GetMapping()
public String jobLog() {
return urlPrefix + "/jobLog";
}
/**
* 定时任务日志列表
*/
@RequestMapping("/list")
@ResponseBody
@RequiresPermissions("sys:job:loglist")
public ResponseData list(@RequestParam Map<String, Object> params) {
PageUtil page = sysJobLogService.findPage(params);
return success(page);
}
/**
* 定时任务日志信息
*/
@RequestMapping("/info/{logId}")
public ResponseData info(@PathVariable("logId") Long logId) {
SysJobLogEnreplacedy log = sysJobLogService.getById(logId);
return success().put("log", log);
}
@BussinessLog(replacedle = "调度日志", businessType = BusinessType.CLEAN)
@RequiresPermissions("sys:joblog:clean")
@PostMapping("/clean")
@ResponseBody
@RepeatSubmit
public ResponseData clean() {
return sysJobLogService.cleanJobLog() ? success() : error("清空失败!");
}
/**
* 删除定时任务
*/
@BussinessLog(replacedle = "调度日志", businessType = BusinessType.DELETE)
@RequestMapping(value = "/del", method = RequestMethod.POST)
@RequiresPermissions("sys:joblog:del")
@ResponseBody
@RepeatSubmit
public ResponseData del(Long[] ids) {
return sysJobLogService.deleteBatchByIds(ids) ? success() : error("删除失败!");
}
}
19
View Source File : IconGentroller.java
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
/**
* @ClreplacedName: IconGentroller
* @Package: com.j2eefast.generator.gen.controller
* @Description: (用一句话描述该文件做什么)
* @author: zhouzhou Emall:[email protected]
* @time 2020/2/5 19:54
* @version V1.0
*/
@Controller
@RequestMapping("/tool/icon")
public clreplaced IconGentroller extends BaseController {
private String urlPrefix = "modules/tool/icon";
@RequiresPermissions("tool:icon:view")
@GetMapping()
public String icon() {
return urlPrefix + "/icon";
}
}
19
View Source File : ExampleTestController.java
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
/**
* 代码生成范例页面控制器
* @author ZhouZhou
* @date 2020-08-07 11:33
*/
@Controller
@RequestMapping("/gen/test")
public clreplaced ExampleTestController extends BaseController {
private String prefix = "modules/gen/test";
@Autowired
private ExampleTestService exampleTestService;
@RequiresPermissions("gen:test:view")
@GetMapping()
public String test() {
return prefix + "/test";
}
@RequestMapping("/list")
@RequiresPermissions("gen:test:list")
@ResponseBody
public ResponseData list(@RequestParam Map<String, Object> params, ExampleTestEnreplacedy exampleTestEnreplacedy) {
PageUtil page = exampleTestService.findPage(params, exampleTestEnreplacedy);
return success(page);
}
@GetMapping("/add")
public String add(ModelMap mmap) {
return prefix + "/add";
}
/**
* 新增
*/
@RepeatSubmit
@RequiresPermissions("gen:test:add")
@BussinessLog(replacedle = "代码生成范例", businessType = BusinessType.INSERT)
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public ResponseData addExampleTest(@Validated ExampleTestEnreplacedy exampleTest) {
// 校验参数
ValidatorUtil.validateEnreplacedy(exampleTest);
return exampleTestService.addExampleTest(exampleTest) ? success() : error("新增失败!");
}
/**
* 修改
*/
@RequiresPermissions("gen:test:edit")
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap) {
ExampleTestEnreplacedy exampleTest = exampleTestService.findExampleTestById(id);
mmap.put("exampleTest", exampleTest);
return prefix + "/edit";
}
/**
* 修改保存代码生成范例
*/
@RepeatSubmit
@RequiresPermissions("gen:test:edit")
@BussinessLog(replacedle = "代码生成范例", businessType = BusinessType.UPDATE)
@RequestMapping(value = "/edit", method = RequestMethod.POST)
@ResponseBody
public ResponseData editExampleTest(ExampleTestEnreplacedy exampleTest) {
ValidatorUtil.validateEnreplacedy(exampleTest);
return exampleTestService.updateExampleTestById(exampleTest) ? success() : error("修改失败!");
}
/**
* 删除
*/
@RepeatSubmit
@BussinessLog(replacedle = "代码生成范例", businessType = BusinessType.DELETE)
@RequestMapping(value = "/del", method = RequestMethod.POST)
@RequiresPermissions("gen:test:del")
@ResponseBody
public ResponseData del(Long[] ids) {
return exampleTestService.delExampleTestByIds(ids) ? success() : error("删除失败!");
}
}
19
View Source File : SysPostController.java
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
License : GNU Affero General Public License v3.0
Project Creator : zhouhuan751312
/**
* @ClreplacedName: 岗位信息Controller
* @Package: com.j2eefast.framework.sys
* @Description: sys_post
* @author: zhouzhou
* @time 2020-02-28
*/
@Controller
@RequestMapping("/sys/post")
public clreplaced SysPostController extends BaseController {
private String urlPrefix = "modules/sys/post";
@Autowired
private SysPostService sysPostService;
@RequiresPermissions("sys:post:view")
@GetMapping()
public String post() {
return urlPrefix + "/post";
}
@RequestMapping("/list")
@RequiresPermissions("sys:post:list")
@ResponseBody
public ResponseData list(@RequestParam Map<String, Object> params) {
PageUtil page = sysPostService.findPage(params);
return success(page);
}
/**
* 新增参数配置
*/
@GetMapping("/add")
public String add() {
return urlPrefix + "/add";
}
/**
* 新增保存岗位信息
*/
@RepeatSubmit
@RequiresPermissions("sys:post:add")
@BussinessLog(replacedle = "岗位信息", businessType = BusinessType.INSERT)
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public ResponseData addSave(@Validated SysPostEnreplacedy sysPost) {
// 校验参数
ValidatorUtil.validateEnreplacedy(sysPost);
sysPostService.save(sysPost);
return success();
}
/**
* 修改岗位信息 页面
*/
@RequiresPermissions("sys:post:edit")
@GetMapping("/edit/{postId}")
public String edit(@PathVariable("postId") Long postId, ModelMap mmap) {
SysPostEnreplacedy sysPost = sysPostService.getById(postId);
mmap.put("sysPost", sysPost);
return urlPrefix + "/edit";
}
/**
* 修改保存岗位信息
*/
@RepeatSubmit
@RequiresPermissions("sys:post:edit")
@BussinessLog(replacedle = "岗位信息", businessType = BusinessType.UPDATE)
@RequestMapping(value = "/edit", method = RequestMethod.POST)
@ResponseBody
public ResponseData editSave(SysPostEnreplacedy sysPost) {
ValidatorUtil.validateEnreplacedy(sysPost);
return sysPostService.updateById(sysPost) ? success() : error("修改失败!");
}
/**
* 删除岗位信息
*/
@RepeatSubmit
@BussinessLog(replacedle = "岗位信息", businessType = BusinessType.DELETE)
@RequestMapping(value = "/del", method = RequestMethod.POST)
@RequiresPermissions("sys:post:del")
@ResponseBody
public ResponseData delete(Long[] ids) {
return sysPostService.deleteBatchByIds(ids) ? success() : error("删除失败!");
}
}
See More Examples