克隆租户添加默认值

This commit is contained in:
gxwebsoft
2023-11-02 11:41:18 +08:00
parent faeb3aaa3f
commit 950beeb5e2
39 changed files with 2170 additions and 21 deletions

View File

@@ -0,0 +1,139 @@
package com.gxwebsoft.common.system.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.common.system.service.AppService;
import com.gxwebsoft.common.system.entity.App;
import com.gxwebsoft.common.system.param.AppParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 应用管理记录表控制器
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Api(tags = "应用管理记录表管理")
@RestController
@RequestMapping("/api/system/app")
public class AppController extends BaseController {
@Resource
private AppService appService;
@PreAuthorize("hasAuthority('sys:app:list')")
@OperationLog
@ApiOperation("分页查询应用管理记录表")
@GetMapping("/page")
public ApiResult<PageResult<App>> page(AppParam param) {
PageParam<App, AppParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(appService.page(page, page.getWrapper()));
// 使用关联查询
//return success(appService.pageRel(param));
}
@PreAuthorize("hasAuthority('sys:app:list')")
@OperationLog
@ApiOperation("查询全部应用管理记录表")
@GetMapping()
public ApiResult<List<App>> list(AppParam param) {
PageParam<App, AppParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(appService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(appService.listRel(param));
}
@PreAuthorize("hasAuthority('sys:app:list')")
@OperationLog
@ApiOperation("根据id查询应用管理记录表")
@GetMapping("/{id}")
public ApiResult<App> get(@PathVariable("id") Integer id) {
return success(appService.getById(id));
// 使用关联查询
//return success(appService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('sys:app:save')")
@OperationLog
@ApiOperation("添加应用管理记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody App app) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
app.setUserId(loginUser.getUserId());
}
if (appService.save(app)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('sys:app:update')")
@OperationLog
@ApiOperation("修改应用管理记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody App app) {
if (appService.updateById(app)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('sys:app:remove')")
@OperationLog
@ApiOperation("删除应用管理记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (appService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('sys:app:save')")
@OperationLog
@ApiOperation("批量添加应用管理记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<App> list) {
if (appService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('sys:app:update')")
@OperationLog
@ApiOperation("批量修改应用管理记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<App> batchParam) {
if (batchParam.update(appService, "app_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('sys:app:remove')")
@OperationLog
@ApiOperation("批量删除应用管理记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (appService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,134 @@
package com.gxwebsoft.common.system.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.common.system.service.AppUrlService;
import com.gxwebsoft.common.system.entity.AppUrl;
import com.gxwebsoft.common.system.param.AppUrlParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 域名管理记录表控制器
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Api(tags = "域名管理记录表管理")
@RestController
@RequestMapping("/api/system/app-url")
public class AppUrlController extends BaseController {
@Resource
private AppUrlService appUrlService;
@PreAuthorize("hasAuthority('sys:appUrl:list')")
@OperationLog
@ApiOperation("分页查询域名管理记录表")
@GetMapping("/page")
public ApiResult<PageResult<AppUrl>> page(AppUrlParam param) {
PageParam<AppUrl, AppUrlParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(appUrlService.page(page, page.getWrapper()));
// 使用关联查询
//return success(appUrlService.pageRel(param));
}
@PreAuthorize("hasAuthority('sys:appUrl:list')")
@OperationLog
@ApiOperation("查询全部域名管理记录表")
@GetMapping()
public ApiResult<List<AppUrl>> list(AppUrlParam param) {
PageParam<AppUrl, AppUrlParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(appUrlService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(appUrlService.listRel(param));
}
@PreAuthorize("hasAuthority('sys:appUrl:list')")
@OperationLog
@ApiOperation("根据id查询域名管理记录表")
@GetMapping("/{id}")
public ApiResult<AppUrl> get(@PathVariable("id") Integer id) {
return success(appUrlService.getById(id));
// 使用关联查询
//return success(appUrlService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('sys:appUrl:save')")
@OperationLog
@ApiOperation("添加域名管理记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody AppUrl appUrl) {
if (appUrlService.save(appUrl)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('sys:appUrl:update')")
@OperationLog
@ApiOperation("修改域名管理记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody AppUrl appUrl) {
if (appUrlService.updateById(appUrl)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('sys:appUrl:remove')")
@OperationLog
@ApiOperation("删除域名管理记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (appUrlService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('sys:appUrl:save')")
@OperationLog
@ApiOperation("批量添加域名管理记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<AppUrl> list) {
if (appUrlService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('sys:appUrl:update')")
@OperationLog
@ApiOperation("批量修改域名管理记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<AppUrl> batchParam) {
if (batchParam.update(appUrlService, "app_url_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('sys:appUrl:remove')")
@OperationLog
@ApiOperation("批量删除域名管理记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (appUrlService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,139 @@
package com.gxwebsoft.common.system.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.common.system.service.AppUserService;
import com.gxwebsoft.common.system.entity.AppUser;
import com.gxwebsoft.common.system.param.AppUserParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 应用成员控制器
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Api(tags = "应用成员管理")
@RestController
@RequestMapping("/api/system/app-user")
public class AppUserController extends BaseController {
@Resource
private AppUserService appUserService;
@PreAuthorize("hasAuthority('sys:appUser:list')")
@OperationLog
@ApiOperation("分页查询应用成员")
@GetMapping("/page")
public ApiResult<PageResult<AppUser>> page(AppUserParam param) {
PageParam<AppUser, AppUserParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(appUserService.page(page, page.getWrapper()));
// 使用关联查询
//return success(appUserService.pageRel(param));
}
@PreAuthorize("hasAuthority('sys:appUser:list')")
@OperationLog
@ApiOperation("查询全部应用成员")
@GetMapping()
public ApiResult<List<AppUser>> list(AppUserParam param) {
PageParam<AppUser, AppUserParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(appUserService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(appUserService.listRel(param));
}
@PreAuthorize("hasAuthority('sys:appUser:list')")
@OperationLog
@ApiOperation("根据id查询应用成员")
@GetMapping("/{id}")
public ApiResult<AppUser> get(@PathVariable("id") Integer id) {
return success(appUserService.getById(id));
// 使用关联查询
//return success(appUserService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('sys:appUser:save')")
@OperationLog
@ApiOperation("添加应用成员")
@PostMapping()
public ApiResult<?> save(@RequestBody AppUser appUser) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
appUser.setUserId(loginUser.getUserId());
}
if (appUserService.save(appUser)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('sys:appUser:update')")
@OperationLog
@ApiOperation("修改应用成员")
@PutMapping()
public ApiResult<?> update(@RequestBody AppUser appUser) {
if (appUserService.updateById(appUser)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('sys:appUser:remove')")
@OperationLog
@ApiOperation("删除应用成员")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (appUserService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('sys:appUser:save')")
@OperationLog
@ApiOperation("批量添加应用成员")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<AppUser> list) {
if (appUserService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('sys:appUser:update')")
@OperationLog
@ApiOperation("批量修改应用成员")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<AppUser> batchParam) {
if (batchParam.update(appUserService, "app_user_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('sys:appUser:remove')")
@OperationLog
@ApiOperation("批量删除应用成员")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (appUserService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -1,5 +1,6 @@
package com.gxwebsoft.common.system.controller;
import cn.hutool.core.lang.Validator;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.exception.BusinessException;

View File

@@ -510,6 +510,8 @@ public class MainController extends BaseController {
company.setCompanyLogo("/logo.svg");
company.setPhone(phone);
company.setMembers(20);
company.setServerUrl("https://server.gxwebosoft.com");
company.setModulesUrl("https://modules.gxwebosoft.com");
company.setVersion(10);
company.setIndustryParent("");
company.setIndustryChild("");

View File

@@ -55,7 +55,7 @@ public class UserController extends BaseController {
@Resource
private DictionaryDataService dictionaryDataService;
@PreAuthorize("hasAuthority('sys:user:list')")
@PreAuthorize("hasAuthority('sys:auth:user')")
@OperationLog
@ApiOperation("分页查询用户")
@GetMapping("/page")
@@ -63,7 +63,7 @@ public class UserController extends BaseController {
return success(userService.pageRel(param));
}
@PreAuthorize("hasAuthority('sys:user:list')")
@PreAuthorize("hasAuthority('sys:auth:user')")
@OperationLog
@ApiOperation("查询全部用户")
@GetMapping()
@@ -71,7 +71,7 @@ public class UserController extends BaseController {
return success(userService.listRel(param));
}
@PreAuthorize("hasAuthority('sys:user:list')")
@PreAuthorize("hasAuthority('sys:auth:user')")
@OperationLog
@ApiOperation("根据id查询用户")
@GetMapping("/{id}")

View File

@@ -0,0 +1,133 @@
package com.gxwebsoft.common.system.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.service.UserGroupService;
import com.gxwebsoft.common.system.entity.UserGroup;
import com.gxwebsoft.common.system.param.UserGroupParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 用户分组管理表控制器
*
* @author 科技小王子
* @since 2023-10-28 15:16:39
*/
@Api(tags = "用户分组管理表管理")
@RestController
@RequestMapping("/api/system/user-group")
public class UserGroupController extends BaseController {
@Resource
private UserGroupService userGroupService;
@PreAuthorize("hasAuthority('sys:userGroup:list')")
@OperationLog
@ApiOperation("分页查询用户分组管理表")
@GetMapping("/page")
public ApiResult<PageResult<UserGroup>> page(UserGroupParam param) {
PageParam<UserGroup, UserGroupParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(userGroupService.page(page, page.getWrapper()));
// 使用关联查询
//return success(userGroupService.pageRel(param));
}
@PreAuthorize("hasAuthority('sys:userGroup:list')")
@OperationLog
@ApiOperation("查询全部用户分组管理表")
@GetMapping()
public ApiResult<List<UserGroup>> list(UserGroupParam param) {
PageParam<UserGroup, UserGroupParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(userGroupService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(userGroupService.listRel(param));
}
@PreAuthorize("hasAuthority('sys:userGroup:list')")
@OperationLog
@ApiOperation("根据id查询用户分组管理表")
@GetMapping("/{id}")
public ApiResult<UserGroup> get(@PathVariable("id") Integer id) {
return success(userGroupService.getById(id));
// 使用关联查询
//return success(userGroupService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('sys:userGroup:save')")
@OperationLog
@ApiOperation("添加用户分组管理表")
@PostMapping()
public ApiResult<?> save(@RequestBody UserGroup userGroup) {
if (userGroupService.save(userGroup)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('sys:userGroup:update')")
@OperationLog
@ApiOperation("修改用户分组管理表")
@PutMapping()
public ApiResult<?> update(@RequestBody UserGroup userGroup) {
if (userGroupService.updateById(userGroup)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('sys:userGroup:remove')")
@OperationLog
@ApiOperation("删除用户分组管理表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (userGroupService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('sys:userGroup:save')")
@OperationLog
@ApiOperation("批量添加用户分组管理表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<UserGroup> list) {
if (userGroupService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('sys:userGroup:update')")
@OperationLog
@ApiOperation("批量修改用户分组管理表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<UserGroup> batchParam) {
if (batchParam.update(userGroupService, "group_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('sys:userGroup:remove')")
@OperationLog
@ApiOperation("批量删除用户分组管理表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (userGroupService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,212 @@
package com.gxwebsoft.common.system.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 应用管理记录表
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "App对象", description = "应用管理记录表")
@TableName("sys_app")
public class App implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "应用ID")
@TableId(value = "app_id", type = IdType.AUTO)
private Integer appId;
@ApiModelProperty(value = "应用名称")
private String appName;
@ApiModelProperty(value = "应用标识")
private String appCode;
@ApiModelProperty(value = "上级id, 0是顶级")
private Integer parentId;
@ApiModelProperty(value = "应用类型")
private String appType;
@ApiModelProperty(value = "应用类型")
private String appTypeMultiple;
@ApiModelProperty(value = "类型, 0菜单, 1按钮")
private Integer menuType;
@ApiModelProperty(value = "企业ID")
private Integer companyId;
@ApiModelProperty(value = "企业名称")
private String companyName;
@ApiModelProperty(value = "应用图标")
private String appIcon;
@ApiModelProperty(value = "二维码")
private String appQrcode;
@ApiModelProperty(value = "链接地址")
private String appUrl;
@ApiModelProperty(value = "后台管理地址")
private String adminUrl;
@ApiModelProperty(value = "下载地址")
private String downUrl;
@ApiModelProperty(value = "链接地址")
private String serverUrl;
@ApiModelProperty(value = "文件服务器")
private String fileUrl;
@ApiModelProperty(value = "回调地址")
private String callbackUrl;
@ApiModelProperty(value = "腾讯文档地址")
private String docsUrl;
@ApiModelProperty(value = "代码仓库地址")
private String gitUrl;
@ApiModelProperty(value = "原型图地址")
private String prototypeUrl;
@ApiModelProperty(value = "IP白名单")
private String ipAddress;
@ApiModelProperty(value = "应用截图")
private String images;
@ApiModelProperty(value = "应用包名")
private String packageName;
@ApiModelProperty(value = "下载次数")
private Integer clicks;
@ApiModelProperty(value = "安装次数")
private Integer installs;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "应用介绍")
private String content;
@ApiModelProperty(value = "项目需求")
private String requirement;
@ApiModelProperty(value = "开发者(个人或公司)")
private String developer;
@ApiModelProperty(value = "项目负责人")
private String director;
@ApiModelProperty(value = "项目经理")
private String projectDirector;
@ApiModelProperty(value = "业务员")
private String salesman;
@ApiModelProperty(value = "软件定价")
private BigDecimal price;
@ApiModelProperty(value = "划线价格")
private BigDecimal linePrice;
@ApiModelProperty(value = "评分")
private String score;
@ApiModelProperty(value = "星级")
private String star;
@ApiModelProperty(value = "菜单路由地址")
private String path;
@ApiModelProperty(value = "菜单组件地址, 目录可为空")
private String component;
@ApiModelProperty(value = "权限标识")
private String authority;
@ApiModelProperty(value = "打开位置")
private String target;
@ApiModelProperty(value = "是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)")
private Integer hide;
@ApiModelProperty(value = "禁止搜索1禁止 0 允许")
private Integer search;
@ApiModelProperty(value = "菜单侧栏选中的path")
private String active;
@ApiModelProperty(value = "其它路由元信息")
private String meta;
@ApiModelProperty(value = "版本0正式版 1体验版 2开发版")
private String edition;
@ApiModelProperty(value = "版本号")
private String version;
@ApiModelProperty(value = "是否已安装")
private Integer isUse;
@ApiModelProperty(value = "附近1")
private String file1;
@ApiModelProperty(value = "附件2")
private String file2;
@ApiModelProperty(value = "附件3")
private String file3;
@ApiModelProperty(value = "应用状态")
private String appStatus;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "机构id")
private Integer organizationId;
@ApiModelProperty(value = "租户编号")
private String tenantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,53 @@
package com.gxwebsoft.common.system.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 域名管理记录表
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "AppUrl对象", description = "域名管理记录表")
@TableName("sys_app_url")
public class AppUrl implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@TableId(value = "app_url_id", type = IdType.AUTO)
private Integer appUrlId;
@ApiModelProperty(value = "应用ID")
private Integer appId;
@ApiModelProperty(value = "域名类型")
private String type;
@ApiModelProperty(value = "域名")
private String domain;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1待确认")
private Integer status;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
}

View File

@@ -0,0 +1,50 @@
package com.gxwebsoft.common.system.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 应用成员
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "AppUser对象", description = "应用成员")
@TableName("sys_app_user")
public class AppUser implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@TableId(value = "app_user_id", type = IdType.AUTO)
private Integer appUserId;
@ApiModelProperty(value = "角色10体验成员 20开发者成员 30管理员 ")
private Integer role;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "应用ID")
private Integer appId;
@ApiModelProperty(value = "状态, 0正常, 1待确认")
private Integer status;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
}

View File

@@ -127,18 +127,21 @@ public class Company implements Serializable {
@ApiModelProperty(value = "是否实名认证")
private Integer authentication;
@ApiModelProperty(value = "主控端节点")
private String serverUrl;
@ApiModelProperty(value = "模块服务器节点")
private String modulesUrl;
@ApiModelProperty(value = "重定向节点")
private String redirectUrl;
@ApiModelProperty(value = "request合法域名")
private String requestUrl;
@ApiModelProperty(value = "socket合法域名")
private String socketUrl;
@ApiModelProperty(value = "主控端域名")
private String serverUrl;
@ApiModelProperty(value = "业务域名")
private String modulesUrl;
@ApiModelProperty(value = "应用类型")
private String appType;

View File

@@ -122,6 +122,13 @@ public class User implements UserDetails {
@ApiModelProperty("机构ID")
private Integer organizationId;
@ApiModelProperty("会员分组ID")
private Integer groupId;
@ApiModelProperty("会员分组")
@TableField(exist = false)
private String groupName;
@ApiModelProperty("客户ID")
@TableField(exist = false)
private Integer customerId;

View File

@@ -0,0 +1,58 @@
package com.gxwebsoft.common.system.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 用户分组管理表
*
* @author 科技小王子
* @since 2023-10-28 15:16:39
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "UserGroup对象", description = "用户分组管理表")
@TableName("sys_user_group")
public class UserGroup implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "分组ID")
@TableId(value = "group_id", type = IdType.AUTO)
private Integer groupId;
@ApiModelProperty(value = "分组名称")
private String name;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.common.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.common.system.entity.App;
import com.gxwebsoft.common.system.param.AppParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 应用管理记录表Mapper
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
public interface AppMapper extends BaseMapper<App> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<App>
*/
List<App> selectPageRel(@Param("page") IPage<App> page,
@Param("param") AppParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<App> selectListRel(@Param("param") AppParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.common.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.common.system.entity.AppUrl;
import com.gxwebsoft.common.system.param.AppUrlParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 域名管理记录表Mapper
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
public interface AppUrlMapper extends BaseMapper<AppUrl> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<AppUrl>
*/
List<AppUrl> selectPageRel(@Param("page") IPage<AppUrl> page,
@Param("param") AppUrlParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<AppUrl> selectListRel(@Param("param") AppUrlParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.common.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.common.system.entity.AppUser;
import com.gxwebsoft.common.system.param.AppUserParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 应用成员Mapper
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
public interface AppUserMapper extends BaseMapper<AppUser> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<AppUser>
*/
List<AppUser> selectPageRel(@Param("page") IPage<AppUser> page,
@Param("param") AppUserParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<AppUser> selectListRel(@Param("param") AppUserParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.common.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.common.system.entity.UserGroup;
import com.gxwebsoft.common.system.param.UserGroupParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 用户分组管理表Mapper
*
* @author 科技小王子
* @since 2023-10-28 15:16:39
*/
public interface UserGroupMapper extends BaseMapper<UserGroup> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<UserGroup>
*/
List<UserGroup> selectPageRel(@Param("page") IPage<UserGroup> page,
@Param("param") UserGroupParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<UserGroup> selectListRel(@Param("param") UserGroupParam param);
}

View File

@@ -0,0 +1,203 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.common.system.mapper.AppMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM sys_app a
<where>
<if test="param.appId != null">
AND a.app_id = #{param.appId}
</if>
<if test="param.appName != null">
AND a.app_name LIKE CONCAT('%', #{param.appName}, '%')
</if>
<if test="param.appCode != null">
AND a.app_code LIKE CONCAT('%', #{param.appCode}, '%')
</if>
<if test="param.parentId != null">
AND a.parent_id = #{param.parentId}
</if>
<if test="param.appType != null">
AND a.app_type LIKE CONCAT('%', #{param.appType}, '%')
</if>
<if test="param.appTypeMultiple != null">
AND a.app_type_multiple LIKE CONCAT('%', #{param.appTypeMultiple}, '%')
</if>
<if test="param.menuType != null">
AND a.menu_type = #{param.menuType}
</if>
<if test="param.companyId != null">
AND a.company_id = #{param.companyId}
</if>
<if test="param.companyName != null">
AND a.company_name LIKE CONCAT('%', #{param.companyName}, '%')
</if>
<if test="param.appIcon != null">
AND a.app_icon LIKE CONCAT('%', #{param.appIcon}, '%')
</if>
<if test="param.appQrcode != null">
AND a.app_qrcode LIKE CONCAT('%', #{param.appQrcode}, '%')
</if>
<if test="param.appUrl != null">
AND a.app_url LIKE CONCAT('%', #{param.appUrl}, '%')
</if>
<if test="param.adminUrl != null">
AND a.admin_url LIKE CONCAT('%', #{param.adminUrl}, '%')
</if>
<if test="param.downUrl != null">
AND a.down_url LIKE CONCAT('%', #{param.downUrl}, '%')
</if>
<if test="param.serverUrl != null">
AND a.server_url LIKE CONCAT('%', #{param.serverUrl}, '%')
</if>
<if test="param.fileUrl != null">
AND a.file_url LIKE CONCAT('%', #{param.fileUrl}, '%')
</if>
<if test="param.callbackUrl != null">
AND a.callback_url LIKE CONCAT('%', #{param.callbackUrl}, '%')
</if>
<if test="param.docsUrl != null">
AND a.docs_url LIKE CONCAT('%', #{param.docsUrl}, '%')
</if>
<if test="param.gitUrl != null">
AND a.git_url LIKE CONCAT('%', #{param.gitUrl}, '%')
</if>
<if test="param.prototypeUrl != null">
AND a.prototype_url LIKE CONCAT('%', #{param.prototypeUrl}, '%')
</if>
<if test="param.ipAddress != null">
AND a.ip_address LIKE CONCAT('%', #{param.ipAddress}, '%')
</if>
<if test="param.images != null">
AND a.images LIKE CONCAT('%', #{param.images}, '%')
</if>
<if test="param.packageName != null">
AND a.package_name LIKE CONCAT('%', #{param.packageName}, '%')
</if>
<if test="param.clicks != null">
AND a.clicks = #{param.clicks}
</if>
<if test="param.installs != null">
AND a.installs = #{param.installs}
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.content != null">
AND a.content LIKE CONCAT('%', #{param.content}, '%')
</if>
<if test="param.requirement != null">
AND a.requirement LIKE CONCAT('%', #{param.requirement}, '%')
</if>
<if test="param.developer != null">
AND a.developer LIKE CONCAT('%', #{param.developer}, '%')
</if>
<if test="param.director != null">
AND a.director LIKE CONCAT('%', #{param.director}, '%')
</if>
<if test="param.projectDirector != null">
AND a.project_director LIKE CONCAT('%', #{param.projectDirector}, '%')
</if>
<if test="param.salesman != null">
AND a.salesman LIKE CONCAT('%', #{param.salesman}, '%')
</if>
<if test="param.price != null">
AND a.price = #{param.price}
</if>
<if test="param.linePrice != null">
AND a.line_price = #{param.linePrice}
</if>
<if test="param.score != null">
AND a.score LIKE CONCAT('%', #{param.score}, '%')
</if>
<if test="param.star != null">
AND a.star LIKE CONCAT('%', #{param.star}, '%')
</if>
<if test="param.path != null">
AND a.path LIKE CONCAT('%', #{param.path}, '%')
</if>
<if test="param.component != null">
AND a.component LIKE CONCAT('%', #{param.component}, '%')
</if>
<if test="param.authority != null">
AND a.authority LIKE CONCAT('%', #{param.authority}, '%')
</if>
<if test="param.target != null">
AND a.target LIKE CONCAT('%', #{param.target}, '%')
</if>
<if test="param.hide != null">
AND a.hide = #{param.hide}
</if>
<if test="param.search != null">
AND a.search = #{param.search}
</if>
<if test="param.active != null">
AND a.active LIKE CONCAT('%', #{param.active}, '%')
</if>
<if test="param.meta != null">
AND a.meta LIKE CONCAT('%', #{param.meta}, '%')
</if>
<if test="param.edition != null">
AND a.edition LIKE CONCAT('%', #{param.edition}, '%')
</if>
<if test="param.version != null">
AND a.version LIKE CONCAT('%', #{param.version}, '%')
</if>
<if test="param.isUse != null">
AND a.is_use = #{param.isUse}
</if>
<if test="param.file1 != null">
AND a.file1 LIKE CONCAT('%', #{param.file1}, '%')
</if>
<if test="param.file2 != null">
AND a.file2 LIKE CONCAT('%', #{param.file2}, '%')
</if>
<if test="param.file3 != null">
AND a.file3 LIKE CONCAT('%', #{param.file3}, '%')
</if>
<if test="param.appStatus != null">
AND a.app_status LIKE CONCAT('%', #{param.appStatus}, '%')
</if>
<if test="param.sortNumber != null">
AND a.sort_number = #{param.sortNumber}
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</if>
<if test="param.deleted != null">
AND a.deleted = #{param.deleted}
</if>
<if test="param.deleted == null">
AND a.deleted = 0
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.organizationId != null">
AND a.organization_id = #{param.organizationId}
</if>
<if test="param.tenantCode != null">
AND a.tenant_code LIKE CONCAT('%', #{param.tenantCode}, '%')
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.common.system.entity.App">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.common.system.entity.App">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.common.system.mapper.AppUrlMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM sys_app_url a
<where>
<if test="param.appUrlId != null">
AND a.app_url_id = #{param.appUrlId}
</if>
<if test="param.appId != null">
AND a.app_id = #{param.appId}
</if>
<if test="param.type != null">
AND a.type LIKE CONCAT('%', #{param.type}, '%')
</if>
<if test="param.domain != null">
AND a.domain LIKE CONCAT('%', #{param.domain}, '%')
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.common.system.entity.AppUrl">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.common.system.entity.AppUrl">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.common.system.mapper.AppUserMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM sys_app_user a
<where>
<if test="param.appUserId != null">
AND a.app_user_id = #{param.appUserId}
</if>
<if test="param.role != null">
AND a.role = #{param.role}
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.appId != null">
AND a.app_id = #{param.appId}
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.common.system.entity.AppUser">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.common.system.entity.AppUser">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.common.system.mapper.UserGroupMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM sys_user_group a
<where>
<if test="param.groupId != null">
AND a.group_id = #{param.groupId}
</if>
<if test="param.name != null">
AND a.name LIKE CONCAT('%', #{param.name}, '%')
</if>
<if test="param.sortNumber != null">
AND a.sort_number = #{param.sortNumber}
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</if>
<if test="param.deleted != null">
AND a.deleted = #{param.deleted}
</if>
<if test="param.deleted == null">
AND a.deleted = 0
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.common.system.entity.UserGroup">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.common.system.entity.UserGroup">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -81,6 +81,9 @@
<if test="param.organizationId != null">
AND a.organization_id = #{param.organizationId}
</if>
<if test="param.groupId != null">
AND a.group_id = #{param.groupId}
</if>
<if test="param.isStaff != null">
AND a.organization_id > 0
</if>
@@ -108,6 +111,9 @@
<if test="param.roleId != null">
AND a.user_id IN (SELECT user_id FROM sys_user_role WHERE role_id=#{param.roleId})
</if>
<if test="param.roleCode != null">
AND a.user_id IN (SELECT user_id FROM sys_user_role WHERE role_code=#{param.roleCode})
</if>
<if test="param.userIds != null">
AND a.user_id IN
<foreach collection="param.userIds" item="item" separator="," open="(" close=")">

View File

@@ -0,0 +1,214 @@
package com.gxwebsoft.common.system.param;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 应用管理记录表查询参数
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value = "AppParam对象", description = "应用管理记录表查询参数")
public class AppParam extends BaseParam {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "应用ID")
@QueryField(type = QueryType.EQ)
private Integer appId;
@ApiModelProperty(value = "应用名称")
private String appName;
@ApiModelProperty(value = "应用标识")
private String appCode;
@ApiModelProperty(value = "上级id, 0是顶级")
@QueryField(type = QueryType.EQ)
private Integer parentId;
@ApiModelProperty(value = "应用类型")
private String appType;
@ApiModelProperty(value = "应用类型")
private String appTypeMultiple;
@ApiModelProperty(value = "类型, 0菜单, 1按钮")
@QueryField(type = QueryType.EQ)
private Integer menuType;
@ApiModelProperty(value = "企业ID")
@QueryField(type = QueryType.EQ)
private Integer companyId;
@ApiModelProperty(value = "企业名称")
private String companyName;
@ApiModelProperty(value = "应用图标")
private String appIcon;
@ApiModelProperty(value = "二维码")
private String appQrcode;
@ApiModelProperty(value = "链接地址")
private String appUrl;
@ApiModelProperty(value = "后台管理地址")
private String adminUrl;
@ApiModelProperty(value = "下载地址")
private String downUrl;
@ApiModelProperty(value = "链接地址")
private String serverUrl;
@ApiModelProperty(value = "文件服务器")
private String fileUrl;
@ApiModelProperty(value = "回调地址")
private String callbackUrl;
@ApiModelProperty(value = "腾讯文档地址")
private String docsUrl;
@ApiModelProperty(value = "代码仓库地址")
private String gitUrl;
@ApiModelProperty(value = "原型图地址")
private String prototypeUrl;
@ApiModelProperty(value = "IP白名单")
private String ipAddress;
@ApiModelProperty(value = "应用截图")
private String images;
@ApiModelProperty(value = "应用包名")
private String packageName;
@ApiModelProperty(value = "下载次数")
@QueryField(type = QueryType.EQ)
private Integer clicks;
@ApiModelProperty(value = "安装次数")
@QueryField(type = QueryType.EQ)
private Integer installs;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "应用介绍")
private String content;
@ApiModelProperty(value = "项目需求")
private String requirement;
@ApiModelProperty(value = "开发者(个人或公司)")
private String developer;
@ApiModelProperty(value = "项目负责人")
private String director;
@ApiModelProperty(value = "项目经理")
private String projectDirector;
@ApiModelProperty(value = "业务员")
private String salesman;
@ApiModelProperty(value = "软件定价")
@QueryField(type = QueryType.EQ)
private BigDecimal price;
@ApiModelProperty(value = "划线价格")
@QueryField(type = QueryType.EQ)
private BigDecimal linePrice;
@ApiModelProperty(value = "评分")
private String score;
@ApiModelProperty(value = "星级")
private String star;
@ApiModelProperty(value = "菜单路由地址")
private String path;
@ApiModelProperty(value = "菜单组件地址, 目录可为空")
private String component;
@ApiModelProperty(value = "权限标识")
private String authority;
@ApiModelProperty(value = "打开位置")
private String target;
@ApiModelProperty(value = "是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)")
@QueryField(type = QueryType.EQ)
private Integer hide;
@ApiModelProperty(value = "禁止搜索1禁止 0 允许")
@QueryField(type = QueryType.EQ)
private Integer search;
@ApiModelProperty(value = "菜单侧栏选中的path")
private String active;
@ApiModelProperty(value = "其它路由元信息")
private String meta;
@ApiModelProperty(value = "版本0正式版 1体验版 2开发版")
private String edition;
@ApiModelProperty(value = "版本号")
private String version;
@ApiModelProperty(value = "是否已安装")
@QueryField(type = QueryType.EQ)
private Integer isUse;
@ApiModelProperty(value = "附近1")
private String file1;
@ApiModelProperty(value = "附件2")
private String file2;
@ApiModelProperty(value = "附件3")
private String file3;
@ApiModelProperty(value = "应用状态")
private String appStatus;
@ApiModelProperty(value = "排序(数字越小越靠前)")
@QueryField(type = QueryType.EQ)
private Integer sortNumber;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
@QueryField(type = QueryType.EQ)
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@QueryField(type = QueryType.EQ)
private Integer deleted;
@ApiModelProperty(value = "用户ID")
@QueryField(type = QueryType.EQ)
private Integer userId;
@ApiModelProperty(value = "机构id")
@QueryField(type = QueryType.EQ)
private Integer organizationId;
@ApiModelProperty(value = "租户编号")
private String tenantCode;
}

View File

@@ -0,0 +1,46 @@
package com.gxwebsoft.common.system.param;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 域名管理记录表查询参数
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value = "AppUrlParam对象", description = "域名管理记录表查询参数")
public class AppUrlParam extends BaseParam {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@QueryField(type = QueryType.EQ)
private Integer appUrlId;
@ApiModelProperty(value = "应用ID")
@QueryField(type = QueryType.EQ)
private Integer appId;
@ApiModelProperty(value = "域名类型")
private String type;
@ApiModelProperty(value = "域名")
private String domain;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1待确认")
@QueryField(type = QueryType.EQ)
private Integer status;
}

View File

@@ -0,0 +1,45 @@
package com.gxwebsoft.common.system.param;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 应用成员查询参数
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value = "AppUserParam对象", description = "应用成员查询参数")
public class AppUserParam extends BaseParam {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@QueryField(type = QueryType.EQ)
private Integer appUserId;
@ApiModelProperty(value = "角色10体验成员 20开发者成员 30管理员 ")
@QueryField(type = QueryType.EQ)
private Integer role;
@ApiModelProperty(value = "用户ID")
@QueryField(type = QueryType.EQ)
private Integer userId;
@ApiModelProperty(value = "应用ID")
@QueryField(type = QueryType.EQ)
private Integer appId;
@ApiModelProperty(value = "状态, 0正常, 1待确认")
@QueryField(type = QueryType.EQ)
private Integer status;
}

View File

@@ -0,0 +1,47 @@
package com.gxwebsoft.common.system.param;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 用户分组管理表查询参数
*
* @author 科技小王子
* @since 2023-10-28 15:16:39
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value = "UserGroupParam对象", description = "用户分组管理表查询参数")
public class UserGroupParam extends BaseParam {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "分组ID")
@QueryField(type = QueryType.EQ)
private Integer groupId;
@ApiModelProperty(value = "分组名称")
private String name;
@ApiModelProperty(value = "排序(数字越小越靠前)")
@QueryField(type = QueryType.EQ)
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
@QueryField(type = QueryType.EQ)
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@QueryField(type = QueryType.EQ)
private Integer deleted;
}

View File

@@ -80,6 +80,10 @@ public class UserParam extends BaseParam {
@QueryField(type = QueryType.EQ)
private Integer organizationId;
@ApiModelProperty("用户分组ID")
@QueryField(type = QueryType.EQ)
private Integer groupId;
@ApiModelProperty("注册来源客户端")
@QueryField(type = QueryType.EQ)
private String platform;
@@ -103,6 +107,10 @@ public class UserParam extends BaseParam {
@TableField(exist = false)
private Integer roleId;
@ApiModelProperty("角色标识")
@TableField(exist = false)
private String roleCode;
@ApiModelProperty(value = "所在省份")
private String province;

View File

@@ -0,0 +1,42 @@
package com.gxwebsoft.common.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.App;
import com.gxwebsoft.common.system.param.AppParam;
import java.util.List;
/**
* 应用管理记录表Service
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
public interface AppService extends IService<App> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<App>
*/
PageResult<App> pageRel(AppParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<App>
*/
List<App> listRel(AppParam param);
/**
* 根据id查询
*
* @param appId 应用ID
* @return App
*/
App getByIdRel(Integer appId);
}

View File

@@ -0,0 +1,42 @@
package com.gxwebsoft.common.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.AppUrl;
import com.gxwebsoft.common.system.param.AppUrlParam;
import java.util.List;
/**
* 域名管理记录表Service
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
public interface AppUrlService extends IService<AppUrl> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<AppUrl>
*/
PageResult<AppUrl> pageRel(AppUrlParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<AppUrl>
*/
List<AppUrl> listRel(AppUrlParam param);
/**
* 根据id查询
*
* @param appUrlId 自增ID
* @return AppUrl
*/
AppUrl getByIdRel(Integer appUrlId);
}

View File

@@ -0,0 +1,42 @@
package com.gxwebsoft.common.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.AppUser;
import com.gxwebsoft.common.system.param.AppUserParam;
import java.util.List;
/**
* 应用成员Service
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
public interface AppUserService extends IService<AppUser> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<AppUser>
*/
PageResult<AppUser> pageRel(AppUserParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<AppUser>
*/
List<AppUser> listRel(AppUserParam param);
/**
* 根据id查询
*
* @param appUserId 自增ID
* @return AppUser
*/
AppUser getByIdRel(Integer appUserId);
}

View File

@@ -0,0 +1,42 @@
package com.gxwebsoft.common.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.UserGroup;
import com.gxwebsoft.common.system.param.UserGroupParam;
import java.util.List;
/**
* 用户分组管理表Service
*
* @author 科技小王子
* @since 2023-10-28 15:16:39
*/
public interface UserGroupService extends IService<UserGroup> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<UserGroup>
*/
PageResult<UserGroup> pageRel(UserGroupParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<UserGroup>
*/
List<UserGroup> listRel(UserGroupParam param);
/**
* 根据id查询
*
* @param groupId 分组ID
* @return UserGroup
*/
UserGroup getByIdRel(Integer groupId);
}

View File

@@ -0,0 +1,47 @@
package com.gxwebsoft.common.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.system.mapper.AppMapper;
import com.gxwebsoft.common.system.service.AppService;
import com.gxwebsoft.common.system.entity.App;
import com.gxwebsoft.common.system.param.AppParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 应用管理记录表Service实现
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Service
public class AppServiceImpl extends ServiceImpl<AppMapper, App> implements AppService {
@Override
public PageResult<App> pageRel(AppParam param) {
PageParam<App, AppParam> page = new PageParam<>(param);
//page.setDefaultOrder("create_time desc");
List<App> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<App> listRel(AppParam param) {
List<App> list = baseMapper.selectListRel(param);
// 排序
PageParam<App, AppParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public App getByIdRel(Integer appId) {
AppParam param = new AppParam();
param.setAppId(appId);
return param.getOne(baseMapper.selectListRel(param));
}
}

View File

@@ -0,0 +1,47 @@
package com.gxwebsoft.common.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.system.mapper.AppUrlMapper;
import com.gxwebsoft.common.system.service.AppUrlService;
import com.gxwebsoft.common.system.entity.AppUrl;
import com.gxwebsoft.common.system.param.AppUrlParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 域名管理记录表Service实现
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Service
public class AppUrlServiceImpl extends ServiceImpl<AppUrlMapper, AppUrl> implements AppUrlService {
@Override
public PageResult<AppUrl> pageRel(AppUrlParam param) {
PageParam<AppUrl, AppUrlParam> page = new PageParam<>(param);
//page.setDefaultOrder("create_time desc");
List<AppUrl> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<AppUrl> listRel(AppUrlParam param) {
List<AppUrl> list = baseMapper.selectListRel(param);
// 排序
PageParam<AppUrl, AppUrlParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public AppUrl getByIdRel(Integer appUrlId) {
AppUrlParam param = new AppUrlParam();
param.setAppUrlId(appUrlId);
return param.getOne(baseMapper.selectListRel(param));
}
}

View File

@@ -0,0 +1,47 @@
package com.gxwebsoft.common.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.system.mapper.AppUserMapper;
import com.gxwebsoft.common.system.service.AppUserService;
import com.gxwebsoft.common.system.entity.AppUser;
import com.gxwebsoft.common.system.param.AppUserParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 应用成员Service实现
*
* @author 科技小王子
* @since 2023-10-30 22:20:23
*/
@Service
public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> implements AppUserService {
@Override
public PageResult<AppUser> pageRel(AppUserParam param) {
PageParam<AppUser, AppUserParam> page = new PageParam<>(param);
//page.setDefaultOrder("create_time desc");
List<AppUser> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<AppUser> listRel(AppUserParam param) {
List<AppUser> list = baseMapper.selectListRel(param);
// 排序
PageParam<AppUser, AppUserParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public AppUser getByIdRel(Integer appUserId) {
AppUserParam param = new AppUserParam();
param.setAppUserId(appUserId);
return param.getOne(baseMapper.selectListRel(param));
}
}

View File

@@ -25,14 +25,14 @@ public class DictDataServiceImpl extends ServiceImpl<DictDataMapper, DictData>
@Override
public PageResult<DictData> pageRel(DictDataParam param) {
PageParam<DictData, DictDataParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number");
page.setDefaultOrder("sort_number asc, create_time asc");
return new PageResult<>(baseMapper.selectPageRel(page, param), page.getTotal());
}
@Override
public List<DictData> listRel(DictDataParam param) {
PageParam<DictData, DictDataParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number");
page.setDefaultOrder("sort_number asc, create_time asc");
return page.sortRecords(baseMapper.selectListRel(param));
}

View File

@@ -92,14 +92,14 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
menu.setTitle(d.getTitle());
menu.setPath(d.getPath());
menu.setComponent(d.getComponent());
menu.setModules(d.getModules());
menu.setModulesUrl(d.getModulesUrl());
menu.setMenuType(d.getMenuType());
menu.setSortNumber(d.getSortNumber());
menu.setAuthority(d.getAuthority());
menu.setIcon(d.getIcon());
menu.setHide(d.getHide());
menu.setMeta(d.getMeta());
menu.setModules(d.getModules());
menu.setModulesUrl(d.getModulesUrl());
save(menu);
this.plugMenuId = menu.getMenuId();
// 二级菜单
@@ -117,8 +117,8 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
menu1.setIcon(d1.getIcon());
menu1.setHide(d1.getHide());
menu1.setMeta(d1.getMeta());
menu1.setModules(d.getModules());
menu1.setModulesUrl(d.getModulesUrl());
menu1.setModules(d1.getModules());
menu1.setModulesUrl(d1.getModulesUrl());
save(menu1);
// 三级菜单
param.setParentId(d1.getMenuId());
@@ -135,8 +135,8 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
menu2.setIcon(d2.getIcon());
menu2.setHide(d2.getHide());
menu2.setMeta(d2.getMeta());
menu2.setModules(d.getModules());
menu2.setModulesUrl(d.getModulesUrl());
menu2.setModules(d2.getModules());
menu2.setModulesUrl(d2.getModulesUrl());
save(menu2);
});
});

View File

@@ -0,0 +1,47 @@
package com.gxwebsoft.common.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.system.mapper.UserGroupMapper;
import com.gxwebsoft.common.system.service.UserGroupService;
import com.gxwebsoft.common.system.entity.UserGroup;
import com.gxwebsoft.common.system.param.UserGroupParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 用户分组管理表Service实现
*
* @author 科技小王子
* @since 2023-10-28 15:16:39
*/
@Service
public class UserGroupServiceImpl extends ServiceImpl<UserGroupMapper, UserGroup> implements UserGroupService {
@Override
public PageResult<UserGroup> pageRel(UserGroupParam param) {
PageParam<UserGroup, UserGroupParam> page = new PageParam<>(param);
//page.setDefaultOrder("create_time desc");
List<UserGroup> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<UserGroup> listRel(UserGroupParam param) {
List<UserGroup> list = baseMapper.selectListRel(param);
// 排序
PageParam<UserGroup, UserGroupParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public UserGroup getByIdRel(Integer groupId) {
UserGroupParam param = new UserGroupParam();
param.setGroupId(groupId);
return param.getOne(baseMapper.selectListRel(param));
}
}

View File

@@ -1,9 +1,9 @@
# 端口
server:
port: 9099
port: 9015
# socketIo
socketio:
port: 9199
port: 9191
# 多环境配置
spring:
profiles:

View File

@@ -57,8 +57,12 @@ public class SysGenerator {
// "sys_plug"
// "sys_plug_record",
// "sys_modules"
"sys_chat_message",
"sys_chat_conversation"
// "sys_chat_message",
// "sys_chat_conversation"
// "sys_user_group"
"sys_app",
"sys_app_user",
"sys_app_url"
};
// 需要去除的表前缀
private static final String[] TABLE_PREFIX = new String[]{