Commit 82d7e46b authored by shangtx's avatar shangtx

init: 系统功能

parent f0a96d7d
package com.onsiteservice.admin.controller.sys;
import com.onsiteservice.admin.controller.sys.vo.SysBusinessTree;
import com.onsiteservice.admin.service.sys.SysBusinessService;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultGenerator;
import com.onsiteservice.dao.mapper.sys.SysBusinessMapper;
import com.onsiteservice.entity.sys.SysBusiness;
import lombok.AllArgsConstructor;
import lombok.NonNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import java.util.List;
@RestController
@RequestMapping("/sys/business")
@Validated
@AllArgsConstructor(onConstructor_ = {@Autowired})
public class SysBusinessController {
private SysBusinessService sysBusinessService;
private SysBusinessMapper sysBusinessMapper;
@GetMapping("/")
public Result<List<SysBusinessTree>> getAllList() {
return ResultGenerator.success(sysBusinessService.getAllList(), "获取全部菜单列表");
}
/**
* 新增保存对象
*
* @param sysBusiness 保存对象
*/
@PostMapping
public Result<SysBusiness> save(@RequestBody @NonNull @Validated SysBusiness sysBusiness) {
sysBusinessService.insertSelective(sysBusiness);
return ResultGenerator.success(sysBusiness, "新增成功");
}
/**
* 更新修改对象
*
* @param sysBusiness 修改对象
*/
@PutMapping
public Result update(@RequestBody @NonNull @Validated SysBusiness sysBusiness) {
sysBusinessService.updateByPrimaryKeySelective(sysBusiness);
return ResultGenerator.success(sysBusiness, "更新成功");
}
/**
* 根据id删除
*
* @param id 主键
*/
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable @Positive Long id) {
sysBusinessService.deleteByPrimaryKey(id);
return ResultGenerator.success("删除成功");
}
}
\ No newline at end of file
package com.onsiteservice.admin.controller.sys;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.admin.service.sys.SysBusinessOperateService;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultGenerator;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.entity.sys.SysBusinessOperate;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import java.util.List;
/**
* @author wangning
* @date 2019-10-11 09:02
* SysBusinessOperateController控制类
*/
@RestController
@RequestMapping("/sys/business/operate")
@Validated
public class SysBusinessOperateController {
@Resource
private SysBusinessOperateService sysBusinessOperateService;
/**
* 分页查询列表
*
* @param page 分页参数
* @return 分页数据
*/
@GetMapping("/list")
public Result<PageInfoVO<SysBusinessOperate>> pageList(@Validated PageParams page) {
PageHelper.startPage(page.getPage(), page.getSize());
List<SysBusinessOperate> list = sysBusinessOperateService.selectAll();
PageInfoVO pageInfo = new PageInfoVO(list);
return ResultGenerator.success(pageInfo, "获取分页列表");
}
/**
* 根据id查询
*
* @param id 主键
* @return 详情数据
*/
@GetMapping("/{id}")
public Result findById(@PathVariable @Positive Integer id) {
SysBusinessOperate sysBusinessOperate = sysBusinessOperateService.selectByPrimaryKey(id);
return ResultGenerator.success(sysBusinessOperate, "根据id获取详情");
}
/**
* 新增保存对象
*
* @param sysBusinessOperate 保存对象
*/
@PostMapping
public Result save(@RequestBody @NonNull @Validated SysBusinessOperate sysBusinessOperate) {
sysBusinessOperateService.insertSelective(sysBusinessOperate);
return ResultGenerator.success(sysBusinessOperate, "新增成功");
}
/**
* 更新修改对象
*
* @param sysBusinessOperate 修改对象
*/
@PutMapping
public Result update(@RequestBody @NonNull @Validated SysBusinessOperate sysBusinessOperate) {
sysBusinessOperateService.updateByPrimaryKeySelective(sysBusinessOperate);
return ResultGenerator.success(sysBusinessOperate, "更新成功");
}
/**
* 根据id删除
*
* @param id 主键
*/
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable @Positive Integer id) {
sysBusinessOperateService.deleteByPrimaryKey(id);
return ResultGenerator.success("删除成功");
}
@GetMapping("/getByBusiness/{id}")
public Result getByBusinessOpt(@PathVariable @Positive Long id) {
return ResultGenerator.success(sysBusinessOperateService.getByBusinessId(id), "根据业务id获得操作");
}
@PostMapping("/batchDelete")
public Result batchDelete(@RequestBody List<Long> ids) {
sysBusinessOperateService.deleteBatch(ids);
return ResultGenerator.success(true, "删除成功");
}
}
package com.onsiteservice.admin.controller.sys;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.admin.service.sys.SysBusinessOperateResourceService;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultGenerator;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.entity.sys.SysBusinessOperateResource;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import java.util.List;
/**
* @author wangning
* @date 2019-10-11 09:02
* SysBusinessOperateResourceController控制类
*/
@RestController
@RequestMapping("/sys/business/operate/resource")
@Validated
public class SysBusinessOperateResourceController {
@Resource
private SysBusinessOperateResourceService sysBusinessOperateResourceService;
/**
* 分页查询列表
*
* @param page 分页参数
* @return 分页数据
*/
@GetMapping("/list")
public Result pageList(@Validated PageParams page) {
PageHelper.startPage(page.getPage(), page.getSize());
List<SysBusinessOperateResource> list = sysBusinessOperateResourceService.selectAll();
PageInfoVO pageInfo = new PageInfoVO(list);
return ResultGenerator.success(pageInfo, "获取分页列表");
}
/**
* 根据id查询
*
* @param id 主键
* @return 详情数据
*/
@GetMapping("/{id}")
public Result findById(@PathVariable @Positive Integer id) {
SysBusinessOperateResource sysBusinessOperateResource = sysBusinessOperateResourceService.selectByPrimaryKey(id);
return ResultGenerator.success(sysBusinessOperateResource, "根据id获取详情");
}
/**
* 新增保存对象
*
* @param sysBusinessOperateResource 保存对象
*/
@PostMapping
public Result save(@RequestBody @NonNull @Validated SysBusinessOperateResource sysBusinessOperateResource) {
sysBusinessOperateResourceService.insertSelective(sysBusinessOperateResource);
return ResultGenerator.success(sysBusinessOperateResource, "新增成功");
}
/**
* 更新修改对象
*
* @param sysBusinessOperateResource 修改对象
*/
@PutMapping
public Result update(@RequestBody @NonNull @Validated SysBusinessOperateResource sysBusinessOperateResource) {
sysBusinessOperateResourceService.updateByPrimaryKeySelective(sysBusinessOperateResource);
return ResultGenerator.success(sysBusinessOperateResource, "更新成功");
}
/**
* 根据id删除
*
* @param id 主键
*/
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable @Positive Integer id) {
sysBusinessOperateResourceService.deleteByPrimaryKey(id);
return ResultGenerator.success("删除成功");
}
@GetMapping("/getByOperate/{id}")
public Result getByOperateId(@PathVariable @Positive Long id) {
return ResultGenerator.success(sysBusinessOperateResourceService.getByOperateId(id), "查询成功");
}
@PostMapping("/batchDelete")
public Result batchDelete(@RequestBody List<Long> ids) {
sysBusinessOperateResourceService.deleteBatch(ids);
return ResultGenerator.success(true, "删除成功");
}
}
package com.onsiteservice.admin.controller.sys;
import com.onsiteservice.admin.service.sys.SysDictService;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.entity.sys.SysDict;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import static com.onsiteservice.core.result.ResultGenerator.success;
/**
* @author wang jianguo
* @date 2021-07-23 10:37
* SysDictController控制类
*/
@ApiIgnore
@Api(tags = "SysDictController")
@RestController
@RequestMapping("/sys/dict")
@Validated
public class SysDictController {
@Resource
private SysDictService sysDictService;
@ApiOperation(value = "分页查询列表", notes = "作者: wang jianguo")
@PostMapping("/page")
public Result<PageInfoVO> getPage(@RequestBody @NonNull @Validated PageParams param) {
return success(sysDictService.getPage(param), "获取分页列表");
}
@ApiOperation(value = "根据id查询", notes = "作者: wang jianguo")
@GetMapping("/{id}")
public Result<SysDict> getDetails(@PathVariable @Positive Long id) {
return success(sysDictService.selectByPrimaryKey(id), "根据id获取详情");
}
@ApiOperation(value = "新增或修改", notes = "作者: wang jianguo")
@PostMapping("/save-or-update")
public Result saveOrUpdate(@RequestBody @NonNull @Validated SysDict sysDict) {
return success(sysDictService.saveOrUpdate(sysDict), sysDict.getId() == null ? "新增成功" : "修改成功");
}
@ApiOperation(value = "根据id删除", notes = "作者: wang jianguo")
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable @Positive Long id) {
return success(sysDictService.deleteByPrimaryKey(id), "删除成功");
}
}
package com.onsiteservice.admin.controller.sys;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.admin.controller.sys.dto.SysDictPageDTO;
import com.onsiteservice.admin.controller.sys.dto.SysDictSaveDTO;
import com.onsiteservice.admin.service.sys.SysDictTypeService;
import com.onsiteservice.common.annotation.user.CurrentUserId;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultGenerator;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.entity.sys.SysDictType;
import io.swagger.annotations.Api;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import java.util.List;
/**
* @author wang jianguo
* @date 2021-07-23 10:37
* SysDictTypeController控制类
*/
@ApiIgnore
@Api(tags = "SysDictTypeController")
@RestController
@RequestMapping("/sys/dict/type")
@Validated
public class SysDictTypeController {
@Resource
private SysDictTypeService sysDictTypeService;
/**
* 分页查询列表
*
* @param param 分页参数
* @return 分页数据
*/
@PostMapping("/page")
public Result pageList(@RequestBody SysDictPageDTO param) {
PageHelper.startPage(param.getPage(), param.getSize());
List<SysDictType> list = sysDictTypeService.getPage(param);
PageInfoVO pageInfo = new PageInfoVO(list);
return ResultGenerator.success(pageInfo, "获取分页列表");
}
/**
* 根据id查询
*
* @param id 主键
* @return 详情数据
*/
@GetMapping("/{id}")
public Result findById(@PathVariable Integer id) {
return ResultGenerator.success(sysDictTypeService.getDetail(id), "根据id获取详情");
}
/**
* 保存对象
*
* @param param 保存对象
*/
@PostMapping
public Result save(@RequestBody SysDictSaveDTO param, @CurrentUserId Long userId) {
return ResultGenerator.success(sysDictTypeService.saveCode(param, userId), "保存通用代码");
}
/**
* 根据code删除
*
* @param code
*/
@DeleteMapping("/{code}")
public Result deleteByCode(@PathVariable String code) {
sysDictTypeService.deleteByCodes(code);
return ResultGenerator.success("删除成功");
}
@RequestMapping(value = "/batchDelete", method = RequestMethod.POST)
public Result deleteBatch(@RequestBody String[] codes) {
sysDictTypeService.deleteByCodes(codes);
return ResultGenerator.success("批量删除");
}
}
package com.onsiteservice.admin.controller.sys;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.admin.controller.sys.dto.SysParamDTO;
import com.onsiteservice.admin.controller.sys.vo.SysParamVO;
import com.onsiteservice.admin.service.sys.SysParamService;
import com.onsiteservice.common.annotation.user.CurrentUserId;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultGenerator;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.entity.sys.SysParam;
import io.swagger.annotations.Api;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import java.util.List;
/**
* @author wang jianguo
* @date 2021-07-23 17:45
* SysParamController控制类
*/
@ApiIgnore
@Api(tags = "SysParamController")
@RestController
@RequestMapping("/sys/param")
@Validated
public class SysParamController {
@Resource
private SysParamService sysParamService;
/**
* 分页查询总控系统参数列表
*
* @param sysParamDTO
* @return
*/
@PostMapping("/getPage")
public Result pageList(@RequestBody SysParamDTO sysParamDTO) {
PageHelper.startPage(sysParamDTO.getPage(), sysParamDTO.getSize());
List<SysParamVO> list = sysParamService.queryForPage(sysParamDTO);
PageInfoVO pageInfo = new PageInfoVO(list);
return ResultGenerator.success(pageInfo, "获取分页列表");
}
/**
* 根据id查询
*
* @param id 主键
* @return 详情数据
*/
@GetMapping("/{id}")
public Result findById(@PathVariable @Positive Integer id) {
SysParam sysParam = sysParamService.selectByPrimaryKey(id);
return ResultGenerator.success(sysParam, "根据id获取详情");
}
/**
* 更新修改对象
*
* @param sysParam 修改对象
*/
@PutMapping
public Result update(@RequestBody @NonNull @Validated SysParam sysParam, @CurrentUserId Long userId) {
sysParamService.updateParam(sysParam, userId);
return ResultGenerator.success(sysParam, "更新成功");
}
/**
* 根据id删除
*
* @param id 主键
*/
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable @Positive Integer id) {
sysParamService.deleteByPrimaryKey(id);
return ResultGenerator.success("删除成功");
}
}
package com.onsiteservice.admin.controller.sys;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.admin.controller.sys.dto.SysRolePageDTO;
import com.onsiteservice.admin.controller.sys.dto.SysRoleSaveDTO;
import com.onsiteservice.admin.service.sys.SysRoleService;
import com.onsiteservice.common.annotation.user.CurrentUserId;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultGenerator;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.entity.sys.SysRole;
import com.onsiteservice.entity.sys.SysUser;
import io.swagger.annotations.Api;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import java.util.List;
/**
* @author wang jianguo
* @date 2021-07-22 17:42
* SysRoleController控制类
*/
@ApiIgnore
@Api(tags = "SysRoleController")
@RestController
@RequestMapping("/sys/role")
@Validated
public class SysRoleController {
@Resource
private SysRoleService sysRoleService;
/**
* 分页查询列表
*
* @param param 分页参数
* @return 分页数据
*/
@PostMapping("/page")
public Result pageList(@RequestBody SysRolePageDTO param) {
PageHelper.startPage(param.getPage(), param.getSize());
List<SysRole> list = sysRoleService.getPage(param);
PageInfoVO pageInfo = new PageInfoVO(list);
return ResultGenerator.success(pageInfo, "获取分页列表");
}
/**
* 根据id查询
*
* @param id 主键
* @return 详情数据
*/
@GetMapping("/{id}")
public Result findById(@PathVariable Integer id) {
return ResultGenerator.success(sysRoleService.getDetail(id), "根据id获取详情");
}
/**
* 新增保存对象
*
* @param param 保存对象
*/
@PostMapping
public Result save(@RequestBody @NonNull @Validated SysRoleSaveDTO param, @CurrentUserId Long sysUserId) {
return ResultGenerator.success(sysRoleService.saveRole(param, sysUserId), "新增成功");
}
/**
* 根据id删除
*
* @param id 主键
*/
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable @Positive Integer id) {
sysRoleService.deleteByPrimaryKey(id);
return ResultGenerator.success("删除成功");
}
@GetMapping("/change/status/{id}")
public Result changeOnline(@PathVariable Long id) {
return ResultGenerator.success(sysRoleService.changeStatus(id), "修改使用状态");
}
}
package com.onsiteservice.admin.controller.sys;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.admin.controller.sys.dto.PwdChangeDTO;
import com.onsiteservice.admin.controller.sys.dto.SysUserDetailDTO;
import com.onsiteservice.admin.controller.sys.dto.SysUserPageDTO;
import com.onsiteservice.admin.service.sys.SysUserService;
import com.onsiteservice.common.annotation.user.CurrentUserId;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultGenerator;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.entity.sys.SysUser;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import java.util.List;
/**
* @author wangning
* @date 2019-10-11 09:02
* SysUserController控制类
*/
@RestController
@RequestMapping("/sys/user")
@Validated
public class SysUserController {
@Resource
private SysUserService sysUserService;
/**
* 分页查询列表
*
* @param dto 分页参数
* @return 分页数据
*/
@PostMapping("/page")
public Result getPageList(@RequestBody SysUserPageDTO dto) {
PageHelper.startPage(dto.getPage(), dto.getSize());
List<SysUser> list = sysUserService.getPage(dto);
PageInfoVO pageInfo = new PageInfoVO(list);
return ResultGenerator.success(pageInfo, "获取分页列表");
}
/**
* 根据id查询
*
* @param id 主键
* @return 详情数据
*/
@GetMapping("/{id}")
public Result findById(@PathVariable Integer id) {
return ResultGenerator.success(sysUserService.getUserDetail(id), "根据id获取详情");
}
/**
* 新增保存对象
*
* @param sysUser 保存对象
*/
@PostMapping
public Result save(@RequestBody @NonNull @Validated SysUserDetailDTO sysUser, @CurrentUserId Long userId) {
return ResultGenerator.success(sysUserService.saveDetail(sysUser,userId), "保存成功");
}
/**
* 更新修改对象
*
* @param sysUser 修改对象
*/
@PutMapping
public Result update(@RequestBody @NonNull @Validated SysUser sysUser) {
// 使用缓存方法
sysUserService.saveCache(sysUser);
return ResultGenerator.success(sysUser, "更新成功");
}
@GetMapping("/password/reset/{id}")
public Result resetPwd(@PathVariable @Positive Integer id) {
sysUserService.resetPwd(id);
return ResultGenerator.success("重置密码成功");
}
@PutMapping("/password/edit")
public Result editPwd(@RequestBody @NonNull @Validated PwdChangeDTO dto, @CurrentUserId Long userId) {
sysUserService.editPwd(dto, userId);
return ResultGenerator.success("修改密码成功");
}
@GetMapping("/change/status/{id}")
public Result changeOnline(@PathVariable Long id) {
return ResultGenerator.success(sysUserService.changeStatus(id), "修改使用状态");
}
}
package com.onsiteservice.admin.controller.sys;
import com.onsiteservice.admin.service.sys.SysUserRoleService;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.entity.sys.SysUserRole;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import static com.onsiteservice.core.result.ResultGenerator.success;
/**
* @author wang jianguo
* @date 2021-07-22 17:53
* SysUserRoleController控制类
*/
@ApiIgnore
@Api(tags = "SysUserRoleController")
@RestController
@RequestMapping("/sys/user/role")
@Validated
public class SysUserRoleController {
@Resource
private SysUserRoleService sysUserRoleService;
@ApiOperation(value = "分页查询列表", notes = "作者: wang jianguo")
@PostMapping("/page")
public Result<PageInfoVO> getPage(@RequestBody @NonNull @Validated PageParams param) {
return success(sysUserRoleService.getPage(param), "获取分页列表");
}
@ApiOperation(value = "根据id查询", notes = "作者: wang jianguo")
@GetMapping("/{id}")
public Result<SysUserRole> getDetails(@PathVariable @Positive Long id) {
return success(sysUserRoleService.selectByPrimaryKey(id), "根据id获取详情");
}
@ApiOperation(value = "新增或修改", notes = "作者: wang jianguo")
@PostMapping("/save-or-update")
public Result saveOrUpdate(@RequestBody @NonNull @Validated SysUserRole sysUserRole) {
return success(sysUserRoleService.saveOrUpdate(sysUserRole), sysUserRole.getId() == null ? "新增成功" : "修改成功");
}
@ApiOperation(value = "根据id删除", notes = "作者: wang jianguo")
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable @Positive Long id) {
return success(sysUserRoleService.deleteByPrimaryKey(id), "删除成功");
}
}
package com.onsiteservice.admin.controller.sys.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* @author 商天翔
* @date 2020/4/1 8:23
* @email shangtx@126.com
* @description
*/
@ApiModel(description = "修改密码请求参数")
@Getter
@Setter
@ToString
public class PwdChangeDTO {
@ApiModelProperty(value = "旧密码")
private String oldPwd;
@ApiModelProperty(value = "新密码")
private String newPwd;
}
package com.onsiteservice.admin.controller.sys.dto;
import com.onsiteservice.dao.common.page.PageParams;
import lombok.Data;
/**
* @Author wangning
* @Date 2019-10-15 9:48
* @Email 1151089590@qq.com
* @Description:
*/
@Data
public class SysDictPageDTO extends PageParams {
private String code;
private String name;
private Integer type;
private String ctDateBegin;
private String ctDateEnd;
}
package com.onsiteservice.admin.controller.sys.dto;
import com.onsiteservice.entity.sys.SysDict;
import com.onsiteservice.entity.sys.SysDictType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author linxianghua
* @Date 2019/10/1516:16
* @Email 406235635@qq.com
* @Description:
*/
@ApiModel(value = "SysCodeSaveDTO", description = "通用代码保存")
@Data
public class SysDictSaveDTO {
@ApiModelProperty(value = "代码主表")
private SysDictType sysCodeType;
@ApiModelProperty(value = "需更新代码项")
private List<SysDict> updateList;
@ApiModelProperty(value = "新增代码项")
private List<SysDict> insertList;
@ApiModelProperty(value = "删除代码项")
private List<Integer> delIdList;
}
package com.onsiteservice.admin.controller.sys.dto;
import com.onsiteservice.dao.common.page.PageParams;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 登录日志分页DTO
*
* @author 商天翔
* @date 2021/9/16
*/
@Data
public class SysLoginLogPageDTO extends PageParams {
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("BIZ0004 来源 1微信小程序 2日照通")
private Integer source;
@ApiModelProperty("客户名称")
private String name;
@ApiModelProperty("登陆时间开始")
private Date createTimeBegin;
@ApiModelProperty("登陆时间结束")
private Date createTimeEnd;
}
package com.onsiteservice.admin.controller.sys.dto;
import com.onsiteservice.dao.common.page.PageParams;
import lombok.Data;
/**
* @author wang jianguo
* @date 2019/10/15 14:45
* @email qizhi1a440@outlook.com
* @description:
*/
@Data
public class SysParamDTO extends PageParams {
private String name;
private String type;
}
package com.onsiteservice.admin.controller.sys.dto;
import com.onsiteservice.dao.common.page.PageParams;
import lombok.Data;
/**
* @Author linxianghua
* @Date 2019/10/1516:42
* @Email 406235635@qq.com
* @Description:
*/
@Data
public class SysRolePageDTO extends PageParams {
private String code;
private String name;
private String available;
}
package com.onsiteservice.admin.controller.sys.dto;
import com.onsiteservice.entity.sys.SysRole;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author linxianghua
* @Date 2019/10/1517:37
* @Email 406235635@qq.com
* @Description:
*/
@Data
public class SysRoleSaveDTO {
@ApiModelProperty(value = "代码主表")
private SysRole sysRole;
@ApiModelProperty(value = "操作关联表")
private List<Integer> saveOperatedList;
private List<String> insertServicesList;
private List<String> deletedServicesList;
}
package com.onsiteservice.admin.controller.sys.dto;
import com.onsiteservice.dao.common.page.PageParams;
import lombok.Data;
/**
* @Author wangning
* @Date 2019-10-16 16:04
* @Email 1151089590@qq.com
* @Description:
*/
@Data
public class SysUserCaregiverAccountFlowPageDTO extends PageParams {
private String name;
private Integer type;
private Integer status;
private String ctDateBegin;
private String ctDateEnd;
}
package com.onsiteservice.admin.controller.sys.dto;
import com.onsiteservice.dao.common.page.PageParams;
import lombok.Data;
/**
* @Author wangning
* @Date 2019-10-16 16:04
* @Email 1151089590@qq.com
* @Description:
*/
@Data
public class SysUserCaregiverPageDTO extends PageParams {
private String username;
private String realName;
private String mobile;
private String available;
private Integer caregiverLevel;
}
package com.onsiteservice.admin.controller.sys.dto;
import com.onsiteservice.entity.sys.SysUser;
import lombok.Data;
import java.util.List;
/**
* @Author wangning
* @Date 2019-10-16 17:01
* @Email 1151089590@qq.com
* @Description:
*/
@Data
public class SysUserDetailDTO {
private SysUser sysUserDetail;
private List<Integer> sysUserCheckedRoleList;
private String[] idImageList;
private String[] workImageList;
private String[] healthyImageList;
}
package com.onsiteservice.admin.controller.sys.dto;
import com.onsiteservice.dao.common.page.PageParams;
import lombok.Data;
/**
* @Author wangning
* @Date 2019-10-16 16:04
* @Email 1151089590@qq.com
* @Description:
*/
@Data
public class SysUserPageDTO extends PageParams {
private String username;
private String realName;
private String mobile;
private String available;
}
package com.onsiteservice.admin.controller.sys.vo;
import com.onsiteservice.entity.sys.SysBusiness;
import com.onsiteservice.entity.sys.SysBusinessOperate;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 业务树VO
*/
@Data
public class SysBusinessTree {
public SysBusinessTree() {
}
public SysBusinessTree(SysBusiness sysBusiness) {
this.id = sysBusiness.getId();
this.code = sysBusiness.getCode();
this.name = sysBusiness.getName();
this.parentCode = sysBusiness.getParentCode();
this.icon = sysBusiness.getIcon();
this.vrPath = sysBusiness.getVrPath();
this.vrName = sysBusiness.getVrName();
this.vrRedirect = sysBusiness.getVrRedirect();
this.vrComponentPath = sysBusiness.getVrComponentPath();
this.vrKeepAlive = sysBusiness.getIsCache();
this.showInMenu = sysBusiness.getIsShow();
this.showOrder = sysBusiness.getShowOrder();
this.ctDate = sysBusiness.getCreateTime();
}
private Long id;
private String code;
private String name;
private String parentName;
private String parentCode;
private String icon;
private String vrPath;
private String vrName;
private String vrRedirect;
private String vrComponentPath;
private Boolean vrKeepAlive;
private Boolean showInMenu;
private Integer showOrder;
private Date ctDate;
private List<SysBusinessTree> children;
private List<SysBusinessOperate> sysBusinessOperateList;
}
package com.onsiteservice.admin.controller.sys.vo;
import com.onsiteservice.entity.sys.SysDict;
import com.onsiteservice.entity.sys.SysDictType;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* @Author wangning
* @Date 2019-10-15 10:00
* @Email 1151089590@qq.com
* @Description:
*/
@Data
public class SysDictTypeDetailVO {
private SysDictType sysCodeType;
private List<SysDict> codeDetailList;
private Map<String, List<SysDict>> codeMap;
}
package com.onsiteservice.admin.controller.sys.vo;
import com.onsiteservice.entity.sys.SysParam;
import lombok.Data;
/**
* @author wang ning
* @date 2019/10/15 14:45
* @email qizhi1a440@outlook.com
* @description:
*/
@Data
public class SysParamVO extends SysParam {
private String username;
}
package com.onsiteservice.admin.controller.sys.vo;
import com.onsiteservice.entity.sys.SysRole;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* @Author linxianghua
* @Date 2019/10/1517:07
* @Email 406235635@qq.com
* @Description:
*/
@Data
public class SysRoleDetailVO {
private SysRole sysRole;
private Map<String, List<Map>> codeMap;
private List<SysBusinessTree> sysBusinessTreeList;
private List<String> checkedServicesList;
}
package com.onsiteservice.admin.controller.sys.vo;
import com.onsiteservice.entity.sys.SysRole;
import com.onsiteservice.entity.sys.SysUser;
import lombok.Data;
import java.util.List;
/**
* @Author wangning
* @Date 2019-10-16 16:40
* @Email 1151089590@qq.com
* @Description:
*/
@Data
public class SysUserDetailVO {
private SysUser sysUserDetail;
private List<SysRole> sysUserRoleList;
private List<Integer> sysUserCheckedRoleList;
}
package com.onsiteservice.admin.mapper.sys;
/**
* @author 王鑫
* @date 2021-04-25 11:41
* SysBusinessBizMapper业务接口
*/
public interface SysBusinessBizMapper {
}
package com.onsiteservice.admin.mapper.sys;
import com.onsiteservice.entity.sys.SysBusinessOperateResource;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author wang jianguo
* @date 2021-07-21 10:11
* SysBusinessOperateResourceBizMapper业务接口
*/
public interface SysBusinessOperateResourceBizMapper {
/**
* 查询所有
*
* @param platformId
* @return
*/
List<SysBusinessOperateResource> getAll(@Param("platformId") Long platformId);
/**
* 根据用户名查询
*
* @param userName
* @param platformId
* @return
*/
List<SysBusinessOperateResource> getByUserName(@Param("userName") String userName, @Param("platformId") Long platformId);
}
package com.onsiteservice.admin.mapper.sys;
/**
* @author wang jianguo
* @date 2021-07-23 10:37
* SysDictBizMapper业务接口
*/
public interface SysDictBizMapper {
}
package com.onsiteservice.admin.mapper.sys;
import com.github.pagehelper.Page;
import com.onsiteservice.admin.controller.sys.dto.SysDictPageDTO;
import com.onsiteservice.entity.sys.SysDict;
import com.onsiteservice.entity.sys.SysDictType;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author wang jianguo
* @date 2021-07-23 10:37
* SysDictTypeBizMapper业务接口
*/
public interface SysDictTypeBizMapper {
/**
* 获取分页列表
*
* @param param
* @return com.github.pagehelper.Page<com.dao.model.sys.SysCodeType>
* @author linxianghua
* @date 2019/10/12 10:45
*/
Page<SysDictType> getPage(@Param("param") SysDictPageDTO param);
List<SysDict> getSysCodeDetailList(String code);
/**
* 查询重复
*
* @param id
* @param code
* @return int
* @author linxianghua
* @date 2019/10/14 17:10
*/
int getRepeat(@Param("id") Long id, @Param("code") String code);
void updateTypeCode(@Param("newCode") String newCode, @Param("oldCode") String oldCode);
}
package com.onsiteservice.admin.mapper.sys;
import com.onsiteservice.dao.common.page.PageParams;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author 商天翔
* @date 2021-09-15 17:25
* SysLoginLogBizMapper业务接口
*/
public interface SysLoginLogBizMapper {
List<Map<String, Object>> getPage(@Param("dto") PageParams dto);
}
package com.onsiteservice.admin.mapper.sys;
import com.onsiteservice.admin.controller.sys.dto.SysParamDTO;
import com.onsiteservice.admin.controller.sys.vo.SysParamVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author wang jianguo
* @date 2021-07-23 17:45
* SysParamBizMapper业务接口
*/
public interface SysParamBizMapper {
List<SysParamVO> getPage(@Param("param") SysParamDTO param);
}
package com.onsiteservice.admin.mapper.sys;
import com.github.pagehelper.Page;
import com.onsiteservice.admin.controller.sys.dto.SysRolePageDTO;
import com.onsiteservice.entity.sys.SysRole;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author wang jianguo
* @date 2021-07-22 17:42
* SysRoleBizMapper业务接口
*/
public interface SysRoleBizMapper {
Page<SysRole> getPage(@Param("param") SysRolePageDTO param);
int getRepeat(@Param("id") Long id, @Param("code") String code);
int availableOrDeleteByPrimaryKey(@Param("id") Long id ,@Param("available") Integer available);
int deleteBatch(@Param("delList") Integer[] ids);
List<SysRole> getAllAvailableRole();
int getRoleUserNum(Long roleId);
int getByUserIdAndRoleCode(@Param("userId")Long userId, @Param("roleCode")String roleCode);
}
package com.onsiteservice.admin.mapper.sys;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author wang jianguo
* @date 2021-07-21 10:31
* SysRoleOperateBizMapper业务接口
*/
public interface SysRoleOperateBizMapper {
int insertBatch(@Param("roleId") Long roleId, @Param("saveOperatedList") List<Integer> saveOperatedList);
}
package com.onsiteservice.admin.mapper.sys;
import com.onsiteservice.admin.controller.sys.dto.SysUserCaregiverPageDTO;
import com.onsiteservice.admin.controller.sys.dto.SysUserPageDTO;
import com.onsiteservice.entity.sys.SysUser;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author 王鑫
* @date 2021-04-25 10:57
* SysUserBizMapper业务接口
*/
public interface SysUserBizMapper {
/**
* 分页查询列表
* @return
*/
List<SysUser> getPage(@Param("param") SysUserPageDTO param);
List<SysUser> getCaregiverPage(@Param("param") SysUserCaregiverPageDTO param);
/**
* 查询用户已关联的角色id集合
*/
List<Long> selectRoleIdListByUser(@Param("userId") Long userId);
/**
* 删除用户的角色关联数据
*/
int deleteUserRole(String userIds);
/**
* 插入用户与角色的关联数据
*/
int setUserRole(@Param("userId") Long userId, @Param("roleIdList") List<Long> roleId);
SysUser getDetail(Integer id);
List<String> getRoleNameListByUserId(Long userId);
int getRepeat(@Param(value = "userId")Long userId, @Param(value = "userName") String userName);
}
package com.onsiteservice.admin.mapper.sys;
/**
* @author wang jianguo
* @date 2021-07-22 17:53
* SysUserRoleBizMapper业务接口
*/
public interface SysUserRoleBizMapper {
}
package com.onsiteservice.admin.service.sys;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.mapper.sys.SysBusinessOperateResourceMapper;
import com.onsiteservice.entity.sys.SysBusinessOperateResource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Condition;
import javax.annotation.Resource;
import java.util.List;
/**
* @author wang jianguo
* @date 2021-07-21 10:11
* SysBusinessOperateResourceService服务类
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class SysBusinessOperateResourceService extends AbstractMapper<SysBusinessOperateResource> {
@Resource
private SysBusinessOperateResourceMapper sysBusinessOperateResourceMapper;
public void delByOperates(List<Long> ids) {
Condition condition = new Condition(SysBusinessOperateResource.class);
condition.createCriteria().andIn("businessOperateId", ids);
sysBusinessOperateResourceMapper.deleteByCondition(condition);
}
public List<SysBusinessOperateResource> getByOperateId(Long id) {
Condition condition = new Condition(SysBusinessOperateResource.class);
condition.createCriteria().andEqualTo("businessOperateId", id);
return sysBusinessOperateResourceMapper.selectByCondition(condition);
}
public void deleteBatch(List<Long> ids) {
sysBusinessOperateResourceMapper.deleteByIdList(ids);
}
}
package com.onsiteservice.admin.service.sys;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.mapper.sys.SysBusinessOperateMapper;
import com.onsiteservice.entity.sys.SysBusinessOperate;
import org.springframework.data.annotation.Transient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
/**
* @author wangning
* @date 2019-10-11 09:02
* SysBusinessOperateService服务类
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class SysBusinessOperateService extends AbstractMapper<SysBusinessOperate> {
@Resource
private SysBusinessOperateMapper sysBusinessOperateMapper;
@Resource
private SysBusinessOperateResourceService sysBusinessOperateResourceService;
@Resource
private SysRoleOperateService sysRoleOperateService;
public List<SysBusinessOperate> getByBusinessId(Long id) {
SysBusinessOperate condition = new SysBusinessOperate();
condition.setBusinessId(id);
return sysBusinessOperateMapper.select(condition);
}
@Transient
public void deleteBatch(List<Long> ids) {
sysBusinessOperateMapper.deleteByIdList(ids);
sysBusinessOperateResourceService.delByOperates(ids);
sysRoleOperateService.delByOperates(ids);
}
}
package com.onsiteservice.admin.service.sys; package com.onsiteservice.admin.service.sys;
import com.onsiteservice.admin.controller.sys.vo.LoginInitVO; import com.onsiteservice.admin.controller.sys.vo.LoginInitVO;
import com.onsiteservice.admin.controller.sys.vo.SysBusinessTree;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.mapper.sys.SysBusinessMapper; import com.onsiteservice.dao.mapper.sys.SysBusinessMapper;
import com.onsiteservice.dao.mapper.sys.SysBusinessOperateMapper; import com.onsiteservice.dao.mapper.sys.SysBusinessOperateMapper;
import com.onsiteservice.dao.mapper.sys.SysUserMapper; import com.onsiteservice.dao.mapper.sys.SysUserMapper;
import com.onsiteservice.entity.sys.SysBusiness;
import com.onsiteservice.entity.sys.SysBusinessOperate; import com.onsiteservice.entity.sys.SysBusinessOperate;
import com.onsiteservice.entity.sys.SysUser; import com.onsiteservice.entity.sys.SysUser;
import com.onsiteservice.entity.sys.vo.MenuTreeVO; import com.onsiteservice.entity.sys.vo.MenuTreeVO;
import com.onsiteservice.util.tree.TreePathUtils; import com.onsiteservice.util.tree.TreePathUtils;
import com.onsiteservice.util.tree.TreeUtils; import com.onsiteservice.util.tree.TreeUtils;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import java.util.*;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public class SysBusinessService { @AllArgsConstructor(onConstructor_ = {@Autowired})
public class SysBusinessService extends AbstractMapper<SysBusiness> {
@Resource
private SysUserMapper sysUserMapper; private SysUserMapper sysUserMapper;
@Resource
private SysBusinessMapper sysBusinessMapper; private SysBusinessMapper sysBusinessMapper;
@Resource
private SysBusinessOperateMapper sysBusinessOperateMapper; private SysBusinessOperateMapper sysBusinessOperateMapper;
...@@ -79,4 +78,14 @@ public class SysBusinessService { ...@@ -79,4 +78,14 @@ public class SysBusinessService {
} }
/**
* 获取全部业务数据
* @return
*/
public List<SysBusinessTree> getAllList() {
List<SysBusiness> businessList = sysBusinessMapper.selectAll();
List<SysBusinessTree> treeNodeList = businessList.stream().map(b -> new SysBusinessTree(b)).collect(Collectors.toList());
return TreeUtils.getTree(treeNodeList, SysBusinessTree::getCode, SysBusinessTree::getParentCode, SysBusinessTree::setChildren);
}
} }
package com.onsiteservice.admin.service.sys;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.admin.mapper.sys.SysDictBizMapper;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.dao.mapper.sys.SysDictMapper;
import com.onsiteservice.entity.sys.SysDict;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* @author wang jianguo
* @date 2021-07-23 10:37
* SysDictService服务类
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class SysDictService extends AbstractMapper<SysDict> {
@Resource
private SysDictMapper sysDictMapper;
@Resource
private SysDictBizMapper sysDictBizMapper;
/**
* 分页查询列表
*/
public PageInfoVO getPage(PageParams param) {
PageHelper.startPage(param.getPage(), param.getSize());
return new PageInfoVO(this.selectAll());
}
/**
* 保存或更新方法
*/
public int saveOrUpdate(SysDict sysDict) {
if (sysDict.getId() == null) {
return this.insertSelective(sysDict);
} else {
return this.updateByPrimaryKeySelective(sysDict);
}
}
}
package com.onsiteservice.admin.service.sys;
import com.onsiteservice.admin.controller.sys.dto.SysDictPageDTO;
import com.onsiteservice.admin.controller.sys.dto.SysDictSaveDTO;
import com.onsiteservice.admin.controller.sys.vo.SysDictTypeDetailVO;
import com.onsiteservice.admin.mapper.sys.SysDictTypeBizMapper;
import com.onsiteservice.constant.constant.DictConstants;
import com.onsiteservice.core.exception.ServiceException;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.mapper.sys.SysDictMapper;
import com.onsiteservice.dao.util.EntityUtils;
import com.onsiteservice.entity.sys.SysDict;
import com.onsiteservice.entity.sys.SysDictType;
import com.onsiteservice.entity.sys.SysUser;
import com.onsiteservice.util.ArrayUtils;
import com.onsiteservice.util.CommonUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Condition;
import javax.annotation.Resource;
import java.util.*;
/**
* @author wang jianguo
* @date 2021-07-23 10:37
* SysDictTypeService服务类
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class SysDictTypeService extends AbstractMapper<SysDictType> {
@Resource
private SysDictTypeBizMapper sysDictTypeBizMapper;
@Resource
private SysDictMapper sysDictMapper;
/**
* 分页查询
*
* @param param
* @return com.anplus.admin.dto.SysCodePageDTO
* @author linxianghua
* @date 2019/10/12 10:39
*/
public List<SysDictType> getPage(SysDictPageDTO param) {
return sysDictTypeBizMapper.getPage(param);
}
/**
* 分页查询
*
* @param id
* @return com.anplus.admin.dto.SysCodePageDTO
* @author linxianghua
* @date 2019/10/12 10:39
*/
public SysDictTypeDetailVO getDetail(Integer id) {
SysDictTypeDetailVO vo = new SysDictTypeDetailVO();
vo.setCodeMap(this.getCodeByTypes(DictConstants.SYS_DICT_CATEGORY));
if (CommonUtils.isZero(id)) {
vo.setSysCodeType(new SysDictType());
} else {
SysDictType sysCodeType = selectByPrimaryKey(id);
vo.setSysCodeType(sysCodeType);
vo.setCodeDetailList(sysDictTypeBizMapper.getSysCodeDetailList(sysCodeType.getCode()));
}
return vo;
}
private Map<String, List<SysDict>> getCodeByTypes(String... codeType) {
if (ArrayUtils.isEmpty(codeType)) {
return null;
}
List<SysDict> list = new ArrayList();
for (String code : codeType) {
List<SysDict> detailList = this.getCodeDetailList(code);
if (ArrayUtils.isEmpty(detailList)) {
continue;
}
list.addAll(detailList);
}
return this.process(list);
}
public List<SysDict> getCodeDetailList(String code) {
if (Objects.isNull(code)) {
return null;
}
return sysDictTypeBizMapper.getSysCodeDetailList(code);
}
/**
* 设置通用代码映射
*
* @param detailList
* @return
*/
private Map<String, List<SysDict>> process(List<SysDict> detailList) {
Map<String, List<SysDict>> resultMap = null;
if (!ArrayUtils.isEmpty(detailList)) {
resultMap = new HashMap<>(detailList.size());
for (SysDict item : detailList) {
String typeCode = item.getTypeCode();
if (!resultMap.containsKey(typeCode)) {
resultMap.put(typeCode, new ArrayList<>());
}
resultMap.get(typeCode).add(item);
}
}
return resultMap;
}
/**
* @param param
* @return java.lang.Integer
* @author linxianghua
* @date 2019/10/12 14:50
*/
public Long saveCode(SysDictSaveDTO param, Long userId) {
SysDictType sysCodeType = param.getSysCodeType();
if (sysDictTypeBizMapper.getRepeat(sysCodeType.getId(), sysCodeType.getCode()) > 0) {
throw new ServiceException("编号重复!");
}
//根据数据有无id判断是新建还是修改
SysDictType type;
if (CommonUtils.isZero(sysCodeType.getId())) {
sysCodeType.setCreateBy(userId);
insertSelective(sysCodeType);
} else {
type = this.selectByPrimaryKey(sysCodeType.getId());
if (!type.getCode().equals(sysCodeType.getCode())) {
sysDictTypeBizMapper.updateTypeCode(sysCodeType.getCode(), type.getCode());
}
EntityUtils.update(sysCodeType, userId);
updateByPrimaryKeySelective(sysCodeType);
}
//保存明细新增数据
if (ArrayUtils.isNotEmpty(param.getInsertList())) {
for (SysDict item : param.getInsertList()) {
item.setId(null);
item.setCreateBy(userId);
item.setTypeCode(sysCodeType.getCode());
sysDictMapper.insertSelective(item);
}
}
//保存明细修改数据
if (ArrayUtils.isNotEmpty(param.getUpdateList())) {
for (SysDict item : param.getUpdateList()) {
EntityUtils.update(item, userId);
item.setTypeCode(sysCodeType.getCode());
sysDictMapper.updateByPrimaryKeySelective(item);
}
}
//删除数据
if (ArrayUtils.isNotEmpty(param.getDelIdList())) {
sysDictMapper.deleteByIds(StringUtils.join(param.getDelIdList(), ","));
}
return sysCodeType.getId();
}
/**
* 根据code删除
*
* @param codes
*/
public void deleteByCodes(String... codes) {
Condition condition = new Condition(SysDictType.class);
condition.createCriteria().andIn("code", Arrays.asList(codes));
this.deleteByCondition(condition);
}
}
package com.onsiteservice.admin.service.sys;
import com.onsiteservice.admin.controller.sys.dto.SysParamDTO;
import com.onsiteservice.admin.controller.sys.vo.SysParamVO;
import com.onsiteservice.admin.mapper.sys.SysParamBizMapper;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.util.EntityUtils;
import com.onsiteservice.entity.sys.SysParam;
import com.onsiteservice.entity.sys.SysUser;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
* @author wang jianguo
* @date 2021-07-23 17:45
* SysParamService服务类
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class SysParamService extends AbstractMapper<SysParam> {
@Resource
private SysParamBizMapper sysParamBizMapper;
/**
* 分页查询总控系统参数列表
*
* @param sysParamDTO
* @return
*/
public List<SysParamVO> queryForPage(SysParamDTO sysParamDTO) {
return sysParamBizMapper.getPage(sysParamDTO);
}
public void updateParam(SysParam sysParam, Long userId) {
EntityUtils.update(sysParam, userId);
this.updateByPrimaryKeySelective(sysParam);
}
}
package com.onsiteservice.admin.service.sys;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.dao.mapper.sys.SysRoleOperateMapper;
import com.onsiteservice.entity.sys.SysRoleOperate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
* SysRoleOperateService服务类
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class SysRoleOperateService extends AbstractMapper<SysRoleOperate> {
@Resource
private SysRoleOperateMapper sysRoleOperateMapper;
/**
* 分页查询列表
*/
public PageInfoVO getPage(PageParams param) {
PageHelper.startPage(param.getPage(), param.getSize());
return new PageInfoVO(this.selectAll());
}
/**
* 保存或更新方法
*/
public int saveOrUpdate(SysRoleOperate sysRoleOperate) {
if (sysRoleOperate.getId() == null) {
return this.insertSelective(sysRoleOperate);
} else {
return this.updateByPrimaryKeySelective(sysRoleOperate);
}
}
public void delByOperates(List<Long> ids) {
sysRoleOperateMapper.deleteByIdList(ids);
}
}
package com.onsiteservice.admin.service.sys;
import com.onsiteservice.admin.controller.sys.dto.SysRolePageDTO;
import com.onsiteservice.admin.controller.sys.dto.SysRoleSaveDTO;
import com.onsiteservice.admin.controller.sys.vo.SysBusinessTree;
import com.onsiteservice.admin.controller.sys.vo.SysRoleDetailVO;
import com.onsiteservice.admin.mapper.sys.SysRoleBizMapper;
import com.onsiteservice.admin.mapper.sys.SysRoleOperateBizMapper;
import com.onsiteservice.common.runner.InitDataRunner;
import com.onsiteservice.constant.constant.DictConstants;
import com.onsiteservice.core.exception.ServiceException;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.mapper.sys.SysBusinessMapper;
import com.onsiteservice.dao.mapper.sys.SysRoleMapper;
import com.onsiteservice.dao.mapper.sys.SysRoleOperateMapper;
import com.onsiteservice.dao.util.EntityUtils;
import com.onsiteservice.entity.sys.*;
import com.onsiteservice.util.ArrayUtils;
import com.onsiteservice.util.CommonUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Condition;
import javax.annotation.Resource;
import java.util.*;
/**
* @author wang jianguo
* @date 2021-07-22 17:42
* SysRoleService服务类
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class SysRoleService extends AbstractMapper<SysRole> {
@Resource
private SysRoleMapper sysRoleMapper;
@Resource
private SysRoleBizMapper sysRoleBizMapper;
@Resource
private SysBusinessMapper sysBusinessMapper;
@Resource
private SysBusinessOperateService sysBusinessOperateService;
@Resource
private SysRoleOperateBizMapper sysRoleOperateBizMapper;
@Resource
private SysRoleOperateService sysRoleOperateService;
static void getMenuList(List<SysBusinessTree> menuList, Map<String, SysBusinessTree> menuMap, List<SysBusiness> businessList) {
for (SysBusiness item : businessList) {
if (menuMap.containsKey(item.getParentCode())) {
SysBusinessTree voMenu = menuMap.get(item.getParentCode());
if (voMenu.getChildren() == null) {
voMenu.setChildren(new ArrayList<>());
}
voMenu.getChildren().add(menuMap.get(item.getCode()));
} else {
menuList.add(menuMap.get(item.getCode()));
}
}
}
/**
* 分页查询
*
* @param sysRolePageDTO
* @return com.anplus.admin.dto.SysRolePageVo
* @author linxianghua
* @date 2019/10/12 10:39
*/
public List<SysRole> getPage(SysRolePageDTO sysRolePageDTO) {
return sysRoleBizMapper.getPage(sysRolePageDTO);
}
/**
* 详情
*
* @param id
* @return com.anplus.admin.dto.SysRolePageVo
* @author linxianghua
* @date 2019/10/12 10:39
*/
public SysRoleDetailVO getDetail(Integer id) {
SysRoleDetailVO vo = new SysRoleDetailVO();
vo.setCodeMap(Map.of(DictConstants.AVAILABLE_STATUS, InitDataRunner.dictData.get(DictConstants.AVAILABLE_STATUS)));
List<SysBusinessTree> menuList = new ArrayList<>();
Map<String, SysBusinessTree> menuMap = new HashMap<>();
List<SysRoleOperate> operateSelectedList = new ArrayList<>();
List<SysBusiness> businessList = sysBusinessMapper.selectAll();
List<SysBusinessOperate> operateList = sysBusinessOperateService.selectAll();
if (CommonUtils.isZero(id)) {
SysRole sysRole = new SysRole();
sysRole.setIsEnabled(true);
vo.setSysRole(sysRole);
} else {
vo.setSysRole(selectByPrimaryKey(id));
Condition condition = new Condition(SysRoleOperate.class);
condition.createCriteria().andCondition("role_id = " + Long.valueOf(id));
Map<Long, SysBusinessOperate> operateMap = new HashMap<>();
for (SysBusinessOperate operate : operateList) {
operateMap.put(operate.getId(), operate);
}
}
for (SysBusiness item : businessList) {
SysBusinessTree sysBusinessTree = new SysBusinessTree(item);
sysBusinessTree.setSysBusinessOperateList(new ArrayList<>());
for (SysBusinessOperate sysBusinessOperate : operateList) {
if (sysBusinessOperate.getBusinessId().equals(item.getId())) {
sysBusinessTree.getSysBusinessOperateList().add(sysBusinessOperate);
}
}
menuMap.put(item.getCode(), sysBusinessTree);
}
getMenuList(menuList, menuMap, businessList);
vo.setSysBusinessTreeList(menuList);
return vo;
}
/**
* @param param
* @return java.lang.Long
* @author linxianghua
* @date 2019/10/14 14:57
*/
public Long saveRole(SysRoleSaveDTO param, Long userId) {
SysRole sysRole = param.getSysRole();
if (sysRoleBizMapper.getRepeat(sysRole.getId(), sysRole.getCode()) > 0) {
throw new ServiceException("编号重复!");
}
//根据数据有无id判断是新建还是修改
if (CommonUtils.isZero(sysRole.getId())) {
sysRole.setCreateBy(userId);
insertSelective(sysRole);
} else {
EntityUtils.update(sysRole, userId);
updateByPrimaryKeySelective(sysRole);
Condition condition = new Condition(SysRoleOperate.class);
condition.createCriteria().andCondition("role_id=" + sysRole.getId());
sysRoleOperateService.deleteByCondition(condition);
}
if (param.getSaveOperatedList().size() > 0) {
sysRoleOperateBizMapper.insertBatch(sysRole.getId(), param.getSaveOperatedList());
}
return sysRole.getId();
}
/**
* 查询所以可用角色
*
* @param
* @return java.util.List<com.dao.model.sys.SysRole>
* @author wangning
* @date 2019-10-16 16:58
*/
public List<SysRole> getAllAvailableRole() {
return sysRoleBizMapper.getAllAvailableRole();
}
/**
* 更改用户启用状态
*
* @param id
* @return java.lang.Long
* @author linxianghua
* @date 2019/11/14 11:37
*/
public Long changeStatus(Long id) {
SysRole sysRole = selectByPrimaryKey(id);
sysRole.setIsEnabled(!sysRole.getIsEnabled());
if (!sysRole.getIsEnabled()) {
// 如果是禁用,则校验是否已经关联用户
if (sysRoleBizMapper.getRoleUserNum(id) > 0) {
throw new ServiceException("该角色已经关联用户,不能禁用");
}
}
updateByPrimaryKeySelective(sysRole);
return sysRole.getId();
}
}
package com.onsiteservice.admin.service.sys;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.admin.mapper.sys.SysUserRoleBizMapper;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.dao.mapper.sys.SysUserRoleMapper;
import com.onsiteservice.entity.sys.SysUserRole;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
* @author wang jianguo
* @date 2021-07-22 17:53
* SysUserRoleService服务类
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class SysUserRoleService extends AbstractMapper<SysUserRole> {
@Resource
private SysUserRoleMapper sysUserRoleMapper;
@Resource
private SysUserRoleBizMapper sysUserRoleBizMapper;
/**
* 分页查询列表
*/
public PageInfoVO getPage(PageParams param) {
PageHelper.startPage(param.getPage(), param.getSize());
return new PageInfoVO(this.selectAll());
}
/**
* 保存或更新方法
*/
public int saveOrUpdate(SysUserRole sysUserRole) {
if (sysUserRole.getId() == null) {
return this.insertSelective(sysUserRole);
} else {
return this.updateByPrimaryKeySelective(sysUserRole);
}
}
public List<Integer> getUserRoleByUserId(Integer id) {
return sysUserRoleMapper.getUserRoleByUserId(id);
}
public void deleteByUserId(Long id) {
sysUserRoleMapper.deleteByUserId(id);
}
public void insertUserRole(Long userId, List<Integer> roleList) {
sysUserRoleMapper.insertUserRole(userId, roleList);
}
}
package com.onsiteservice.admin.service.sys;
import com.onsiteservice.admin.controller.sys.dto.PwdChangeDTO;
import com.onsiteservice.admin.controller.sys.dto.SysUserDetailDTO;
import com.onsiteservice.admin.controller.sys.dto.SysUserPageDTO;
import com.onsiteservice.admin.controller.sys.vo.SysUserDetailVO;
import com.onsiteservice.admin.mapper.sys.SysUserBizMapper;
import com.onsiteservice.common.service.CommonService;
import com.onsiteservice.constant.constant.SysParamConstants;
import com.onsiteservice.core.exception.ServiceException;
import com.onsiteservice.dao.mapper.sys.SysUserMapper;
import com.onsiteservice.dao.util.EntityUtils;
import com.onsiteservice.entity.sys.SysUser;
import com.onsiteservice.util.CommonUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class SysUserService {
@Value("${project.default-pwd}")
private String defaultPassword;
@Value("${aliyun.oss.default-avatar}")
private String defaultAvatar;
@Resource
private SysUserBizMapper sysUserBizMapper;
@Resource
private SysUserMapper sysUserMapper;
@Resource
private PasswordEncoder passwordEncoder;
@Resource
private SysRoleService sysRoleService;
@Resource
private SysUserRoleService sysUserRoleService;
@Resource
private BCryptPasswordEncoder bCryptPasswordEncoder;
@Resource
private CommonService commonService;
public List<SysUser> getPage(SysUserPageDTO dto) {
return sysUserBizMapper.getPage(dto);
}
public SysUser getById(Long id) {
SysUser user = sysUserMapper.selectByPrimaryKey(id);
if (ObjectUtils.isEmpty(user)) {
throw new ServiceException(401, "找不到该用户");
}
if (ObjectUtils.isEmpty(user.getAvatarUrl())) {
user.setAvatarUrl(defaultAvatar);
}
return user;
}
public SysUserDetailVO getUserDetail(Integer id) {
SysUserDetailVO result = new SysUserDetailVO();
if (CommonUtils.isZero(id)) {
result.setSysUserDetail(new SysUser());
} else {
result.setSysUserDetail(sysUserMapper.selectByPrimaryKey(id));
result.setSysUserCheckedRoleList(sysUserRoleService.getUserRoleByUserId(id));
}
result.setSysUserRoleList(sysRoleService.getAllAvailableRole());
return result;
}
public long saveDetail(SysUserDetailDTO dto, Long userId) {
//待保存用户信息
SysUser newUserInfo = dto.getSysUserDetail();
// 校验用户名是否重复
if (sysUserBizMapper.getRepeat(newUserInfo.getId() == null ? 0 : newUserInfo.getId(), newUserInfo.getUserName()) > 0) {
throw new ServiceException("该用户名已存在,请修改!");
}
if(newUserInfo.getAvatarUrl()==null){
newUserInfo.setAvatarUrl(commonService.getSysParamValue(SysParamConstants.AVATAR_URL));
}
// 勾选角色
List<Integer> sysUserCheckedRoleList = dto.getSysUserCheckedRoleList();
// 根据数据有无id判断是新建还是修改
if (CommonUtils.isZero(newUserInfo.getId())) {
this.setSysUserDefaultInfo(newUserInfo);
sysUserMapper.insertSelective(newUserInfo);
} else {
// 更新,同时清空redis
EntityUtils.update(newUserInfo,userId);
this.saveCache(newUserInfo);
}
// 先删除
sysUserRoleService.deleteByUserId(newUserInfo.getId());
if (null != sysUserCheckedRoleList && sysUserCheckedRoleList.size() > 0) {
// 再增加
sysUserRoleService.insertUserRole(newUserInfo.getId(), sysUserCheckedRoleList);
}
return newUserInfo.getId();
}
/**
* 设置SysUser默认信息
*
* @param sysUser
*/
public void setSysUserDefaultInfo(SysUser sysUser) {
// 默认密码
sysUser.setPassword(bCryptPasswordEncoder.encode(defaultPassword));
// 默认启用状态
sysUser.setIsEnabled(true);
}
public void saveCache(SysUser user) {
sysUserMapper.updateByPrimaryKeySelective(user);
}
public void resetPwd(Integer id) {
SysUser sysUser = sysUserMapper.selectByPrimaryKey(id);
sysUser.setPassword(bCryptPasswordEncoder.encode(defaultPassword));
this.saveCache(sysUser);
}
public void editPwd(PwdChangeDTO dto, Long userId) {
if (StringUtils.isBlank(dto.getNewPwd()) || StringUtils.isBlank(dto.getOldPwd())) {
throw new ServiceException("新登录密码为空,请确认!");
}
SysUser user = sysUserMapper.selectByPrimaryKey(userId);
if (bCryptPasswordEncoder.matches(dto.getOldPwd(), user.getPassword())) {
user.setPassword(bCryptPasswordEncoder.encode(dto.getNewPwd()));
// 保存,并清空redis
saveCache(user);
} else {
throw new ServiceException("当前登录密码错误,请确认!");
}
}
public Long changeStatus(Long id) {
SysUser sysUser = sysUserMapper.selectByPrimaryKey(id);
sysUser.setIsEnabled(!sysUser.getIsEnabled());
// 更新同时清空redis
saveCache(sysUser);
return sysUser.getId();
}
}
...@@ -6,8 +6,8 @@ server: ...@@ -6,8 +6,8 @@ server:
project: project:
swagger: swagger:
enabled: true enabled: true
title: 城市服务预约Web管理端${spring.profiles.active}环境 title: 房屋线上修缮Web管理端${spring.profiles.active}环境
description: 城市服务预约Web管理端API文档 description: 房屋线上修缮Web管理端API文档
base-package: com.onsiteservice.admin.controller,com.onsiteservice.common.business.controller base-package: com.onsiteservice.admin.controller,com.onsiteservice.common.business.controller
jwt: jwt:
enabled: true # 是否开启jwt拦截 enabled: true # 是否开启jwt拦截
......
<?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.onsiteservice.admin.mapper.sys.SysBusinessBizMapper">
</mapper>
<?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.onsiteservice.admin.mapper.sys.SysBusinessOperateResourceBizMapper">
<select id="getAll" resultType="com.onsiteservice.entity.sys.SysBusinessOperateResource">
SELECT res.*
FROM sys_business_operate_resource res,
sys_business_operate op,
sys_business ob
WHERE res.business_operate_id = op.id
AND op.business_id = ob.id
</select>
<select id="getByUserName" resultType="com.onsiteservice.entity.sys.SysBusinessOperateResource">
SELECT t1.*
FROM sys_business_operate_resource t1
WHERE t1.business_operate_id IN (
SELECT c3.business_operate_id
FROM sys_user c1
LEFT JOIN sys_user_role c2 ON c2.user_id = c1.id
LEFT JOIN sys_role r ON r.id = c2.role_id
LEFT JOIN sys_role_operate c3 ON c3.role_id = c2.role_id
WHERE c1.user_name = #{userName}
)
</select>
</mapper>
<?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.onsiteservice.admin.mapper.sys.SysDictBizMapper">
</mapper>
<?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.onsiteservice.admin.mapper.sys.SysDictTypeBizMapper">
<select id="getPage" resultType="com.onsiteservice.entity.sys.SysDictType">
select * from (
select t1.*,
t2.real_name as ctUserName,
t3.real_name as lmUserName
from sys_dict_type t1
left join sys_user t2 on t1.create_by = t2.id
left join sys_user t3 on t1.modify_by = t3.id
<where>
<if test="param.code != null and param.code != ''">
AND t1.code LIKE '%${param.code}%'
</if>
<if test="param.name != null and param.name != ''">
AND t1.`value` LIKE '%${param.name}%'
</if>
<if test="param.type != null and param.type != ''">
AND t1.type = #{param.type,jdbcType=INTEGER}
</if>
<if test="param.ctDateBegin != null and param.ctDateBegin != ''">
AND t1.create_time <![CDATA[ >= ]]> #{param.ctDateBegin}
</if>
<if test="param.ctDateEnd != null and param.ctDateEnd != ''">
AND t1.create_time <![CDATA[ < ]]> date_sub(#{param.ctDateEnd} ,interval -1 day)
</if>
</where>
) t1
order by
<if test="param.sort != null and param.sort != ''">
${param.sort} ${param.order},
</if>
id desc
</select>
<select id="getSysCodeDetailList" resultType="com.onsiteservice.entity.sys.SysDict">
SELECT id, type_code, `value`, `code`, extend_value, remark
FROM sys_dict
WHERE is_enabled
AND type_code = #{codeType}
</select>
<select id="getRepeat" resultType="java.lang.Integer">
select count(1)
from sys_dict_type
where id != #{id,jdbcType=BIGINT}
and code = #{code,jdbcType=VARCHAR}
</select>
<update id="updateTypeCode">
update
sys_dict
set type_code = #{newCode}
where type_code = #{oldCode}
</update>
</mapper>
<?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.onsiteservice.admin.mapper.sys.SysLoginLogBizMapper">
<select id="getPage" resultType="java.util.Map">
select l.*, ifnull(c.real_name, c.nickname) name
from sys_login_log l
left join customer c
on c.id = l.customer_id
<where>
<if test="dto.source != null">
and l.source = #{dto.source}
</if>
<if test="dto.type != null and dto.type != ''">
and l.type like "%"#{dto.type}"%"
</if>
<if test="dto.name != null and dto.name != ''">
and (c.nickname like "%"#{dto.name}"%" or c.real_name like "%"#{dto.name}"%")
</if>
<if test="dto.createTimeBegin != null and dto.createTimeEnd != null">
and l.create_Time >= #{dto.createTimeBegin}
and l.create_Time <![CDATA[<=]]> #{dto.createTimeEnd}
</if>
</where>
order by
<if test="dto.sort != null and dto.sort != ''">
${dto.sort} ${dto.order},
</if>
l.id desc
</select>
</mapper>
<?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.onsiteservice.admin.mapper.sys.SysParamBizMapper">
<select id="getPage" resultType="com.onsiteservice.admin.controller.sys.vo.SysParamVO">
SELECT sp.*, su.user_name
FROM sys_param sp
LEFT JOIN sys_user su ON su.id = sp.modify_by
WHERE ! sp.is_deleted
<if test="param.name != null and param.name != ''">
AND sp.`name` LIKE '%${param.name}%'
</if>
<if test="param.type != null and param.type != ''">
AND sp.type = #{param.type}
</if>
ORDER BY
<if test="param.sort != null and param.sort != ''">
${param.sort} ${param.order},
</if>
sp.id DESC
</select>
</mapper>
<?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.onsiteservice.admin.mapper.sys.SysRoleBizMapper">
<select id="getPage" resultType="com.onsiteservice.entity.sys.SysRole">
select t1.*,t2.user_name as lmUserName
from sys_role t1
left join sys_user t2 on t1.modify_by = t2.id
<where>
<if test="param.code != null and param.code != ''">
AND t1.code LIKE '%${param.code}%'
</if>
<if test="param.name != null and param.name != ''">
AND t1.name LIKE '%${param.name}%'
</if>
<if test="param.available != null and param.available != ''">
AND t1.is_enabled =#{param.available}
</if>
</where>
order by
<if test="param.sort != null and param.sort != ''">
${param.sort} ${param.order},
</if>
t1.id desc
</select>
<select id="getRepeat" resultType="java.lang.Integer">
select count(1)
from sys_role
where id != #{id,jdbcType=BIGINT}
and code = #{code,jdbcType=VARCHAR}
</select>
<update id="availableOrDeleteByPrimaryKey">
update sys_role
set is_enabled = #{available,jdbcType=INTEGER}
where id = #{id,jdbcType=BIGINT}
</update>
<update id="deleteBatch">
update sys_role
set is_enabled = false
where id in
<foreach close=")" collection="delList" item="item" open="(" separator=",">
${item}
</foreach>
</update>
<select id="getRoleUserNum" resultType="java.lang.Integer">
select count(1) num
from sys_user_role
where role_id = #{roleId}
</select>
<select id="getByUserIdAndRoleCode" resultType="java.lang.Integer">
select count(1) num
from sys_user_role t
left join sys_role t1 on t1.id = t.role_id
where t.user_id = #{userId} and t1.code = #{roleCode}
and t1.is_enabled = true
</select>
<select id="getAllAvailableRole" resultType="com.onsiteservice.entity.sys.SysRole">
select *
from sys_role
where is_enabled
</select>
</mapper>
<?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.onsiteservice.admin.mapper.sys.SysRoleOperateBizMapper">
<insert id="insertBatch">
insert into sys_role_operate (role_id, business_operate_id)
values
<foreach collection="saveOperatedList" item="item" open="(" separator="),(" close=")">
#{roleId,jdbcType=INTEGER}, #{item}
</foreach>
</insert>
</mapper>
<?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.onsiteservice.admin.mapper.sys.SysUserBizMapper">
<insert id="setUserRole">
insert into sys_user_role (user_id, role_id)
values
<foreach collection="roleIdList" item="roleId" separator=",">
(#{userId}, #{roleId})
</foreach>
</insert>
<delete id="deleteUserRole">
delete
from sys_user_role ur
where ur.user_id in (${userIds})
</delete>
<select id="getPage" resultType="com.onsiteservice.entity.sys.SysUser">
select * from (
select t1.*
from sys_user t1
<where>
<if test="param.username != null and param.username != ''">
AND t1.user_name LIKE '%${param.username}%'
</if>
<if test="param.realName != null and param.realName != ''">
AND t1.real_name LIKE '%${param.realName}%'
</if>
<if test="param.mobile != null and param.mobile != ''">
AND t1.phone LIKE '%${param.mobile}%'
</if>
<if test="param.available != null and param.available != ''">
AND t1.is_enabled = #{param.available}
</if>
</where>
) t1
order by
<if test="param.sort != null and param.sort != ''">
${param.sort} ${param.order},
</if>
id desc
</select>
<select id="getCaregiverPage" resultType="com.onsiteservice.entity.sys.SysUser">
select * from (
select t1.*
from sys_user t1
<where>
<if test="param.username != null and param.username != ''">
AND t1.user_name LIKE '%${param.username}%'
</if>
<if test="param.realName != null and param.realName != ''">
AND t1.real_name LIKE '%${param.realName}%'
</if>
<if test="param.mobile != null and param.mobile != ''">
AND t1.phone LIKE '%${param.mobile}%'
</if>
<if test="param.available != null and param.available != ''">
AND t1.is_enabled = #{param.available}
</if>
<if test="param.caregiverLevel != null and param.caregiverLevel != ''">
AND t1.caregiver_level = #{param.caregiverLevel}
</if>
</where>
) t1
order by
<if test="param.sort != null and param.sort != ''">
${param.sort} ${param.order},
</if>
id desc
</select>
<select id="selectRoleIdListByUser" resultType="java.lang.Long">
select role_id
from sys_user_role
where user_id = #{userId}
</select>
<select id="getDetail" resultType="com.onsiteservice.entity.sys.SysUser">
select t1.* ,t2.withdrawal_amount,t2.total_amount
from sys_user t1
left join sys_caregiver_account t2 on t2.caregiver_id = t1.id
where t1.id=#{id}
</select>
<select id="getRoleNameListByUserId" resultType="java.lang.String">
SELECT `name`
FROM sys_role
WHERE is_enabled
AND id IN (SELECT role_id FROM sys_user_role WHERE user_id = #{userId,jdbcType=BIGINT})
</select>
<select id="getRepeat" resultType="java.lang.Integer">
select count(1) num
from sys_user
where id != #{userId,jdbcType=BIGINT}
and user_name = #{userName,jdbcType=VARCHAR}
</select>
</mapper>
<?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.onsiteservice.admin.mapper.sys.SysUserRoleBizMapper">
</mapper>
package com.onsiteservice.common.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.github.xiaoymin.knife4j.annotations.DynamicParameter;
import com.github.xiaoymin.knife4j.annotations.DynamicResponseParameters;
import com.onsiteservice.common.annotation.user.CurrentUserId;
import com.onsiteservice.common.controller.vo.TokenVO;
import com.onsiteservice.common.runner.InitDataRunner;
import com.onsiteservice.common.service.CommonService;
import com.onsiteservice.constant.enums.DictEnum;
import com.onsiteservice.constant.enums.FileTypeEnum;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.security.jwt.JwtManager;
import com.onsiteservice.util.CommonUtils;
import io.swagger.annotations.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.util.*;
import static com.onsiteservice.core.result.ResultGenerator.success;
/**
* @author 潘维吉
* @date 2020/8/10 17:00
* @email 406798106@qq.com
* @description 通用基础业务Controller
*/
@Api(tags = "通用基础")
@ApiSupport(order = 1, author = "潘维吉") // 但是排序的最小值必须大于0
@RestController
@RequestMapping
@Validated
public class CommonController {
/**
* Token过期时间
*/
@Value("${project.jwt.expires-time:-1}")
private long expiresTime;
@Resource
public CommonService commonBizService;
/**
* 刷新登录token 用登录token换新的登录token 安全
*/
@ApiOperationSupport(order = 1)
@ApiOperation(value = "刷新Token", notes = "作者: 潘维吉 。备注: 每次打开app重新更新, 使用登录token请求")
@GetMapping("/token/refresh")
public Result<TokenVO> getRefreshToken(@CurrentUserId Long userId) {
return success(TokenVO.builder()
.token(JwtManager.createToken(Map.of(JwtManager.USER_ID, userId)))
.expiresTime(expiresTime).build(), "获取刷新登录Token成功");
}
/**
* 上传文件对象
* MultipartFile[] file 方式接收多文件上传
*/
@ApiOperationSupport(order = 2)
@ApiOperation(value = "上传文件", notes = "作者: 潘维吉 。备注: 支持多文件")
@ApiImplicitParams({
@ApiImplicitParam(name = "files", value = "文件数据", dataType = "MultipartFile", paramType = "query", allowMultiple = true, required = true)}
)
/* @ApiResponses(
@ApiResponse(code = 200, message = "响应数据: {'urls': '访问urls数组(Array)'}"))*/
@DynamicResponseParameters(name = "", properties = {
@DynamicParameter(name = "urls", value = "访问urls", example = "[]", required = true, dataTypeClass = List.class),
})
@PostMapping("/upload")
public Result upload(@RequestParam("files") MultipartFile[] files,
@ApiParam(value = "文件类型枚举", required = true) @RequestParam
@NotNull(message = "文件类型不能为空") FileTypeEnum fileType,
@CurrentUserId Long userId) {
return commonBizService.uploadOss(files, fileType, userId);
}
/**
* 删除文件
*/
@ApiOperationSupport(order = 3)
@ApiOperation(value = "删除文件", notes = "作者: 潘维吉")
@DeleteMapping("/upload")
public Result delete(@ApiParam(value = "文件路径", required = true) @RequestParam("path") String path) {
return commonBizService.deleteOss(path);
}
/**
* 获取字典 获取多字典code用逗号分隔
*/
@ApiOperationSupport(order = 4)
@ApiOperation(value = "获取字典", notes = "作者: 潘维吉 。 获取多字典code用逗号分隔")
@GetMapping("/dict/{codes}")
public Result getDict(@ApiParam(value = "字典编码", required = true) @PathVariable String codes) {
Map map = new HashMap();
Arrays.asList(StringUtils.deleteWhitespace(codes).split(",")).forEach(code -> {
final List<Map> mapList = InitDataRunner.dictData.get(code);
map.put(code, mapList);
});
return success(map, "获取字典成功");
}
/**
* 获取所有区域树
*/
@ApiOperationSupport(order = 5)
@ApiOperation(value = "获取所有区域树", notes = "作者: 潘维吉")
@GetMapping("/area/tree")
public Result getAllTree() {
return success(commonBizService.getAllTree(), "获取所有区域树");
}
/**
* 获取基础Token
*/
@ApiOperationSupport(order = 100)
@Deprecated
@ApiOperation(value = "获取基础Token", notes = "作者: 潘维吉 。备注: 开发阶段获取非登录状态token")
@GetMapping("/token/base")
public Result<TokenVO> getBaseToken() {
return success(TokenVO.builder()
.token(JwtManager.createToken(Map.of(JwtManager.USER_ID, 0), -1L))
.expiresTime(-1L).build(), "获取基础Token成功");
}
/**
* 根据userId获取登录Token
*/
@Deprecated
@ApiIgnore
@ApiOperation(value = "根据userId获取登录Token", notes = "作者: 潘维吉 。备注: 开发使用")
@GetMapping("/token/{userId}")
public Result<TokenVO> getToken(@ApiParam(value = "用户Id", required = true) @PathVariable Integer userId) {
return success(TokenVO.builder()
.token(JwtManager.createToken(Map.of(JwtManager.USER_ID, userId)))
.expiresTime(expiresTime).build(), "获取登录Token成功");
}
@Deprecated
@ApiIgnore
@ApiOperation(value = "获取枚举", notes = "作者: 潘维吉")
@GetMapping("/enum/{type}")
public Result getEnum(@ApiParam(value = "枚举类型", required = true) @PathVariable String type) {
List list = new LinkedList();
Map map = CommonUtils.getEnumMap(DictEnum.StatusEnum.class);
map.forEach((key, value) -> list.add(value));
return success(list, "获取枚举成功");
}
}
package com.onsiteservice.common.controller.convert;
import com.onsiteservice.common.controller.vo.AreaTreeVO;
import com.onsiteservice.entity.base.BaseArea;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import java.util.List;
/**
* @author 潘维吉
* @date 2020/4/9 10:09
* @email 406798106@qq.com
* @description MapStruct转换
*/
@Mapper(componentModel = "spring")
public interface BaseConvert {
@Mappings({})
AreaTreeVO toAreaTreeVO(BaseArea baseArea);
@Mappings({})
List<AreaTreeVO> toAreaTreeVO(List<BaseArea> baseArea);
}
package com.onsiteservice.common.controller.vo;
import lombok.*;
import java.util.List;
/**
* @author 潘维吉
* @date 2020/3/7 14:42
* @email 406798106@qq.com
* @description 区域树结构
*/
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@ToString
public class AreaTreeVO {
private Long id;
private String code;
private String parentCode;
private String name;
private String namePath;
private String center;
private Integer showOrder;
private List<AreaTreeVO> children;
}
package com.onsiteservice.common.controller.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* @author 潘维吉
* @date 2020/1/15 15:41
* @email 406798106@qq.com
* @description 令牌VO
*/
@ApiModel(description = "Token接口响应数据")
@Builder
@Getter
@Setter
@ToString
public class TokenVO {
/**
* 令牌Token
*/
@ApiModelProperty("令牌Token")
private String token;
/**
* Token过期时间
*/
@ApiModelProperty(value = "Token过期时间(秒)", example = "-1")
private Long expiresTime;
}
package com.onsiteservice.common.service;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.ImmutableMap;
import com.onsiteservice.common.controller.convert.BaseConvert;
import com.onsiteservice.common.controller.vo.AreaTreeVO;
import com.onsiteservice.common.redis.RedisUtils;
import com.onsiteservice.constant.constant.RedisKeyConstants;
import com.onsiteservice.constant.enums.FileTypeEnum;
import com.onsiteservice.core.exception.ServiceException;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.dao.mapper.base.BaseAreaMapper;
import com.onsiteservice.dao.mapper.sys.SysParamMapper;
import com.onsiteservice.entity.base.BaseArea;
import com.onsiteservice.entity.sys.SysParam;
import com.onsiteservice.util.ArrayUtils;
import com.onsiteservice.util.UUIDUtils;
import com.onsiteservice.util.aliyun.OssUtils;
import com.onsiteservice.util.tree.TreeUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.onsiteservice.core.result.ResultGenerator.fail;
import static com.onsiteservice.core.result.ResultGenerator.success;
/**
* @author 潘维吉
* @date 2020/7/1 15:08
* @email 406798106@qq.com
* @description 通用基础业务服务
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class CommonService {
/**
* 自定义系统工程名称 用于区分不同项目模块
*/
@Value("${spring.application.name:project}")
private String projectName;
@Resource
private OssUtils ossUtils;
@Resource
private RedisUtils redisUtils;
@Resource
private BaseAreaMapper baseAreaMapper;
@Resource
private BaseConvert baseConvert;
@Resource
private SysParamMapper sysParamMapper;
/**
* 统一上传oss服务
*/
public Result uploadOss(MultipartFile[] files, FileTypeEnum fileType, Long userId) {
List urls = new ArrayList<>();
Arrays.asList(files).forEach(file -> {
try {
String originalFilename = file.getOriginalFilename();
//获取文件后缀类型
String fileSuffix = originalFilename.substring(originalFilename.lastIndexOf("."));
String fileTypeName = fileType.name().toLowerCase();
String filePath = "";
if (fileTypeName.equalsIgnoreCase(FileTypeEnum.SYSTEM.toString())) { // 系统
filePath = fileTypeName;
} else if (fileTypeName.equalsIgnoreCase(FileTypeEnum.RICH_TEXT.toString())) { // 富文本
filePath = projectName + "/" + fileTypeName;
} else {
filePath = projectName + "/" + fileTypeName + "/" + userId;
}
filePath = filePath + "/" + UUIDUtils.getFlowID() + fileSuffix;
String httpUrl = ossUtils.uploadFile(filePath, file.getBytes());
urls.add(httpUrl);
} catch (IOException e) {
throw new ServiceException("上传文件异常: " + e.getMessage());
}
});
if (!ArrayUtils.isEmpty(urls)) {
return success(ImmutableMap.of("urls", urls), "上传文件成功");
} else {
return fail("上传文件失败");
}
}
/**
* 统一删除oss服务
*/
public Result deleteOss(String path) {
if (StringUtils.isNotBlank(path)) {
try {
ossUtils.deleteFile(path);
return success(String.format("删除文件 %s 成功", path));
} catch (Exception e) {
return success(String.format("删除文件 %s 失败", path));
}
}
return success(String.format("文件 %s 不存在", path));
}
/**
* 获取所有区域树
*/
public List<AreaTreeVO> getAllTree() {
if (redisUtils.exists(RedisKeyConstants.BASE_AREA_TREE)) {
return JSON.parseObject(redisUtils.get(RedisKeyConstants.BASE_AREA_TREE).toString(), List.class);
} else {
List<AreaTreeVO> areaTreeVOList = baseConvert.toAreaTreeVO(
baseAreaMapper.selectAll().stream()
.filter(item -> !"street".equals(item.getLevel()))
.sorted(Comparator.comparing(BaseArea::getShowOrder).reversed())
.collect(Collectors.toList()));
List list = TreeUtils.getTree(areaTreeVOList,
AreaTreeVO::getCode, AreaTreeVO::getParentCode, AreaTreeVO::setChildren);
redisUtils.set(RedisKeyConstants.BASE_AREA_TREE, list, 30L, TimeUnit.DAYS);
return list;
}
}
public String getSysParamValue(String code) {
SysParam sysParam = new SysParam();
sysParam.setCode(code);
SysParam param = sysParamMapper.selectOne(sysParam);
return Objects.isNull(param) ? "" : param.getValue();
}
public Integer getSysParamIntValue(String code) {
String str = this.getSysParamValue(code);
if (StringUtils.isEmpty(str)) {
return 0;
}
return Integer.parseInt(str);
}
}
...@@ -5,4 +5,6 @@ package com.onsiteservice.constant.constant; ...@@ -5,4 +5,6 @@ package com.onsiteservice.constant.constant;
*/ */
public class SysParamConstants { public class SysParamConstants {
/* 默认头像 */
public static final String AVATAR_URL = "";
} }
...@@ -9,6 +9,14 @@ spring: ...@@ -9,6 +9,14 @@ spring:
url: jdbc:mysql://39.96.84.51:3306/onsite_service_dev${project.mysql-url-params} url: jdbc:mysql://39.96.84.51:3306/onsite_service_dev${project.mysql-url-params}
username: onsite_service username: onsite_service
password: ENC(oHHR1aTYVkDAYpWjQk2rD0qIqDId4m0l) password: ENC(oHHR1aTYVkDAYpWjQk2rD0qIqDId4m0l)
hikari:
# 池中维护的最小空闲连接数 默认10
minimum-idle: 5
# 池中最大连接数,包括闲置和使用中的连接 默认10
maximum-pool-size: 200
# 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟
max-lifetime: 600000
redis: redis:
database: 8 database: 8
......
package com.onsiteservice.dao.mapper.sys;
import com.onsiteservice.dao.common.Mapper;
import com.onsiteservice.entity.sys.SysUserRole;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SysUserRoleMapper extends Mapper<SysUserRole> {
List<Integer> getUserRoleByUserId(Integer id);
void deleteByUserId(Long id);
void insertUserRole(@Param("userId") Long userId, @Param("roleList") List<Integer> roleList);
}
\ No newline at end of file
...@@ -8,10 +8,13 @@ ...@@ -8,10 +8,13 @@
parent_code, parent_code,
icon, icon,
name, name,
vr_name,
vr_path path, vr_path path,
vr_component_path component vr_component_path component,
vr_redirect,
is_cache,
is_show
from sys_business from sys_business
where is_show = 1
order by show_order order by show_order
</select> </select>
<select id="getUserBusiness" resultType="com.onsiteservice.entity.sys.vo.MenuTreeVO"> <select id="getUserBusiness" resultType="com.onsiteservice.entity.sys.vo.MenuTreeVO">
...@@ -19,7 +22,7 @@ ...@@ -19,7 +22,7 @@
select t1.* select t1.*
from (select t1.* from (select t1.*
from sys_business t1 from sys_business t1
where t1.is_show = 1 where 1 = 1
and t1.id in (select c3.business_id and t1.id in (select c3.business_id
from sys_user c0 from sys_user c0
left join sys_user_role c1 on c0.id = c1.user_id left join sys_user_role c1 on c0.id = c1.user_id
......
<?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.onsiteservice.dao.mapper.sys.SysUserRoleMapper">
<select id="getUserRoleByUserId" parameterType="java.lang.Integer" resultType="java.lang.Integer">
select t1.role_id
from sys_user_role t1
where t1.user_id = #{userId}
</select>
<delete id="deleteByUserId" parameterType="java.lang.Long">
delete
from sys_user_role
where user_id = #{id}
</delete>
<insert id="insertUserRole">
insert into sys_user_role (user_id, role_id)
values
<foreach collection="roleList" item="item" separator=",">
(#{userId,jdbcType=INTEGER}, #{item,jdbcType=INTEGER})
</foreach>
</insert>
</mapper>
\ No newline at end of file
package com.onsiteservice.entity.sys;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@ToString
@ApiModel("用户角色表")
@Table(name = "sys_user_role")
public class SysUserRole implements Serializable {
/**
* 主键
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("主键")
private Long id;
/**
* 用户id
*/
@Column(name = "user_id")
@ApiModelProperty("用户id")
private Long userId;
/**
* 角色id
*/
@Column(name = "role_id")
@ApiModelProperty("角色id")
private Long roleId;
/**
* 创建时间
*/
@Column(name = "create_time")
@ApiModelProperty("创建时间")
private Date createTime;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
...@@ -6,10 +6,7 @@ import lombok.*; ...@@ -6,10 +6,7 @@ import lombok.*;
import java.util.List; import java.util.List;
/** /**
* @author 潘维吉 * 菜单树结构
* @date 2020/3/7 14:42
* @email 406798106@qq.com
* @description 菜单树结构
*/ */
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
...@@ -24,9 +21,12 @@ public class MenuTreeVO { ...@@ -24,9 +21,12 @@ public class MenuTreeVO {
private String parentCode; private String parentCode;
private String icon; private String icon;
private String name; private String name;
private String vrName;
private String path; private String path;
private String treePath; private String treePath;
private String component; private String component;
// private Boolean hideInMenu = false; private String vrRedirect;
private Boolean isCache;
private Boolean isShow;
private List<MenuTreeVO> children; private List<MenuTreeVO> children;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment