From 585725f0b64f30df6fca8481f5d2b788b505c50f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6?= <吴æ武慧娟> Date: Thu, 5 Dec 2019 17:22:12 +0800 Subject: [PATCH] msg memberrole --- .idea/workspace.xml | 601 ++---------------- cloudutil/pom.xml | 6 + .../bean/tall/dto/MemberRoleDto.java | 78 +++ .../cloudutil/bean/tall/dto/UserDto.java | 28 + .../ccsens/cloudutil/bean/tall/vo/UserVo.java | 20 + ht/src/main/resources/mbg.xml | 87 +++ .../com/ccsens/tall/bean/dto/UserDto.java | 5 + .../java/com/ccsens/tall/bean/po/SysUser.java | 11 + .../ccsens/tall/bean/po/SysUserExample.java | 60 ++ .../tall/persist/dao/ProMemberRoleDao.java | 4 + .../ccsens/tall/persist/dao/ProRoleDao.java | 10 + .../tall/persist/mapper/SysUserMapper.java | 3 +- .../tall/service/IProMemberRoleService.java | 20 + .../com/ccsens/tall/service/IUserService.java | 12 +- .../tall/service/ProMemberRoleService.java | 147 ++++- .../com/ccsens/tall/service/UserService.java | 30 + .../ccsens/tall/web/MemberRoleController.java | 45 ++ .../resources/mapper_dao/ProMemberRoleDao.xml | 15 + .../main/resources/mapper_dao/ProRoleDao.xml | 15 + .../resources/mapper_raw/SysUserMapper.xml | 25 +- tall/src/main/resources/mbg.xml | 85 +++ .../java/com/ccsens/util/WebConstant.java | 14 + 22 files changed, 767 insertions(+), 554 deletions(-) create mode 100644 cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/MemberRoleDto.java create mode 100644 cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/UserDto.java create mode 100644 cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/UserVo.java create mode 100644 ht/src/main/resources/mbg.xml create mode 100644 tall/src/main/java/com/ccsens/tall/web/MemberRoleController.java create mode 100644 tall/src/main/resources/mapper_dao/ProMemberRoleDao.xml create mode 100644 tall/src/main/resources/mbg.xml diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e0dde668..34ce9b99 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,549 +2,21 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -566,13 +45,17 @@ - + + + + + @@ -594,6 +77,31 @@ + + + + + + + + + + + diff --git a/cloudutil/pom.xml b/cloudutil/pom.xml index 3403de9e..dc13ee98 100644 --- a/cloudutil/pom.xml +++ b/cloudutil/pom.xml @@ -13,6 +13,12 @@ + + + util + com.ccsens + 1.0-SNAPSHOT + org.springframework.cloud diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/MemberRoleDto.java b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/MemberRoleDto.java new file mode 100644 index 00000000..094d1ad9 --- /dev/null +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/MemberRoleDto.java @@ -0,0 +1,78 @@ +package com.ccsens.cloudutil.bean.tall.dto; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.ccsens.util.CodeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.beans.BeanUtils; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @description: + * @author: wuHuiJuan + * @create: 2019/12/05 10:37 + */ +public class MemberRoleDto { + @ApiModel("MemberRoleDtoAssign") + @Data + public static class Assign{ + @ApiModelProperty("项目ID") + private Long projectId; + @ApiModelProperty("项目名称") + private String projectName; + @ApiModelProperty("角色") + private List roleNames; + @ApiModelProperty("用户ID") + @NotNull + private Long userId; + @ApiModelProperty("用户名") + @NotNull + private String name; + @ApiModelProperty("操作人ID") + @NotNull + private Long createBy; + + + public CodeEnum check(){ + //至少有一个条件 + boolean hasProject = (projectId == null || projectId == 0 ) && StrUtil.isBlank(projectName); + if (!hasProject) { + return CodeEnum.PARAM_ERROR; + } + return CodeEnum.SUCCESS; + } + } + + @ApiModel("MemberRoleDtoDelete") + @Data + public static class Delete{ + @ApiModelProperty("项目ID") + private Long projectId; + @ApiModelProperty("项目名称") + private String projectName; + @ApiModelProperty("角色") + private List roleNames; + @ApiModelProperty("用户ID") + @NotNull + private Long userId; + + public CodeEnum check(){ + //至少有一个条件 + boolean hasProject = (projectId == null || projectId == 0 ) && StrUtil.isBlank(projectName); + if (!hasProject) { + return CodeEnum.PARAM_ERROR; + } + return CodeEnum.SUCCESS; + } + + public Assign toAssign(){ + Assign assign = new Assign(); + BeanUtils.copyProperties(this, assign); + return assign; + } + } +} diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/UserDto.java b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/UserDto.java new file mode 100644 index 00000000..923f53e2 --- /dev/null +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/UserDto.java @@ -0,0 +1,28 @@ +package com.ccsens.cloudutil.bean.tall.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +/** + * @description: + * @author: wuHuiJuan + * @create: 2019/12/05 10:22 + */ +public class UserDto { + //默认注册 + @Data + @ApiModel("UserDtoDefaultUserSingup") + public static class DefaultUserSingup{ + @ApiModelProperty("手机号") + @NotEmpty(message = "手机号不能为空") + private String phone; + @ApiModelProperty("账号") + @NotEmpty(message = "账号不能为空.") + private String account; + @ApiModelProperty("来源") + private byte source; + } +} diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/UserVo.java b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/UserVo.java new file mode 100644 index 00000000..f3a154ff --- /dev/null +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/UserVo.java @@ -0,0 +1,20 @@ +package com.ccsens.cloudutil.bean.tall.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: wuHuiJuan + * @create: 2019/12/05 10:22 + */ +public class UserVo { + //默认注册 + @Data + @ApiModel("UserVoDefaultUserSingup") + public static class DefaultUserSingup{ + @ApiModelProperty("用户ID") + private Long id; + } +} diff --git a/ht/src/main/resources/mbg.xml b/ht/src/main/resources/mbg.xml new file mode 100644 index 00000000..c63c135a --- /dev/null +++ b/ht/src/main/resources/mbg.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
\ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/UserDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/UserDto.java index 93883338..37d8a91d 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/UserDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/UserDto.java @@ -1,5 +1,6 @@ package com.ccsens.tall.bean.dto; +import com.ccsens.util.WebConstant; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -92,5 +93,9 @@ public class UserDto { @NotEmpty(message = "密码不能为空") @Pattern(regexp="^[a-zA-Z0-9._-]{6,20}$",message="密码长度需在6~20之间,不能使用汉字,不能包含特殊字符") private String password; + @ApiModelProperty("来源 0:默认注册,1:HT病人注册") + private byte source = WebConstant.Regist.SOURCE; } + + } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/SysUser.java b/tall/src/main/java/com/ccsens/tall/bean/po/SysUser.java index 4f375fa0..50a79f73 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/SysUser.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/SysUser.java @@ -36,6 +36,8 @@ public class SysUser implements Serializable { private Byte recStatus; + private Byte source; + private static final long serialVersionUID = 1L; public Long getId() { @@ -166,6 +168,14 @@ public class SysUser implements Serializable { this.recStatus = recStatus; } + public Byte getSource() { + return source; + } + + public void setSource(Byte source) { + this.source = source; + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -188,6 +198,7 @@ public class SysUser implements Serializable { sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); sb.append(", recStatus=").append(recStatus); + sb.append(", source=").append(source); sb.append("]"); return sb.toString(); } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/SysUserExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/SysUserExample.java index eb360f07..3ebf54a4 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/SysUserExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/SysUserExample.java @@ -1154,6 +1154,66 @@ public class SysUserExample { addCriterion("rec_status not between", value1, value2, "recStatus"); return (Criteria) this; } + + public Criteria andSourceIsNull() { + addCriterion("source is null"); + return (Criteria) this; + } + + public Criteria andSourceIsNotNull() { + addCriterion("source is not null"); + return (Criteria) this; + } + + public Criteria andSourceEqualTo(Byte value) { + addCriterion("source =", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceNotEqualTo(Byte value) { + addCriterion("source <>", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceGreaterThan(Byte value) { + addCriterion("source >", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceGreaterThanOrEqualTo(Byte value) { + addCriterion("source >=", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceLessThan(Byte value) { + addCriterion("source <", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceLessThanOrEqualTo(Byte value) { + addCriterion("source <=", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceIn(List values) { + addCriterion("source in", values, "source"); + return (Criteria) this; + } + + public Criteria andSourceNotIn(List values) { + addCriterion("source not in", values, "source"); + return (Criteria) this; + } + + public Criteria andSourceBetween(Byte value1, Byte value2) { + addCriterion("source between", value1, value2, "source"); + return (Criteria) this; + } + + public Criteria andSourceNotBetween(Byte value1, Byte value2) { + addCriterion("source not between", value1, value2, "source"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberRoleDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberRoleDao.java index 62f4df9e..2bf4ed9d 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberRoleDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberRoleDao.java @@ -1,8 +1,12 @@ package com.ccsens.tall.persist.dao; +import com.ccsens.tall.bean.po.ProMemberRole; import com.ccsens.tall.persist.mapper.ProMemberRoleMapper; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface ProMemberRoleDao extends ProMemberRoleMapper{ + void insertBatch(List members); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java index a5597aeb..f24afd35 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java @@ -1,5 +1,6 @@ package com.ccsens.tall.persist.dao; +import com.ccsens.cloudutil.bean.tall.dto.MemberRoleDto; import com.ccsens.tall.bean.po.ProRole; import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.TaskVo; @@ -23,4 +24,13 @@ public interface ProRoleDao extends ProRoleMapper{ int selectPowerByRoleName(@Param("roleName") String roleName); List findAll(@Param("projectId") Long projectId); + + /** + * 根据 项目名称/ID和角色名称,查询所有符合条件的角色对象 + * @param assign + *@return: java.util.List + *@Author: wuHuiJuan + *@date: 2019/12/5 12:12 + */ + List selectByProjectAndName(MemberRoleDto.Assign assign); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/mapper/SysUserMapper.java b/tall/src/main/java/com/ccsens/tall/persist/mapper/SysUserMapper.java index 9e229d8d..3f97ad8d 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/mapper/SysUserMapper.java +++ b/tall/src/main/java/com/ccsens/tall/persist/mapper/SysUserMapper.java @@ -2,9 +2,8 @@ package com.ccsens.tall.persist.mapper; import com.ccsens.tall.bean.po.SysUser; import com.ccsens.tall.bean.po.SysUserExample; -import org.apache.ibatis.annotations.Param; - import java.util.List; +import org.apache.ibatis.annotations.Param; public interface SysUserMapper { long countByExample(SysUserExample example); diff --git a/tall/src/main/java/com/ccsens/tall/service/IProMemberRoleService.java b/tall/src/main/java/com/ccsens/tall/service/IProMemberRoleService.java index 4568df65..e54f8c11 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProMemberRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProMemberRoleService.java @@ -1,7 +1,27 @@ package com.ccsens.tall.service; +import com.ccsens.cloudutil.bean.tall.dto.MemberRoleDto; import com.ccsens.tall.bean.po.ProMemberRole; +import com.ccsens.util.CodeEnum; public interface IProMemberRoleService { void saveMemberRole(ProMemberRole memberRole); + + /** + *@Description: 为用户分配角色 + * @param assign + *@return: CodeEnum + *@Author: wuhuijuan + *@date: 2019/10/28 10:49 + */ + CodeEnum assignRoles(MemberRoleDto.Assign assign); + + /** + *@Description:删除用户角色 + * @param deleteDto + *@return: com.ccsens.ptpro.util.CodeEnum + *@Author: wuhuijuan + *@date: 2019/10/28 11:53 + */ + CodeEnum deleteRole(MemberRoleDto.Delete deleteDto); } diff --git a/tall/src/main/java/com/ccsens/tall/service/IUserService.java b/tall/src/main/java/com/ccsens/tall/service/IUserService.java index 3b7ba23e..c1d71bfe 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IUserService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IUserService.java @@ -28,7 +28,7 @@ public interface IUserService { String bindingPhone(Long currentUserId, String phone, String code)throws Exception; - String getPhone(Long userId)throws Exception; + String getPhone(Long userId); void updatePhone(Long currentUserId, UserDto.UpdatePhone updatePhone) throws Exception; @@ -48,4 +48,14 @@ public interface IUserService { //访问用户管理微服务========================================================================== // UserVo.TokenBean userManageSignin(UserDto.UserSginin dto)throws Exception; + + //默认注册 + /** + *@Description: 注冊用戶,若用戶手机号存在,则默认用户已注册,不做任何操作;若账号重复,则再名字后面添加_1(递增,直到不重复) + * @param signup + *@return: long + *@Author: wuhuijuan + *@date: 2019/10/29 14:43 + */ + long defaultRegisterUser(com.ccsens.cloudutil.bean.tall.dto.UserDto.DefaultUserSingup signup); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProMemberRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProMemberRoleService.java index 86c66d29..61efb175 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProMemberRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProMemberRoleService.java @@ -1,19 +1,162 @@ package com.ccsens.tall.service; -import com.ccsens.tall.bean.po.ProMemberRole; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.StrUtil; +import com.ccsens.cloudutil.bean.tall.dto.MemberRoleDto; +import com.ccsens.tall.bean.po.*; +import com.ccsens.tall.bean.vo.MemberVo; +import com.ccsens.tall.persist.dao.ProMemberDao; import com.ccsens.tall.persist.dao.ProMemberRoleDao; +import com.ccsens.tall.persist.dao.ProRoleDao; +import com.ccsens.tall.persist.dao.SysProjectDao; +import com.ccsens.util.CodeEnum; +import com.ccsens.util.WebConstant; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.List; + +@Slf4j @Service -@Transactional(propagation = Propagation.REQUIRED) +@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public class ProMemberRoleService implements IProMemberRoleService{ @Autowired private ProMemberRoleDao proMemberRoleDao; + @Autowired + private ProRoleDao proRoleDao; + @Autowired + private IUserService userService; + @Autowired + private SysProjectDao sysProjectDao; + @Autowired + private ProMemberDao proMemberDao; + @Autowired + private Snowflake snowflake; + @Override public void saveMemberRole(ProMemberRole memberRole) { proMemberRoleDao.insertSelective(memberRole); } + + @Override + public CodeEnum assignRoles(MemberRoleDto.Assign assign) { + log.info("分配角色参数:{}", assign); + CodeEnum check = assign.check(); + + if (check != CodeEnum.SUCCESS) { + log.info("没有填入项目信息"); + return check; + } + Long projectId = getaProjectId(assign.getProjectId(), assign.getProjectName()); + //查询项目下的角色信息 + assign.setProjectId(projectId); + List roles = proRoleDao.selectByProjectAndName(assign); + log.info("角色信息:{}", roles); + if (CollectionUtil.isEmpty(roles)) { + return CodeEnum.ROLE_NOT_FOUND; + } + + //查找用户手机号 + String mobile = userService.getPhone(assign.getUserId()); + if (StrUtil.isEmpty(mobile)) { + log.info("没有找到{}的手机号", assign.getUserId()); + return CodeEnum.PARAM_ERROR; + } + log.info("{}对应的手机号:{}", assign.getUserId(), mobile); + + + + //查询项目下是否有用户 + MemberVo.MemberInfo memberInfo = proMemberDao.selectByProjectIdAndUserId(projectId, assign.getUserId()); + final Long memberId; + if (memberInfo != null) { + memberId = memberInfo.getId(); + } else { + log.info("添加用户"); + ProMember proMember = new ProMember(); + proMember.setId(snowflake.nextId()); + proMember.setProjectId(projectId); + proMember.setNickname(assign.getName()); + proMember.setPhone(mobile); + proMember.setJoinTime(System.currentTimeMillis()); + proMemberDao.insertSelective(proMember); + memberId = proMember.getId(); + } + + //封装members对象 + List memberRoles = new ArrayList<>(); + roles.forEach(role -> { + //判断是否已为用户分配角色 + ProMemberRoleExample example = new ProMemberRoleExample(); + example.createCriteria().andMemberIdEqualTo(memberId).andRoleIdEqualTo(role.getId()); + List proMemberRoles = proMemberRoleDao.selectByExample(example); + if (CollectionUtil.isEmpty(proMemberRoles)) { + ProMemberRole memberRole = new ProMemberRole(); + memberRole.setId(snowflake.nextId()); + memberRole.setMemberId(memberId); + memberRole.setRoleId(role.getId()); + memberRoles.add(memberRole); + } + }); + if (CollectionUtil.isNotEmpty(memberRoles)) { + log.info("批量添加用户角色"); + proMemberRoleDao.insertBatch(memberRoles); + } + return CodeEnum.SUCCESS; + } + + /** + * 获取项目ID + * @param projectId + * @param projectName + * @return + */ + private Long getaProjectId(Long projectId, String projectName) { + Long id = projectId; + if (id == null || id == 0) { + SysProjectExample projectExample = new SysProjectExample(); + projectExample.createCriteria().andNameEqualTo(projectName); + List sysProjects = sysProjectDao.selectByExample(projectExample); + if (CollectionUtil.isEmpty(sysProjects)) { + log.info("未找到项目:{}", projectName); + return null; + } + id = sysProjects.get(0).getId(); + } + return id; + } + + @Override + public CodeEnum deleteRole(MemberRoleDto.Delete deleteDto) { + //查询项目下的角色信息 + List roles = proRoleDao.selectByProjectAndName(deleteDto.toAssign()); + log.info("角色信息:{}", roles); + if (CollectionUtil.isEmpty(roles)) { + return CodeEnum.ROLE_NOT_FOUND; + } + List roleIds = new ArrayList<>(); + roles.forEach(role -> { + roleIds.add(role.getId()); + }); + + //获取项目ID + Long projectId = getaProjectId(deleteDto.getProjectId(), deleteDto.getProjectName()); + log.info("项目ID:{}", projectId); + if (projectId == null) { + return CodeEnum.PARAM_ERROR; + } + //查询项目下是否有用户 + MemberVo.MemberInfo memberInfo = proMemberDao.selectByProjectIdAndUserId(projectId, deleteDto.getUserId()); + ProMemberRoleExample whereExample = new ProMemberRoleExample(); + whereExample.createCriteria().andMemberIdEqualTo(memberInfo.getId()).andRoleIdIn(roleIds); + ProMemberRole role = new ProMemberRole(); + role.setRecStatus(WebConstant.STATUS_DELETE); + proMemberRoleDao.updateByExampleSelective(role, whereExample); + return CodeEnum.SUCCESS; + } } diff --git a/tall/src/main/java/com/ccsens/tall/service/UserService.java b/tall/src/main/java/com/ccsens/tall/service/UserService.java index 2f249e26..fdc35350 100644 --- a/tall/src/main/java/com/ccsens/tall/service/UserService.java +++ b/tall/src/main/java/com/ccsens/tall/service/UserService.java @@ -348,6 +348,7 @@ public class UserService implements IUserService { SysUser user = new SysUser(); user.setId(snowflake.nextId()); user.setPhone(userSignup.getPhone()); + user.setSource(userSignup.getSource()); userDao.insertSelective(user); SysAuth accountAuth = new SysAuth(); @@ -648,4 +649,33 @@ public class UserService implements IUserService { // tokenBean = tokenBeanJsonResponse.getData(); // return tokenBean; // } + + @Override + public long defaultRegisterUser(com.ccsens.cloudutil.bean.tall.dto.UserDto.DefaultUserSingup signup) { + log.info("默认注册信息:{}", signup); + //检查手机号是否已被注册 + SysAuthExample authExample = new SysAuthExample(); + authExample.createCriteria() + .andIdentifierEqualTo(signup.getPhone()) + .andIdentifyTypeEqualTo((byte) WebConstant.IDENTIFY_TYPE.Phone.value); + List authList = authDao.selectByExample(authExample); + if (CollectionUtil.isNotEmpty(authList)) { + log.info("用户已存在,直接返回user"); + return userDao.selectByPrimaryKey(authList.get(0).getUserId()).getId(); + } +// int i = 0; +// 用户已存在 = true +// boolean userExist = userService.findAccount(signup.getAccount()); +// while (userExist) { +// userExist = userService.findAccount(signup.getAccount() + "_" + (++i)); +// } + UserDto.UserSignup up = new UserDto.UserSignup(); + up.setAccount(signup.getAccount()); + up.setPassword(WebConstant.Regist.PASSWORD); + up.setPhone(signup.getPhone()); + up.setSource(signup.getSource()); + + UserVo.UserSign userSign = saveAuth(up); + return userSign.getUserId(); + } } diff --git a/tall/src/main/java/com/ccsens/tall/web/MemberRoleController.java b/tall/src/main/java/com/ccsens/tall/web/MemberRoleController.java new file mode 100644 index 00000000..bab364ff --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/web/MemberRoleController.java @@ -0,0 +1,45 @@ +package com.ccsens.tall.web; + +import com.ccsens.cloudutil.bean.tall.vo.UserVo; +import com.ccsens.tall.bean.dto.UserDto; +import com.ccsens.tall.service.IProMemberRoleService; +import com.ccsens.tall.service.IUserService; +import com.ccsens.util.JsonResponse; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * @description: + * @author: wuHuiJuan + * @create: 2019/12/05 10:17 + */ +@Slf4j +@Api(tags = "用户角色相关操作API" , description = "MemberRoleController | 项目中用户角色添加/删除") +@RestController +public class MemberRoleController { + + @Autowired + private IProMemberRoleService memberRoleService; + @Autowired + private IUserService userService; + + @ApiOperation(value = "默认注册",notes = "默认帮助用户注册") + @RequestMapping("defaultRegister") + public JsonResponse defaultRegister(@Validated @RequestBody com.ccsens.cloudutil.bean.tall.dto.UserDto.DefaultUserSingup signup) { + + long userId = userService.defaultRegisterUser(signup); + UserVo.DefaultUserSingup upVo = new UserVo.DefaultUserSingup(); + upVo.setId(userId); + return JsonResponse.newInstance().ok(upVo); + } +} diff --git a/tall/src/main/resources/mapper_dao/ProMemberRoleDao.xml b/tall/src/main/resources/mapper_dao/ProMemberRoleDao.xml new file mode 100644 index 00000000..a7603b3f --- /dev/null +++ b/tall/src/main/resources/mapper_dao/ProMemberRoleDao.xml @@ -0,0 +1,15 @@ + + + + + + insert into t_pro_member_role (id, member_id, role_id, + created_at, updated_at, rec_status + ) values + + (#{item.id,jdbcType=BIGINT}, #{item.memberId,jdbcType=BIGINT}, #{item.roleId,jdbcType=BIGINT}, now(), now(), 0) + + + + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/ProRoleDao.xml b/tall/src/main/resources/mapper_dao/ProRoleDao.xml index 84f49d7f..97c2cbda 100644 --- a/tall/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/tall/src/main/resources/mapper_dao/ProRoleDao.xml @@ -126,4 +126,19 @@ r.name not IN ('全体成员','观众','MVP') + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_raw/SysUserMapper.xml b/tall/src/main/resources/mapper_raw/SysUserMapper.xml index b1989433..b7af65dc 100644 --- a/tall/src/main/resources/mapper_raw/SysUserMapper.xml +++ b/tall/src/main/resources/mapper_raw/SysUserMapper.xml @@ -18,6 +18,7 @@ + @@ -79,7 +80,7 @@ id, grade_id, avatar_url, nickname, gender, country, province, city, language, phone, - wechat, email, balance, created_at, updated_at, rec_status + wechat, email, balance, created_at, updated_at, rec_status, source @@ -285,6 +292,9 @@ rec_status = #{record.recStatus,jdbcType=TINYINT}, + + source = #{record.source,jdbcType=TINYINT}, + @@ -307,7 +317,8 @@ balance = #{record.balance,jdbcType=BIGINT}, created_at = #{record.createdAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, - rec_status = #{record.recStatus,jdbcType=TINYINT} + rec_status = #{record.recStatus,jdbcType=TINYINT}, + source = #{record.source,jdbcType=TINYINT} @@ -360,6 +371,9 @@ rec_status = #{recStatus,jdbcType=TINYINT}, + + source = #{source,jdbcType=TINYINT}, + where id = #{id,jdbcType=BIGINT} @@ -379,7 +393,8 @@ balance = #{balance,jdbcType=BIGINT}, created_at = #{createdAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP}, - rec_status = #{recStatus,jdbcType=TINYINT} + rec_status = #{recStatus,jdbcType=TINYINT}, + source = #{source,jdbcType=TINYINT} where id = #{id,jdbcType=BIGINT} \ No newline at end of file diff --git a/tall/src/main/resources/mbg.xml b/tall/src/main/resources/mbg.xml new file mode 100644 index 00000000..e7921501 --- /dev/null +++ b/tall/src/main/resources/mbg.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
\ No newline at end of file diff --git a/util/src/main/java/com/ccsens/util/WebConstant.java b/util/src/main/java/com/ccsens/util/WebConstant.java index b39bf8f2..1eed564d 100644 --- a/util/src/main/java/com/ccsens/util/WebConstant.java +++ b/util/src/main/java/com/ccsens/util/WebConstant.java @@ -7,6 +7,20 @@ import lombok.Getter; import java.io.File; public class WebConstant { + + + /**数据存在*/ + public static final byte STATUS_EXIT = 0; + /**数据已删除*/ + public static final byte STATUS_DELETE = 1; + + /**注册来源*/ + public static final class Regist { + public final static byte SOURCE = 0; + public final static byte SOURCE_HT = 1; + public final static String PASSWORD = "123456"; + } + public enum APP_SCENE { BTPRO(0,"btpro"), MTPRO(1,"mtpro"),PTPRO(2,"ptpro");