Explorar o código

Merge remote-tracking branch 'origin/master'

Joburgess %!s(int64=5) %!d(string=hai) anos
pai
achega
880a167d7d

+ 10 - 9
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/Organization.java

@@ -2,6 +2,7 @@ package com.keao.edu.user.entity;
 
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.user.enums.SettlementTypeEnum;
+import com.keao.edu.user.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
@@ -32,10 +33,10 @@ public class Organization {
 	@ApiModelProperty(value = "上级合作单位编号")
 	private Integer parentOrganId;
 
-	private Integer parentOrganIdTag;
+	private String parentOrganIdTag;
 
 	@ApiModelProperty(value = "是否允许排考")
-	private Integer isAllowArrangeExam;
+	private YesOrNoEnum isAllowArrangeExam;
 	
 	/**  */
 	private java.util.Date createTime;
@@ -44,17 +45,17 @@ public class Organization {
 	private java.util.Date updateTime;
 
 	@ApiModelProperty(value = "是否删除",required = false)
-	private Integer delFlag;
+	private YesOrNoEnum delFlag;
 
 	private String tenantId;
 
 	private SysUser sysUser;
 
-	public Integer getIsAllowArrangeExam() {
+	public YesOrNoEnum getIsAllowArrangeExam() {
 		return isAllowArrangeExam;
 	}
 
-	public void setIsAllowArrangeExam(Integer isAllowArrangeExam) {
+	public void setIsAllowArrangeExam(YesOrNoEnum isAllowArrangeExam) {
 		this.isAllowArrangeExam = isAllowArrangeExam;
 	}
 
@@ -74,11 +75,11 @@ public class Organization {
 		this.parentOrganId = parentOrganId;
 	}
 
-	public Integer getParentOrganIdTag() {
+	public String getParentOrganIdTag() {
 		return parentOrganIdTag;
 	}
 
-	public void setParentOrganIdTag(Integer parentOrganIdTag) {
+	public void setParentOrganIdTag(String parentOrganIdTag) {
 		this.parentOrganIdTag = parentOrganIdTag;
 	}
 
@@ -90,11 +91,11 @@ public class Organization {
 		this.tenantId = tenantId;
 	}
 
-	public Integer getDelFlag() {
+	public YesOrNoEnum getDelFlag() {
 		return delFlag;
 	}
 
-	public void setDelFlag(Integer delFlag) {
+	public void setDelFlag(YesOrNoEnum delFlag) {
 		this.delFlag = delFlag;
 	}
 

+ 22 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/OrganizationServiceImpl.java

@@ -1,17 +1,18 @@
 package com.keao.edu.user.service.impl;
 
 
+import com.keao.edu.auth.api.client.SysUserFeignService;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
-import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.im.api.client.ImFeignService;
 import com.keao.edu.im.api.entity.ImResult;
 import com.keao.edu.im.api.entity.ImUserModel;
 import com.keao.edu.user.dao.OrganizationDao;
 import com.keao.edu.user.dao.SysUserDao;
 import com.keao.edu.user.entity.Organization;
+import com.keao.edu.user.enums.YesOrNoEnum;
 import com.keao.edu.user.service.OrganizationService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +30,8 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	@Autowired
 	private ImFeignService imFeignService;
 	@Autowired
+	private SysUserFeignService sysUserFeignService;
+	@Autowired
 	private SysUserDao sysUserDao;
 
 	@Override
@@ -39,8 +42,17 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void add(Organization organ) {
+		//获取当前用的organ
+		SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
+		Organization currentOrganization = organDao.get(queryUserInfo.getId());
+		//获取父级的organ
+		if(organ.getIsAllowArrangeExam() == YesOrNoEnum.YES){
+			if(currentOrganization.getIsAllowArrangeExam() == YesOrNoEnum.NO){
+				throw new BizException("无权创建可排考的合作单位");
+			}
+		}
 		SysUser sysUser = organ.getSysUser();
-		String tenantId = TenantContextHolder.getTenantId().toString();
+		String tenantId = queryUserInfo.getTenantId();
 		organ.setTenantId(tenantId);
 		sysUser.setTenantId(tenantId);
 		SysUser user = sysUserDao.queryByPhone(sysUser.getPhone());
@@ -59,6 +71,9 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 				user.setPhone(organ.getContactPhone());
 				sysUserDao.update(user);
 				return;
+			}else if(organization.getDelFlag() == YesOrNoEnum.YES){
+				organization.setDelFlag(YesOrNoEnum.NO);
+				organDao.update(organization);
 			}else{
 				throw new BizException("用户已存在");
 			}
@@ -69,6 +84,11 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		sysUser.setPhone(organ.getContactPhone());
 		sysUserDao.insert(sysUser);
 
+		if(StringUtils.isEmpty(currentOrganization.getParentOrganIdTag())){
+			organ.setParentOrganIdTag(user.getId().toString());
+		}else {
+			organ.setParentOrganIdTag(currentOrganization.getParentOrganIdTag() + "," + user.getId());
+		}
 		organ.setId(sysUser.getId());
 		organDao.insert(organ);
 		//新增用户角色

+ 10 - 8
edu-user/edu-user-server/src/main/resources/config/mybatis/OrganizationMapper.xml

@@ -14,8 +14,9 @@
 		<result column="parent_organ_id_" property="parentOrganId" />
 		<result column="parent_organ_id_tag_" property="parentOrganIdTag" />
 		<result column="settlement_type_" property="settlementType" typeHandler="com.keao.edu.common.dal.CustomEnumTypeHandler"/>
+		<result column="del_flag_" property="delFlag" typeHandler="com.keao.edu.common.dal.CustomEnumTypeHandler"/>
 		<result column="share_profit_amount_" property="shareProfitAmount" />
-		<result column="is_allow_arrange_exam_" property="isAllowArrangeExam" />
+		<result column="is_allow_arrange_exam_" property="isAllowArrangeExam" typeHandler="com.keao.edu.common.dal.CustomEnumTypeHandler"/>
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 		<result column="tenant_id_" property="tenantId" />
@@ -36,16 +37,13 @@
 	<insert id="insert" parameterType="com.keao.edu.user.entity.Organization" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO organization (id_,name_,contact_name_,contact_phone_,parent_organ_id_,parent_organ_id_tag_,settlement_type_,share_profit_amount_,is_allow_arrange_exam_,create_time_,update_time_,tenant_id_)
 		VALUES(#{id},#{name},#{contactName},#{contactPhone},#{parentOrganId},#{parentOrganIdTag},#{settlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
-		#{shareProfitAmount},#{isAllowArrangeExam},NOW(),NOW(),#{tenantId})
+		#{shareProfitAmount},#{isAllowArrangeExam,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},NOW(),NOW(),#{tenantId})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.keao.edu.user.entity.Organization">
 		UPDATE organization
 		<set>
-			<if test="updateTime != null">
-				update_time_ = #{updateTime},
-			</if>
 			<if test="contactPhone != null">
 				contact_phone_ = #{contactPhone},
 			</if>
@@ -68,11 +66,15 @@
 				name_ = #{name},
 			</if>
 			<if test="isAllowArrangeExam != null">
-				is_allow_arrange_exam_ = #{isAllowArrangeExam},
+				is_allow_arrange_exam_ = #{isAllowArrangeExam,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
+			</if>
+			<if test="delFlag != null">
+				del_flag_ = #{delFlag,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
 			</if>
 			<if test="tenantId != null">
 				tenant_id_ = #{tenantId},
 			</if>
+			update_time_ = NOW()
 		</set> WHERE id_ = #{id}
 	</update>
 	
@@ -84,10 +86,10 @@
 	<sql id="organQueryPage">
 		<where>
 			del_flag_ = 0 AND tenant_id_ = #{tenantId}
-			<if test="settlementType">
+			<if test="settlementType != null and settlementType != ''">
 				AND settlement_type_ = #{settlementType}
 			</if>
-			<if test="search">
+			<if test="search != null and search != ''">
 				AND (id_ = #{search} OR name_ LIKE CONCAT('%',#{search},'%')
 				OR contact_name_ LIKE CONCAT('%',#{search},'%')
 				OR contact_phone_ LIKE CONCAT('%',#{search},'%'))