diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/controller/SysUserController.java b/src/main/java/com/coscoshipping/ebtp/project/user/controller/SysUserController.java new file mode 100644 index 0000000..4ac7d2e --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/controller/SysUserController.java @@ -0,0 +1,123 @@ +package com.coscoshipping.ebtp.project.user.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.coscoshipping.ebtp.project.user.entity.vo.SysUserVO; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; +import com.coscoshipping.ebtp.project.user.entity.SysUser; +import com.coscoshipping.ebtp.project.user.service.SysUserService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; + +@RestController +@Api(value = "门户用户表") +@RequestMapping("/v1/sysuser") +public class SysUserController{ + + @Resource + private SysUserService iSysUserService; + + /** + * 插入新数据 + * + * @param sysUser + * + * @return + */ + @ApiOperation("插入新数据") + @PostMapping("/insert") + public BaseResponse insert(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid SysUserVO sysUser){ + + Boolean i = iSysUserService.insertByVo(sysUser); + + return BaseResponse.success(i); + } + + /** + * 修改数据 + * + * @param sysUser + * + * @return + */ + @ApiOperation("修改数据") + @PostMapping("/update") + public BaseResponse update(@ApiParam(value = "对象数据", required = true) @RequestBody SysUser sysUser){ + + Boolean i = iSysUserService.updateById(sysUser); + + return BaseResponse.success(i); + } + + /** + * 查询数据 + * + * @param id + * + * @return + */ + @ApiOperation("根据id查询数据") + @GetMapping("/{id}") + public BaseResponse get(@ApiParam(value = "主键id", required = true) @PathVariable String id){ + + SysUser sysUser = iSysUserService.getById(id); + + return BaseResponse.success(sysUser); + } + + /** + * 删除数据 + * @param id 主键id + * @return BaseResponse + * @author dino + * @date 2020/10/21 14:56 + */ + @ApiOperation(value = "delete",notes = "删除数据") + @GetMapping("/del/{id}") + public BaseResponse delete(@ApiParam(value = "主键id", required = true) @PathVariable Long id) { + Boolean i = iSysUserService.removeById(id); + return BaseResponse.success(i); + } + + /** + * 查询数据 + * + * @param param + * @return + */ + @ApiOperation("查询列表数据") + @GetMapping("/list") + public BaseResponse> list(@ApiParam(value = "查询对象数据", required = false) SysUser param) { + //查询 + LambdaQueryWrapper query = Wrappers.lambdaQuery(param); + List list = iSysUserService.list(query); + //异常处理 + //RespsExceptionEnum.FRAME_EXCEPTION_DEMO_NOT_FIND.customValid(list.isEmpty()); + return BaseResponse.success(list); + } + + /** + * 查询分页数据 + * + * @param sysUserVO 分页信息 + * + * @return 返回结果 + */ + @ApiOperation("查询分页数据") + @PostMapping("/getPage") + public BaseResponse> getPage(@ApiParam(value = "对象数据", required = true) @RequestBody SysUserVO sysUserVO){ + + return BaseResponse.success(iSysUserService.getPage(sysUserVO)); + } +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/dao/SysUserMapper.java b/src/main/java/com/coscoshipping/ebtp/project/user/dao/SysUserMapper.java new file mode 100644 index 0000000..4097d4d --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/dao/SysUserMapper.java @@ -0,0 +1,11 @@ +package com.coscoshipping.ebtp.project.user.dao; + + +import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper; +import java.util.List; +import org.springframework.stereotype.Repository; +import com.coscoshipping.ebtp.project.user.entity.SysUser; + +@Repository +public interface SysUserMapper extends IBaseMapper { +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysUserMapper.xml b/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysUserMapper.xml new file mode 100644 index 0000000..3e8688e --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysUserMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + update sys_user + set + delete_flag="1" + where ID=#{id } + + \ No newline at end of file diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/entity/SysUser.java b/src/main/java/com/coscoshipping/ebtp/project/user/entity/SysUser.java new file mode 100644 index 0000000..c81557b --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/entity/SysUser.java @@ -0,0 +1,73 @@ +package com.coscoshipping.ebtp.project.user.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** +* 实体类 SysUser-门户用户表 +* +* @author yss +*/ +@Data +@Accessors(chain = true) +@TableName(value = "sys_user", autoResultMap = true) +@ApiModel(value = "SysUser对象", description = "门户用户表") +public class SysUser extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + + @TableId + @ApiModelProperty(value = "用户id") + private String userId; + + @ApiModelProperty(value = "密码") + private String password; + + @ApiModelProperty(value = "中文姓名") + private String name; + + @ApiModelProperty(value = "一般情况下,等于name字段值,如部门内有重名的情况,可以以特殊名称标明,例如:张明(大),张明(小)等") + private String displayName; + + @ApiModelProperty(value = "portal的实际id,不一定为统一邮件前缀") + private String portalId; + + @ApiModelProperty(value = "状态") + private Integer status; + + @ApiModelProperty(value = "HR员工编码(非正式用户无该信息)") + private String employeeNumber; + + @ApiModelProperty(value = "用户办公电话") + private String officePhone; + + @ApiModelProperty(value = "手机号码(用于接收短信提醒)等") + private String mobile; + + @ApiModelProperty(value = "统一邮件") + private String email; + + @ApiModelProperty(value = "性别") + private String sex; + + @ApiModelProperty(value = "部门机构ID") + private String orgId; + + @ApiModelProperty(value = "部门机构名称") + private String orgName; + + @ApiModelProperty(value = "岗位") + private String position; + + + + +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/entity/vo/SysUserVO.java b/src/main/java/com/coscoshipping/ebtp/project/user/entity/vo/SysUserVO.java new file mode 100644 index 0000000..841e478 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/entity/vo/SysUserVO.java @@ -0,0 +1,30 @@ +package com.coscoshipping.ebtp.project.user.entity.vo; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest; +import com.coscoshipping.ebtp.project.user.entity.SysUser; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** +* 实体类 SysUser-门户用户表 +* +* @author yss +*/ +@Data +@Accessors(chain = true) +@TableName(autoResultMap = true) +@ApiModel("用户信息VO类") +public class SysUserVO extends SysUser implements Serializable { + /** + * 分页数据 + */ + @ApiModelProperty(value = "分页对象信息") + private BasePageRequest basePageRequest; +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/service/SysUserService.java b/src/main/java/com/coscoshipping/ebtp/project/user/service/SysUserService.java new file mode 100644 index 0000000..b3dc991 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/service/SysUserService.java @@ -0,0 +1,37 @@ +package com.coscoshipping.ebtp.project.user.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.chinaunicom.mall.ebtp.common.base.service.IBaseService; +import com.coscoshipping.ebtp.project.user.entity.SysUser; +import com.coscoshipping.ebtp.project.user.entity.vo.SysUserVO; + +/** + * 对数据表 sys_user 操作的 service + * @author yss + * + */ +public interface SysUserService extends IBaseService{ + + /** + * 角色分页 + * @param sysUserVO 标段信息 + * @return 返回结果 + */ + IPage getPage(SysUserVO sysUserVO); + + + Boolean insertByVo(SysUserVO vo); + + + Boolean updateByVo(SysUserVO vo); + /** + * 通过角色ID删除角色 + * + * @param roleId 角色ID + * @return 结果 + */ + Boolean deleteUserById(String roleId); + + +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/service/impl/SysUserServiceImpl.java b/src/main/java/com/coscoshipping/ebtp/project/user/service/impl/SysUserServiceImpl.java new file mode 100644 index 0000000..3b3b745 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/service/impl/SysUserServiceImpl.java @@ -0,0 +1,94 @@ +package com.coscoshipping.ebtp.project.user.service.impl; + + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest; +import com.coscoshipping.ebtp.project.role.entity.SysRoleMenu; +import com.coscoshipping.ebtp.project.user.entity.vo.SysUserVO; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; +import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; +import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; +import com.coscoshipping.ebtp.project.user.dao.SysUserMapper; +import com.coscoshipping.ebtp.project.user.entity.SysUser; +import com.coscoshipping.ebtp.project.user.service.SysUserService; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 对数据表 sys_user 操作的 serviceImpl + * @author yss + * + */ +@Service +public class SysUserServiceImpl extends BaseServiceImpl implements SysUserService { + + @Override + public IPage getPage(SysUserVO sysUserVO) { + + LambdaQueryWrapper query = buildQueryWrapper(sysUserVO); + + if(null == sysUserVO.getBasePageRequest()){ + sysUserVO.setBasePageRequest(new BasePageRequest()); + } + //查询 + IPage result = new Page<>(sysUserVO.getBasePageRequest().getPageNo(), sysUserVO.getBasePageRequest().getPageSize()); + result = this.page(result, query); + return result; + } + + @Override + public Boolean insertByVo(SysUserVO vo) { + vo.setUserId(PropertyUtils.getSnowflakeId()).setCreateDate(LocalDateTime.now()); +// SysUser add = BeanUtil.toBean(VO, SysUser.class); + validEntityBeforeSave(vo,false); + boolean flag = baseMapper.insert(vo) > 0; + return flag; + } + + @Override + public Boolean updateByVo(SysUserVO vo) { +// SysUser update = BeanUtil.toBean(vo, SysUser.class); + validEntityBeforeSave(vo,true); + boolean flag = baseMapper.updateById(vo) > 0; + return flag; + } + + @Override + public Boolean deleteUserById(String userId) { + return this.removeById(userId); + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysUser entity,boolean isUpdate){ + //TODO 做一些数据校验,如唯一约束 + } + + private LambdaQueryWrapper buildQueryWrapper(SysUserVO vo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(vo.getUserId()), SysUser::getUserId , vo.getUserId()); + lqw.like(StringUtils.isNotBlank(vo.getName()), SysUser::getName, vo.getName()); + lqw.eq(StringUtils.isNotBlank(vo.getPortalId()), SysUser::getPortalId, vo.getPortalId()); + lqw.like(StringUtils.isNotBlank(vo.getDisplayName()), SysUser::getDisplayName, vo.getDisplayName()); + lqw.like(StringUtils.isNotBlank(vo.getMobile()), SysUser::getMobile, vo.getMobile()); + lqw.eq(StringUtils.isNotBlank(vo.getEmployeeNumber()), SysUser::getEmployeeNumber, vo.getEmployeeNumber()); + lqw.eq(StringUtils.isNotBlank(vo.getOfficePhone()), SysUser::getOfficePhone, vo.getOfficePhone()); + lqw.like(StringUtils.isNotBlank(vo.getEmail()), SysUser::getEmail, vo.getEmail()); + lqw.eq(StringUtils.isNotBlank(vo.getSex()), SysUser::getSex, vo.getSex()); + lqw.eq(StringUtils.isNotBlank(vo.getOrgId()), SysUser::getOrgId, vo.getOrgId()); + lqw.like(StringUtils.isNotBlank(vo.getOrgName()), SysUser::getOrgName, vo.getOrgName()); + lqw.like(StringUtils.isNotBlank(vo.getPosition()), SysUser::getPosition, vo.getPosition()); + lqw.eq(vo.getCreateBy() != null, SysUser::getCreateBy, vo.getCreateBy()); + lqw.eq(vo.getUpdateBy() != null, SysUser::getUpdateBy, vo.getUpdateBy()); + lqw.orderByDesc(SysUser::getCreateDate); + return lqw; + } +}