Browse Source

Merge branch 'master' of gitee.com:ccsens_s/ccsenscloud

master
zhangye 6 years ago
parent
commit
8ff199f109
  1. 1
      .gitignore
  2. 6
      cloudutil/pom.xml
  3. 78
      cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/MemberRoleDto.java
  4. 28
      cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/UserDto.java
  5. 20
      cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/UserVo.java
  6. 87
      ht/src/main/resources/mbg.xml
  7. 5
      tall/src/main/java/com/ccsens/tall/bean/dto/UserDto.java
  8. 11
      tall/src/main/java/com/ccsens/tall/bean/po/SysUser.java
  9. 60
      tall/src/main/java/com/ccsens/tall/bean/po/SysUserExample.java
  10. 4
      tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberRoleDao.java
  11. 10
      tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java
  12. 3
      tall/src/main/java/com/ccsens/tall/persist/mapper/SysUserMapper.java
  13. 20
      tall/src/main/java/com/ccsens/tall/service/IProMemberRoleService.java
  14. 12
      tall/src/main/java/com/ccsens/tall/service/IUserService.java
  15. 144
      tall/src/main/java/com/ccsens/tall/service/ProMemberRoleService.java
  16. 30
      tall/src/main/java/com/ccsens/tall/service/UserService.java
  17. 45
      tall/src/main/java/com/ccsens/tall/web/MemberRoleController.java
  18. 15
      tall/src/main/resources/mapper_dao/ProMemberRoleDao.xml
  19. 15
      tall/src/main/resources/mapper_dao/ProRoleDao.xml
  20. 25
      tall/src/main/resources/mapper_raw/SysUserMapper.xml
  21. 85
      tall/src/main/resources/mbg.xml
  22. 14
      util/src/main/java/com/ccsens/util/WebConstant.java

1
.gitignore

@ -6,6 +6,7 @@ target/
target/* target/*
# IntelliJ project files # IntelliJ project files
.idea .idea
.idea/
.idea/* .idea/*
*.iml *.iml
out out

6
cloudutil/pom.xml

@ -13,6 +13,12 @@
<dependencies> <dependencies>
<!--util-->
<dependency>
<artifactId>util</artifactId>
<groupId>com.ccsens</groupId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--eureka client--> <!--eureka client-->
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>

78
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<String> 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<String> 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;
}
}
}

28
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;
}
}

20
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;
}
}

87
ht/src/main/resources/mbg.xml

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="MySQL" targetRuntime="MyBatis3">
<!-- 为生成的Java模型创建一个toString方法 -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>
<!-- 自定义的序列化 类文件 插件 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
<!-- 重新生成xml文件,而不是追加 -->
<plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://49.233.89.188:3306/ht?useUnicode=true&amp;characterEncoding=UTF-8&amp;tinyInt1isBit=false"
userId="root"
password="po3OynBO[M3579p6L7)o">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="true" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.ccsens.ht.bean.po"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="mapper_raw"
targetProject=".\src\main\resources">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.ccsens.ht.persist.mapper"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!--<table tableName="t_ht_doctor" domainObjectName="HtDoctor"></table>
<table tableName="t_ht_doctor_audit" domainObjectName="HtDoctorAudit"></table>
<table tableName="t_ht_opretion_log" domainObjectName="HtOperationLog"></table>
<table tableName="t_ht_patient" domainObjectName="HtPatient"></table>
<table tableName="t_ht_patient_acp" domainObjectName="HtPatientAcp"></table>
<table tableName="t_ht_patient_body" domainObjectName="HtPatientBody"></table>
<table tableName="t_ht_patient_family" domainObjectName="HtPatientFamily"></table>
<table tableName="t_ht_patient_family_illness" domainObjectName="HtPatientFamilyIllness"></table>
<table tableName="t_ht_patient_follow_up" domainObjectName="HtPatientFollowUp"></table>
<table tableName="t_ht_patient_illness_history" domainObjectName="HtPatientIllnessHistory"></table>
<table tableName="t_ht_patient_parent_illness" domainObjectName="HtPatientParentIllness"></table>
<table tableName="t_ht_patient_persional" domainObjectName="HtPatientPersional"></table>
<table tableName="t_ht_patient_question_record" domainObjectName="HtPatientQuestionRecord"></table>
<table tableName="t_ht_patient_report" domainObjectName="HtPatientReport"></table>
<table tableName="t_ht_patient_score" domainObjectName="HtPatientScore"></table>
<table tableName="t_ht_position" domainObjectName="HtPosition"></table>
<table tableName="t_ht_question" domainObjectName="HtQuestion"></table>
<table tableName="t_ht_question_introducer" domainObjectName="HtQuestionIntroducer"></table>
<table tableName="t_ht_question_option" domainObjectName="HtQuestionOption"></table>
<table tableName="t_ht_question_scoring_rule" domainObjectName="HtQuestionScoringRule"></table>
<table tableName="t_ht_relation" domainObjectName="HtRelation"></table>
<table tableName="t_ht_report" domainObjectName="HtReport"></table>
<table tableName="t_ht_title" domainObjectName="HtTitle"></table>-->
<table tableName="t_ht_patient_report_record" domainObjectName="HtPatientReportRecord"></table>
<!-- 有些表的字段需要指定java类型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>

5
tall/src/main/java/com/ccsens/tall/bean/dto/UserDto.java

@ -1,5 +1,6 @@
package com.ccsens.tall.bean.dto; package com.ccsens.tall.bean.dto;
import com.ccsens.util.WebConstant;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -92,5 +93,9 @@ public class UserDto {
@NotEmpty(message = "密码不能为空") @NotEmpty(message = "密码不能为空")
@Pattern(regexp="^[a-zA-Z0-9._-]{6,20}$",message="密码长度需在6~20之间,不能使用汉字,不能包含特殊字符") @Pattern(regexp="^[a-zA-Z0-9._-]{6,20}$",message="密码长度需在6~20之间,不能使用汉字,不能包含特殊字符")
private String password; private String password;
@ApiModelProperty("来源 0:默认注册,1:HT病人注册")
private byte source = WebConstant.Regist.SOURCE;
} }
} }

11
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 recStatus;
private Byte source;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
@ -166,6 +168,14 @@ public class SysUser implements Serializable {
this.recStatus = recStatus; this.recStatus = recStatus;
} }
public Byte getSource() {
return source;
}
public void setSource(Byte source) {
this.source = source;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -188,6 +198,7 @@ public class SysUser implements Serializable {
sb.append(", createdAt=").append(createdAt); sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt); sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus); sb.append(", recStatus=").append(recStatus);
sb.append(", source=").append(source);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();
} }

60
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"); addCriterion("rec_status not between", value1, value2, "recStatus");
return (Criteria) this; 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<Byte> values) {
addCriterion("source in", values, "source");
return (Criteria) this;
}
public Criteria andSourceNotIn(List<Byte> 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 { public static class Criteria extends GeneratedCriteria {

4
tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberRoleDao.java

@ -1,8 +1,12 @@
package com.ccsens.tall.persist.dao; package com.ccsens.tall.persist.dao;
import com.ccsens.tall.bean.po.ProMemberRole;
import com.ccsens.tall.persist.mapper.ProMemberRoleMapper; import com.ccsens.tall.persist.mapper.ProMemberRoleMapper;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
@Repository @Repository
public interface ProMemberRoleDao extends ProMemberRoleMapper{ public interface ProMemberRoleDao extends ProMemberRoleMapper{
void insertBatch(List<ProMemberRole> members);
} }

10
tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java

@ -1,5 +1,6 @@
package com.ccsens.tall.persist.dao; 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.po.ProRole;
import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.ProjectVo;
import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.bean.vo.TaskVo;
@ -23,4 +24,13 @@ public interface ProRoleDao extends ProRoleMapper{
int selectPowerByRoleName(@Param("roleName") String roleName); int selectPowerByRoleName(@Param("roleName") String roleName);
List<TaskVo.RoleCheckList> findAll(@Param("projectId") Long projectId); List<TaskVo.RoleCheckList> findAll(@Param("projectId") Long projectId);
/**
* 根据 项目名称/ID和角色名称查询所有符合条件的角色对象
* @param assign
*@return: java.util.List<com.ccsens.tall.bean.po.ProRole>
*@Author: wuHuiJuan
*@date: 2019/12/5 12:12
*/
List<ProRole> selectByProjectAndName(MemberRoleDto.Assign assign);
} }

3
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.SysUser;
import com.ccsens.tall.bean.po.SysUserExample; import com.ccsens.tall.bean.po.SysUserExample;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface SysUserMapper { public interface SysUserMapper {
long countByExample(SysUserExample example); long countByExample(SysUserExample example);

20
tall/src/main/java/com/ccsens/tall/service/IProMemberRoleService.java

@ -1,7 +1,27 @@
package com.ccsens.tall.service; package com.ccsens.tall.service;
import com.ccsens.cloudutil.bean.tall.dto.MemberRoleDto;
import com.ccsens.tall.bean.po.ProMemberRole; import com.ccsens.tall.bean.po.ProMemberRole;
import com.ccsens.util.CodeEnum;
public interface IProMemberRoleService { public interface IProMemberRoleService {
void saveMemberRole(ProMemberRole memberRole); 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);
} }

12
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 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; void updatePhone(Long currentUserId, UserDto.UpdatePhone updatePhone) throws Exception;
@ -48,4 +48,14 @@ public interface IUserService {
//访问用户管理微服务========================================================================== //访问用户管理微服务==========================================================================
// UserVo.TokenBean userManageSignin(UserDto.UserSginin dto)throws Exception; // 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);
} }

144
tall/src/main/java/com/ccsens/tall/service/ProMemberRoleService.java

@ -1,21 +1,163 @@
package com.ccsens.tall.service; 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.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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@Slf4j @Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ProMemberRoleService implements IProMemberRoleService{ public class ProMemberRoleService implements IProMemberRoleService{
@Autowired @Autowired
private ProMemberRoleDao proMemberRoleDao; private ProMemberRoleDao proMemberRoleDao;
@Autowired
private ProRoleDao proRoleDao;
@Autowired
private IUserService userService;
@Autowired
private SysProjectDao sysProjectDao;
@Autowired
private ProMemberDao proMemberDao;
@Autowired
private Snowflake snowflake;
@Override @Override
public void saveMemberRole(ProMemberRole memberRole) { public void saveMemberRole(ProMemberRole memberRole) {
proMemberRoleDao.insertSelective(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<ProRole> 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<ProMemberRole> memberRoles = new ArrayList<>();
roles.forEach(role -> {
//判断是否已为用户分配角色
ProMemberRoleExample example = new ProMemberRoleExample();
example.createCriteria().andMemberIdEqualTo(memberId).andRoleIdEqualTo(role.getId());
List<ProMemberRole> 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<SysProject> 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<ProRole> roles = proRoleDao.selectByProjectAndName(deleteDto.toAssign());
log.info("角色信息:{}", roles);
if (CollectionUtil.isEmpty(roles)) {
return CodeEnum.ROLE_NOT_FOUND;
}
List<Long> 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;
}
} }

30
tall/src/main/java/com/ccsens/tall/service/UserService.java

@ -348,6 +348,7 @@ public class UserService implements IUserService {
SysUser user = new SysUser(); SysUser user = new SysUser();
user.setId(snowflake.nextId()); user.setId(snowflake.nextId());
user.setPhone(userSignup.getPhone()); user.setPhone(userSignup.getPhone());
user.setSource(userSignup.getSource());
userDao.insertSelective(user); userDao.insertSelective(user);
SysAuth accountAuth = new SysAuth(); SysAuth accountAuth = new SysAuth();
@ -648,4 +649,33 @@ public class UserService implements IUserService {
// tokenBean = tokenBeanJsonResponse.getData(); // tokenBean = tokenBeanJsonResponse.getData();
// return tokenBean; // 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<SysAuth> 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();
}
} }

45
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);
}
}

15
tall/src/main/resources/mapper_dao/ProMemberRoleDao.xml

@ -0,0 +1,15 @@
<?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.ccsens.tall.persist.dao.ProMemberRoleDao">
<insert id="insertBatch" parameterType="List">
insert into t_pro_member_role (id, member_id, role_id,
created_at, updated_at, rec_status
) values
<foreach collection="list" item="item" separator=",">
(#{item.id,jdbcType=BIGINT}, #{item.memberId,jdbcType=BIGINT}, #{item.roleId,jdbcType=BIGINT}, now(), now(), 0)
</foreach>
</insert>
</mapper>

15
tall/src/main/resources/mapper_dao/ProRoleDao.xml

@ -126,4 +126,19 @@
r.name not IN ('全体成员','观众','MVP') r.name not IN ('全体成员','观众','MVP')
</select> </select>
<select id="selectByProjectAndName" resultMap="com.ccsens.tall.persist.mapper.ProRoleMapper.BaseResultMap">
select r.* from t_sys_project p, t_pro_role r
where p.id = r.project_id
<choose>
<when test="projectId != null">and p.id = #{projectId, jdbcType=BIGINT}</when>
<otherwise>and p.name = #{projectName, jdbcType=VARCHAR} </otherwise>
</choose>
<if test="roleNames != null and roleNames.size() > 0" >
and r.name in
<foreach collection="roleNames" item="role" separator="," open="(" close=")">
#{role, jdbcType=VARCHAR}
</foreach>
</if>
</select>
</mapper> </mapper>

25
tall/src/main/resources/mapper_raw/SysUserMapper.xml

@ -18,6 +18,7 @@
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" /> <result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" /> <result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" /> <result column="rec_status" jdbcType="TINYINT" property="recStatus" />
<result column="source" jdbcType="TINYINT" property="source" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<where> <where>
@ -79,7 +80,7 @@
</sql> </sql>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, grade_id, avatar_url, nickname, gender, country, province, city, language, phone, 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
</sql> </sql>
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.SysUserExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.ccsens.tall.bean.po.SysUserExample" resultMap="BaseResultMap">
select select
@ -117,13 +118,13 @@
province, city, language, province, city, language,
phone, wechat, email, phone, wechat, email,
balance, created_at, updated_at, balance, created_at, updated_at,
rec_status) rec_status, source)
values (#{id,jdbcType=BIGINT}, #{gradeId,jdbcType=BIGINT}, #{avatarUrl,jdbcType=VARCHAR}, values (#{id,jdbcType=BIGINT}, #{gradeId,jdbcType=BIGINT}, #{avatarUrl,jdbcType=VARCHAR},
#{nickname,jdbcType=VARCHAR}, #{gender,jdbcType=TINYINT}, #{country,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, #{gender,jdbcType=TINYINT}, #{country,jdbcType=VARCHAR},
#{province,jdbcType=VARCHAR}, #{city,jdbcType=VARCHAR}, #{language,jdbcType=VARCHAR}, #{province,jdbcType=VARCHAR}, #{city,jdbcType=VARCHAR}, #{language,jdbcType=VARCHAR},
#{phone,jdbcType=VARCHAR}, #{wechat,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{wechat,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR},
#{balance,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{balance,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP},
#{recStatus,jdbcType=TINYINT}) #{recStatus,jdbcType=TINYINT}, #{source,jdbcType=TINYINT})
</insert> </insert>
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.SysUser"> <insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.SysUser">
insert into t_sys_user insert into t_sys_user
@ -176,6 +177,9 @@
<if test="recStatus != null"> <if test="recStatus != null">
rec_status, rec_status,
</if> </if>
<if test="source != null">
source,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@ -226,6 +230,9 @@
<if test="recStatus != null"> <if test="recStatus != null">
#{recStatus,jdbcType=TINYINT}, #{recStatus,jdbcType=TINYINT},
</if> </if>
<if test="source != null">
#{source,jdbcType=TINYINT},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.ccsens.tall.bean.po.SysUserExample" resultType="java.lang.Long"> <select id="countByExample" parameterType="com.ccsens.tall.bean.po.SysUserExample" resultType="java.lang.Long">
@ -285,6 +292,9 @@
<if test="record.recStatus != null"> <if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT}, rec_status = #{record.recStatus,jdbcType=TINYINT},
</if> </if>
<if test="record.source != null">
source = #{record.source,jdbcType=TINYINT},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -307,7 +317,8 @@
balance = #{record.balance,jdbcType=BIGINT}, balance = #{record.balance,jdbcType=BIGINT},
created_at = #{record.createdAt,jdbcType=TIMESTAMP}, created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,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}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -360,6 +371,9 @@
<if test="recStatus != null"> <if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT}, rec_status = #{recStatus,jdbcType=TINYINT},
</if> </if>
<if test="source != null">
source = #{source,jdbcType=TINYINT},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
@ -379,7 +393,8 @@
balance = #{balance,jdbcType=BIGINT}, balance = #{balance,jdbcType=BIGINT},
created_at = #{createdAt,jdbcType=TIMESTAMP}, created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,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} where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>

85
tall/src/main/resources/mbg.xml

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="MySQL" targetRuntime="MyBatis3">
<!-- 为生成的Java模型创建一个toString方法 -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>
<!-- 自定义的序列化 类文件 插件 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
<!-- 重新生成xml文件,而不是追加 -->
<plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://49.233.89.188:3306/tall?useUnicode=true&amp;characterEncoding=UTF-8&amp;tinyInt1isBit=false"
userId="root"
password="po3OynBO[M3579p6L7)o">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="true" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.ccsens.tall.bean.po"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="mapper_raw"
targetProject=".\src\main\resources">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.ccsens.tall.persist.mapper"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!--<table tableName="t_sys_user" domainObjectName="SysUser"></table>
<table tableName="t_sys_auth" domainObjectName="SysAuth"></table>
<table tableName="t_sys_grade" domainObjectName="SysGrade"></table>
<table tableName="t_sys_balance_log" domainObjectName="SysBalanceLog"></table>
<table tableName="t_sys_project" domainObjectName="SysProject"></table>
<table tableName="t_pro_scene" domainObjectName="ProScene"></table>
<table tableName="t_pro_role" domainObjectName="ProRole"></table>
<table tableName="t_pro_member_role" domainObjectName="ProMemberRole"></table>
<table tableName="t_pro_member" domainObjectName="ProMember"></table>
<table tableName="t_pro_exclude_role" domainObjectName="ProExcludeRole"></table>
<table tableName="t_pro_task" domainObjectName="ProTask"></table>
<table tableName="t_sub_task" domainObjectName="SubTask"></table>
<table tableName="t_pro_log" domainObjectName="ProLog"></table>
<table tableName="t_task_plugin" domainObjectName="TaskPlugin"></table>
<table tableName="t_task_deliver" domainObjectName="TaskDeliver"></table>
<table tableName="t_deliver_post_log" domainObjectName="DeliverPostLog"></table>
<table tableName="t_commited_file" domainObjectName="CommitedFile"></table>
<table tableName="t_msg" domainObjectName="Msg"></table>
<table tableName="t_msg_log" domainObjectName="MsgLog"></table>
<table tableName="t_stakeholder" domainObjectName="Stakeholder"></table>
<table tableName="t_task_hardware" domainObjectName="TaskHardware"></table>-->
<table tableName="t_sys_user" domainObjectName="SysUser"></table>
<!-- 有些表的字段需要指定java类型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>

14
util/src/main/java/com/ccsens/util/WebConstant.java

@ -7,6 +7,20 @@ import lombok.Getter;
import java.io.File; import java.io.File;
public class WebConstant { 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 { public enum APP_SCENE {
BTPRO(0,"btpro"), MTPRO(1,"mtpro"),PTPRO(2,"ptpro"); BTPRO(0,"btpro"), MTPRO(1,"mtpro"),PTPRO(2,"ptpro");

Loading…
Cancel
Save