Bladeren bron

Merge branch 'master' of http://git.dayaedu.com/yonge/edu-saas

# Conflicts:
#	edu-user/edu-user-server/src/main/resources/config/mybatis/SysUserMapper.xml
zouxuan 5 jaren geleden
bovenliggende
commit
551233e6cb

+ 1 - 0
edu-user/edu-user-client-api/src/main/java/com/keao/edu/user/api/entity/Student.java

@@ -34,6 +34,7 @@ public class Student extends SysUser{
 		user.setPhone(phone);
 		user.setRealName(phone);
 		this.sysUser = user;
+		this.setRealName(phone);
 	}
 
 	public Student() {

+ 6 - 5
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/TenantInfoController.java

@@ -8,6 +8,7 @@ import com.keao.edu.common.entity.HttpResponseResult;
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.page.QueryInfo;
 import com.keao.edu.common.tenant.TenantContextHolder;
+import com.keao.edu.user.dto.TenantInfoDto;
 import com.keao.edu.user.entity.TenantInfo;
 import com.keao.edu.user.service.TenantInfoService;
 import io.swagger.annotations.Api;
@@ -30,8 +31,8 @@ public class TenantInfoController extends BaseController {
 	
 	@ApiOperation("机构服务分页查询")
 	@GetMapping(value = "/list")
-	public HttpResponseResult<PageInfo<TenantInfo>> getList(QueryInfo queryInfo) {
-		return succeed(tenantInfoService.queryPage(queryInfo));
+	public HttpResponseResult<PageInfo<TenantInfoDto>> getList(QueryInfo queryInfo) {
+		return succeed(tenantInfoService.queryTenants(queryInfo));
 	}
 
 	@ApiOperation("查询机构详情")
@@ -43,21 +44,21 @@ public class TenantInfoController extends BaseController {
 
 	@ApiOperation("新增机构")
 	@PostMapping(value = "/add")
-	public HttpResponseResult add(TenantInfo tenantInfo) {
+	public HttpResponseResult add(@RequestBody TenantInfoDto tenantInfo) {
 		tenantInfoService.addTenant(tenantInfo);
 		return succeed();
 	}
 
 	@ApiOperation("更新机构")
 	@PostMapping(value = "/update")
-	public HttpResponseResult update(TenantInfo tenantInfo) {
+	public HttpResponseResult update(@RequestBody TenantInfoDto tenantInfo) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if(!sysUser.getIsSuperAdmin()){
 			String tenantId = TenantContextHolder.getTenantId().toString();
 			tenantInfo.setId(Integer.parseInt(tenantId));
 		}
 		tenantInfo.setUpdateTime(new Date());
-		tenantInfoService.update(tenantInfo);
+		tenantInfoService.updateTenant(tenantInfo);
 		return succeed();
 	}
 

+ 8 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/TenantInfoDao.java

@@ -1,8 +1,14 @@
 package com.keao.edu.user.dao;
 
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.user.dto.TenantInfoDto;
 import com.keao.edu.user.entity.TenantInfo;
 
+import java.util.List;
+import java.util.Map;
+
 public interface TenantInfoDao extends BaseDAO<Integer, TenantInfo> {
-	
-}
+
+    List<TenantInfoDto> queryTenants(Map<String, Object> params);
+    int countTenants(Map<String, Object> params);
+}

+ 30 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/TenantInfoDto.java

@@ -0,0 +1,30 @@
+package com.keao.edu.user.dto;
+
+import com.keao.edu.user.entity.TenantInfo;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.07.07
+ */
+public class TenantInfoDto extends TenantInfo {
+
+    private String roleIds;
+
+    private String roleNames;
+
+    public String getRoleIds() {
+        return roleIds;
+    }
+
+    public void setRoleIds(String roleIds) {
+        this.roleIds = roleIds;
+    }
+
+    public String getRoleNames() {
+        return roleNames;
+    }
+
+    public void setRoleNames(String roleNames) {
+        this.roleNames = roleNames;
+    }
+}

+ 8 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/TenantInfoService.java

@@ -1,10 +1,17 @@
 package com.keao.edu.user.service;
 
+import com.keao.edu.common.page.PageInfo;
+import com.keao.edu.common.page.QueryInfo;
 import com.keao.edu.common.service.BaseService;
+import com.keao.edu.user.dto.TenantInfoDto;
 import com.keao.edu.user.entity.TenantInfo;
 
 public interface TenantInfoService extends BaseService<Integer, TenantInfo> {
 
-    void addTenant(TenantInfo tenantInfo);
+    void addTenant(TenantInfoDto tenantInfo);
+
+    void updateTenant(TenantInfoDto tenantInfoDto);
+
+    PageInfo<TenantInfoDto> queryTenants(QueryInfo queryInfo);
 
 }

+ 2 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/UploadFileService.java

@@ -3,6 +3,7 @@ package com.keao.edu.user.service;
 import com.keao.edu.common.entity.UploadReturnBean;
 import com.keao.edu.common.exception.BizException;
 import com.keao.edu.thirdparty.storage.StoragePluginContext;
+import com.keao.edu.thirdparty.storage.provider.AliyunOssStoragePlugin;
 import com.keao.edu.thirdparty.storage.provider.QiniuKodoStoragePlugin;
 import com.keao.edu.util.upload.UploadUtil;
 import com.keao.edu.thirdparty.storage.StoragePlugin;
@@ -67,7 +68,7 @@ public class UploadFileService {
 			return uploadReturn;
 		}
 
-		String url = storagePluginContext.uploadFile(QiniuKodoStoragePlugin.PLUGIN_NAME,staticFloder + folder, file);
+		String url = storagePluginContext.uploadFile(AliyunOssStoragePlugin.PLUGIN_NAME,staticFloder + folder, file);
 
 		FileUtils.deleteQuietly(file);
 

+ 4 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java

@@ -157,9 +157,13 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
 
             List<Integer> subjectIds = dataList.stream().map(ExamRegistration::getSubjectId).collect(Collectors.toList());
             Map<Integer, String> subjectIdNameMap = this.getMap("subject", "id_", "name_", subjectIds, Integer.class, String.class);
+
+            List<Integer> studentIds = dataList.stream().map(ExamRegistration::getStudentId).collect(Collectors.toList());
+            Map<Integer, String> idPhotoMap = this.getMap("student", "user_id_", "certificate_photo_", studentIds, Integer.class, String.class);
             for (ExamRegistration examRegistration : dataList) {
                 examRegistration.setOrganization(new Organization(examRegistration.getOrganId(), organIdNameMap.get(examRegistration.getOrganId())));
                 examRegistration.getSubject().setName(subjectIdNameMap.get(examRegistration.getSubjectId()));
+                examRegistration.getSysUser().setCertificatePhoto(idPhotoMap.get(examRegistration.getSubjectId()));
                 examRegistration.setExaminationBasic(new ExaminationBasic(examRegistration.getExaminationBasicId(), examIdNameMap.get(examRegistration.getExaminationBasicId())));
             }
         }

+ 63 - 3
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/TenantInfoServiceImpl.java

@@ -3,6 +3,8 @@ package com.keao.edu.user.service.impl;
 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.page.PageInfo;
+import com.keao.edu.common.page.QueryInfo;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.im.api.client.ImFeignService;
 import com.keao.edu.im.api.entity.ImResult;
@@ -11,17 +13,23 @@ import com.keao.edu.user.dao.EmployeeDao;
 import com.keao.edu.user.dao.OrganizationDao;
 import com.keao.edu.user.dao.SysUserDao;
 import com.keao.edu.user.dao.TenantInfoDao;
+import com.keao.edu.user.dto.TenantInfoDto;
 import com.keao.edu.user.entity.Employee;
 import com.keao.edu.user.entity.Organization;
 import com.keao.edu.user.entity.TenantInfo;
 import com.keao.edu.user.enums.YesOrNoEnum;
 import com.keao.edu.user.service.TenantInfoService;
+import com.keao.edu.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class TenantInfoServiceImpl extends BaseServiceImpl<Integer, TenantInfo> implements TenantInfoService {
@@ -43,7 +51,8 @@ public class TenantInfoServiceImpl extends BaseServiceImpl<Integer, TenantInfo>
 	}
 
 	@Override
-	public void addTenant(TenantInfo tenantInfo) {
+	@Transactional(rollbackFor = Exception.class)
+	public void addTenant(TenantInfoDto tenantInfo) {
 		if(StringUtils.isBlank(tenantInfo.getContactPhone())){
 			throw new BizException("请填写手机号码");
 		}
@@ -58,10 +67,15 @@ public class TenantInfoServiceImpl extends BaseServiceImpl<Integer, TenantInfo>
 		sysUser.setTenantId(tenantInfo.getId().toString());
 		sysUser.setPassword(new BCryptPasswordEncoder().encode("123456"));
 		sysUser.setUserType("SYSTEM");
-		sysUser.setRealName(tenantInfo.getName());
+		sysUser.setRealName(tenantInfo.getContactName());
 		sysUser.setAvatar(tenantInfo.getLogoUrl());
 		sysUser.setPhone(tenantInfo.getContactPhone());
+		sysUser.setRoles(tenantInfo.getSysUser().getRoles());
 		sysUserDao.insert(sysUser);
+		if(StringUtils.isNotBlank(tenantInfo.getRoleIds())){
+			List<Integer> roleIds = Arrays.stream(tenantInfo.getRoleIds().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toList());
+			sysUserDao.batchAddEmployeeRole(sysUser.getId(), roleIds);
+		}
 
 		Organization organ=new Organization();
 		organ.setUserId(sysUser.getId());
@@ -86,4 +100,50 @@ public class TenantInfoServiceImpl extends BaseServiceImpl<Integer, TenantInfo>
 		sysUser.setImToken(imResult.getToken());
 		sysUserDao.update(sysUser);
 	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void updateTenant(TenantInfoDto newTenantInfo) {
+		TenantInfo existTenantInfo = tenantInfoDao.get(newTenantInfo.getId());
+		if(Objects.isNull(existTenantInfo)){
+			throw new BizException("机构不存在");
+		}
+		SysUser sysUser = sysUserDao.queryByPhone(existTenantInfo.getContactPhone());
+		if(Objects.isNull(sysUser)){
+			throw new BizException("机构账户不存在");
+		}
+		if(StringUtils.isNotBlank(newTenantInfo.getRoleIds())){
+			List<Integer> roleIds = Arrays.stream(newTenantInfo.getRoleIds().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toList());
+			//删除当前用户角色
+			sysUserDao.delEmployeeRole(sysUser.getId());
+			//新增用户角色
+			sysUserDao.batchAddEmployeeRole(sysUser.getId(),roleIds);
+		}
+		if(StringUtils.isNotBlank(newTenantInfo.getContactName())){
+			sysUser.setRealName(newTenantInfo.getContactName());
+		}
+		if(StringUtils.isNotBlank(newTenantInfo.getContactPhone())){
+			sysUser.setPhone(newTenantInfo.getContactPhone());
+		}
+		sysUserDao.update(sysUser);
+		imFeignService.update(new ImUserModel(sysUser.getId().toString(),sysUser.getRealName(),sysUser.getAvatar()));
+		tenantInfoDao.update(newTenantInfo);
+	}
+
+	@Override
+	public PageInfo<TenantInfoDto> queryTenants(QueryInfo queryInfo) {
+		PageInfo<TenantInfoDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<TenantInfoDto> dataList = new ArrayList<>();
+		int count = tenantInfoDao.countTenants(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = tenantInfoDao.queryTenants(params);
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 }

+ 31 - 3
edu-user/edu-user-server/src/main/resources/config/mybatis/TenantInfoMapper.xml

@@ -17,6 +17,11 @@
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 	</resultMap>
+
+	<resultMap id="TenantInfoDto" type="com.keao.edu.user.dto.TenantInfoDto" extends="TenantInfo">
+		<result column="role_ids_" property="roleIds"/>
+		<result column="role_names_" property="roleNames"/>
+	</resultMap>
 	
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="TenantInfo" >
@@ -74,15 +79,17 @@
 	<sql id="queryPageCondition">
 		<where>
 			<if test="search!=null">
-				AND (id_=#{search} OR name_	LIKE CONCAT(#{search}, '%'))
+				AND (ti.id_=#{search} OR ti.name_	LIKE CONCAT(#{search}, '%'))
 			</if>
 		</where>
 	</sql>
 
 	<select id="queryPage" resultMap="TenantInfo" parameterType="map">
-		SELECT * FROM tenant_info
+		SELECT
+			ti.*
+		FROM tenant_info
 		<include refid="queryPageCondition"/>
-		ORDER BY id_ DESC
+		ORDER BY ti.id_ DESC
 		<include refid="global.limit"/>
 	</select>
 	
@@ -91,4 +98,25 @@
 		SELECT COUNT(*) FROM tenant_info
 		<include refid="queryPageCondition"/>
 	</select>
+
+	<select id="queryTenants" resultMap="TenantInfoDto" parameterType="map">
+		SELECT
+			ti.*,
+			GROUP_CONCAT(sr.id_) role_ids_,
+			GROUP_CONCAT(sr.role_name_) role_names_
+		FROM tenant_info ti
+		LEFT JOIN sys_user su ON ti.contact_phone_ = su.phone_
+		LEFT JOIN sys_user_role sur ON sur.user_id_ = su.id_
+		LEFT JOIN sys_role sr ON sr.id_ = sur.role_id_
+		<include refid="queryPageCondition"/>
+		GROUP BY ti.id_
+		ORDER BY ti.id_ DESC
+		<include refid="global.limit"/>
+	</select>
+
+	<!-- 查询当前表的总记录数 -->
+	<select id="countTenants" resultType="int">
+		SELECT COUNT(*) FROM tenant_info
+		<include refid="queryPageCondition"/>
+	</select>
 </mapper>