瀏覽代碼

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

yonge 5 年之前
父節點
當前提交
c918eae51c

+ 5 - 5
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/core/provider/PhoneAuthenticationProvider.java

@@ -44,17 +44,17 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
 
 		String smsCode = loginEntity.getSmsCode();
 
-		SysUserInfo userInfo = sysUserService.queryUserInfoByPhone(loginEntity.getPhone());
-		if (userInfo == null && StringUtils.isNotEmpty(loginEntity.getRegisterFlag())) {
-			sysUserService.initUser(loginEntity);
-		}
-
 		// 验证码验证
 		boolean b = smsCodeService.verifyValidCode(StringUtils.substringAfter(phone, SecurityConstants.PHONE_PRINCIPAL_PREFIX), smsCode);
 		if (!b) {
 			throw new BadCredentialsException("验证码校验失败");
 		}
 
+		SysUserInfo userInfo = sysUserService.queryUserInfoByPhone(loginEntity.getPhone());
+		if (userInfo == null && StringUtils.isNotEmpty(loginEntity.getRegisterFlag())) {
+			sysUserService.initUser(loginEntity);
+		}
+
 		UserDetails loadedUser;
 		try {
 			loadedUser = userDetailsService.loadUserByUsername(phone);

+ 1 - 1
edu-im/edu-im-api/src/main/java/com/keao/edu/im/api/entity/ImUserModel.java

@@ -19,7 +19,7 @@ public class ImUserModel {
         this.id = id;
         this.name = name;
         if(StringUtils.isEmpty(portrait)){
-            this.portrait = "https://daya-online.oss-cn-beijing.aliyuncs.com/201912/RkoZBNq.jpeg";
+            this.portrait = "https://daya-online.oss-cn-beijing.aliyuncs.com/202007/S4bb4ZQ.png";
         }else {
             this.portrait = portrait;
         }

+ 10 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/SubjectController.java

@@ -34,6 +34,16 @@ public class SubjectController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation(value = "删除科目")
+    @PostMapping("/del")
+    @PreAuthorize("@pcs.hasPermissions('subject/del')")
+    public HttpResponseResult del(@RequestBody Subject subject){
+        subject.setTenantId(TenantContextHolder.getTenantId());
+        subject.setDelFlag(true);
+        subjectService.upSetSubject(subject);
+        return succeed();
+    }
+
     @ApiOperation(value = "根据科目编号查询科目")
     @GetMapping("/get/{id}")
     @PreAuthorize("@pcs.hasPermissions('subject/get')")

+ 46 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/SysSuggestionController.java

@@ -0,0 +1,46 @@
+package com.keao.edu.user.controller;
+
+
+import com.keao.edu.common.controller.BaseController;
+import com.keao.edu.common.page.QueryInfo;
+import com.keao.edu.user.entity.SysSuggestion;
+import com.keao.edu.user.service.SysSuggestionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("sysSuggestion")
+@Api(tags = "意见反馈")
+@RestController
+public class SysSuggestionController extends BaseController {
+
+    @Autowired
+    private SysSuggestionService sysSuggestionService;
+
+    @ApiOperation(value = "新增")
+    @RequestMapping("/add")
+    @PreAuthorize("@pcs.hasPermissions('sysSuggestion/add')")
+    public Object add(SysSuggestion sysSuggestion) {
+        sysSuggestionService.insert(sysSuggestion);
+        return succeed();
+    }
+
+    @ApiOperation(value = "删除")
+    @RequestMapping("/del")
+    @PreAuthorize("@pcs.hasPermissions('sysSuggestion/del')")
+    public Object del(Long id) {
+        sysSuggestionService.delete(id);
+        return succeed();
+    }
+
+    @ApiOperation(value = "分页查询")
+    @RequestMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('sysSuggestion/queryPage')")
+    public Object queryPage(QueryInfo queryInfo) {
+        return succeed(sysSuggestionService.queryPage(queryInfo));
+    }
+
+}

+ 10 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/SysSuggestionDao.java

@@ -0,0 +1,10 @@
+package com.keao.edu.user.dao;
+
+
+import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.user.entity.SysSuggestion;
+
+public interface SysSuggestionDao extends BaseDAO<Long, SysSuggestion> {
+
+	
+}

+ 10 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/TenantInfoDao.java

@@ -3,6 +3,7 @@ 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 org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -11,4 +12,13 @@ public interface TenantInfoDao extends BaseDAO<Integer, TenantInfo> {
 
     List<TenantInfoDto> queryTenants(Map<String, Object> params);
     int countTenants(Map<String, Object> params);
+
+    /**
+     * @describe 获取指定分部的机构信息
+     * @author Joburgess
+     * @date 2020.07.13
+     * @param organId:
+     * @return com.keao.edu.user.entity.TenantInfo
+     */
+    TenantInfo getWithOrgan(@Param("organId") Integer organId);
 }

+ 108 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/SysSuggestion.java

@@ -0,0 +1,108 @@
+package com.keao.edu.user.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(sys_suggestion):
+ */
+public class SysSuggestion {
+
+	/** 编号 */
+	private Long id;
+	
+	/** 联系方式 */
+	@ApiModelProperty(value = "联系方式",required = false)
+	private String mobileNo;
+	
+	/** 标题 */
+	@ApiModelProperty(value = "标题",required = false)
+	private String title;
+	
+	/** 内容 */
+	@ApiModelProperty(value = "内容",required = false)
+	private String content;
+	
+	/** 用户编号 */
+	@ApiModelProperty(value = "用户编号",required = false)
+	private Long userId;
+	
+	@ApiModelProperty(value = "客户端类型",required = false)
+	private String clientType;
+
+	@ApiModelProperty(value = "用户名",required = false)
+	private String username;
+	
+	/** 提交时间 */
+	private java.util.Date createTime;
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setMobileNo(String mobileNo){
+		this.mobileNo = mobileNo;
+	}
+	
+	public String getMobileNo(){
+		return this.mobileNo;
+	}
+			
+	public void setTitle(String title){
+		this.title = title;
+	}
+	
+	public String getTitle(){
+		return this.title;
+	}
+			
+	public void setContent(String content){
+		this.content = content;
+	}
+	
+	public String getContent(){
+		return this.content;
+	}
+			
+	public void setUserId(Long userId){
+		this.userId = userId;
+	}
+	
+	public Long getUserId(){
+		return this.userId;
+	}
+			
+	public String getClientType() {
+		return clientType;
+	}
+
+	public void setClientType(String clientType) {
+		this.clientType = clientType;
+	}
+
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 9 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/SysSuggestionService.java

@@ -0,0 +1,9 @@
+package com.keao.edu.user.service;
+
+
+import com.keao.edu.common.service.BaseService;
+import com.keao.edu.user.entity.SysSuggestion;
+
+public interface SysSuggestionService extends BaseService<Long, SysSuggestion> {
+
+}

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

@@ -3,10 +3,8 @@ 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.thirdparty.storage.provider.KS3StoragePlugin;
 import com.keao.edu.util.upload.UploadUtil;
-import com.keao.edu.thirdparty.storage.StoragePlugin;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -68,7 +66,7 @@ public class UploadFileService {
 			return uploadReturn;
 		}
 
-		String url = storagePluginContext.uploadFile(AliyunOssStoragePlugin.PLUGIN_NAME,staticFloder + folder, file);
+		String url = storagePluginContext.uploadFile(KS3StoragePlugin.PLUGIN_NAME,staticFloder + folder, file);
 
 		FileUtils.deleteQuietly(file);
 

+ 17 - 5
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamOrganizationRelationServiceImpl.java

@@ -13,14 +13,12 @@ import com.keao.edu.common.page.QueryInfo;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.thirdparty.message.MessageSenderPluginContext;
-import com.keao.edu.user.dao.ExamOrganizationRelationDao;
-import com.keao.edu.user.dao.ExaminationBasicDao;
-import com.keao.edu.user.dao.OrganizationDao;
-import com.keao.edu.user.dao.TeacherDao;
+import com.keao.edu.user.dao.*;
 import com.keao.edu.user.dto.ExamOrganizationRelationExtraDto;
 import com.keao.edu.user.entity.ExamOrganizationRelation;
 import com.keao.edu.user.entity.ExaminationBasic;
 import com.keao.edu.user.entity.Organization;
+import com.keao.edu.user.entity.TenantInfo;
 import com.keao.edu.user.enums.ExamStatusEnum;
 import com.keao.edu.user.enums.YesOrNoEnum;
 import com.keao.edu.user.page.ExamOrganizationRelationQueryInfo;
@@ -29,6 +27,8 @@ import com.keao.edu.user.service.OrganizationService;
 import com.keao.edu.user.service.ShortUrlService;
 import com.keao.edu.user.service.SysConfigService;
 import com.keao.edu.util.collection.MapUtil;
+import com.keao.edu.util.date.DateUtil;
+import org.apache.commons.lang.time.DateUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,6 +61,8 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 	private SysMessageFeignService sysMessageFeignService;
 	@Autowired
 	private SysConfigService sysConfigService;
+	@Autowired
+	private TenantInfoDao tenantInfoDao;
 
 	public static final Set<ExamStatusEnum> EDIT_ABLE_EXAM_STATUS=new HashSet<>(Arrays.asList(ExamStatusEnum.SETTING,ExamStatusEnum.NOT_START,ExamStatusEnum.APPLYING,ExamStatusEnum.APPLIED));
 
@@ -189,6 +191,15 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 			throw new BizException("考级项目已关闭");
 		}
 
+		StringBuffer expectRegistTime = new StringBuffer(DateUtil.dateToString(examinationBasic.getEnrollStartTime(), "yyyy年MM月dd日"));
+		expectRegistTime.append("-");
+		expectRegistTime.append(DateUtil.dateToString(examinationBasic.getEnrollStartTime(), "yyyy年MM月dd日"));
+
+		TenantInfo tenantInfo = tenantInfoDao.getWithOrgan(examinationBasic.getOrganId());
+		if(Objects.isNull(tenantInfo)){
+			throw new BizException("考级信息错误");
+		}
+
 		List<ExamOrganizationRelation> needUpdate=new ArrayList<>();
 		for (ExamOrganizationRelation examOrgan : examOrgans) {
 			if(YesOrNoEnum.YES.equals(examOrgan.getSendUrlFlag())){
@@ -203,7 +214,8 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 			userPhoneMap.put(examOrgan.getOrganId(), student.getPhone());
 
 			SysMessageParams sysMessageParams=new SysMessageParams(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.EXAM_REGISTRATION_URL_PUSH,
-					userPhoneMap, null, 0, null, null, examOrgan.getUrl());
+					userPhoneMap, null, 0, null, null,
+					tenantInfo.getName(), examinationBasic.getName(), expectRegistTime.toString(), examOrgan.getUrl());
 			sysMessageFeignService.batchSendMessage(sysMessageParams);
 		}
 

+ 15 - 9
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExaminationBasicServiceImpl.java

@@ -136,13 +136,13 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         if(Objects.isNull(existsExam)){
             throw new BizException("考级项目不存在");
         }
-        existsExam.setStatus(statusEnum);
-        if(ExamStatusEnum.SETTING.equals(existsExam.getStatus())&&ExamStatusEnum.NOT_START.equals(existsExam.getStatus())){
-            examOrganizationRelationService.addExamOrganizations(existsExam.getId(),existsExam.getOrganId().toString());
+        if(ExamStatusEnum.RESULT_CONFIRM.equals(existsExam.getStatus())){
+            throw new BizException("考级项目结果已确认");
         }
-        switch (statusEnum){
-//            cas
+        if(ExamStatusEnum.SETTING.equals(existsExam.getStatus())&&ExamStatusEnum.NOT_START.equals(statusEnum)){
+            examOrganizationRelationService.addExamOrganizations(existsExam.getId(),existsExam.getOrganId().toString());
         }
+        existsExam.setStatus(statusEnum);
         examinationBasicDao.update(existsExam);
     }
 
@@ -196,10 +196,10 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         }
         List<ExamOrganizationRelation> examOrganizationRelations = examOrganizationRelationDao.getWithExam(examId);
         if (!CollectionUtils.isEmpty(examOrganizationRelations)) {
-            long totalRegistrationStudentNum = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalRegistrationStudentNum).count();
-            long totalPaymentAmount = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalPaymentAmount).count();
-            examinationBasic.setTotalRegistrationStudentNum((int) totalRegistrationStudentNum);
-            examinationBasic.setTotalPaymentAmount(new BigDecimal(totalPaymentAmount));
+            Integer totalRegistrationStudentNum = examOrganizationRelations.stream().mapToInt(ExamOrganizationRelation::getTotalRegistrationStudentNum).sum();
+            BigDecimal totalPaymentAmount = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalPaymentAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            examinationBasic.setTotalRegistrationStudentNum(totalRegistrationStudentNum);
+            examinationBasic.setTotalPaymentAmount(totalPaymentAmount);
             examinationBasic.setOrganNum(examOrganizationRelations.size());
         }
         if(Objects.nonNull(examinationBasic.getCreatorId())){
@@ -219,6 +219,12 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         if(Objects.isNull(existsExam)){
             throw new BizException("考级项目不存在");
         }
+        if(ExamStatusEnum.RESULT_CONFIRM.equals(existsExam.getStatus())){
+            throw new BizException("考级项目结果已确认");
+        }
+        if(ExamStatusEnum.CLOSE.equals(existsExam.getStatus())){
+            throw new BizException("考级项目已关闭");
+        }
         return examinationBasicDao.update(examinationBasic);
     }
 

+ 23 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/SysSuggestionServiceImpl.java

@@ -0,0 +1,23 @@
+package com.keao.edu.user.service.impl;
+
+
+import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.common.service.impl.BaseServiceImpl;
+import com.keao.edu.user.dao.SysSuggestionDao;
+import com.keao.edu.user.entity.SysSuggestion;
+import com.keao.edu.user.service.SysSuggestionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysSuggestionServiceImpl extends BaseServiceImpl<Long, SysSuggestion> implements SysSuggestionService {
+	
+	@Autowired
+	private SysSuggestionDao sysSuggestionDao;
+
+	@Override
+	public BaseDAO<Long, SysSuggestion> getDAO() {
+		return sysSuggestionDao;
+	}
+	
+}

+ 77 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/SysSuggestionMapper.xml

@@ -0,0 +1,77 @@
+<?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.keao.edu.user.dao.SysSuggestionDao">
+
+    <resultMap type="com.keao.edu.user.entity.SysSuggestion" id="SysSuggestion">
+        <result column="id_" property="id"/>
+        <result column="mobile_no_" property="mobileNo"/>
+        <result column="title_" property="title"/>
+        <result column="content_" property="content"/>
+        <result column="user_id_" property="userId"/>
+        <result column="username_" property="username"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="client_type_" property="clientType"/>
+    </resultMap>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="SysSuggestion">
+		SELECT * FROM sys_suggestion WHERE id_ = #{id} 
+	</select>
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="SysSuggestion">
+		SELECT * FROM sys_suggestion ORDER BY id_
+	</select>
+
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.keao.edu.user.entity.SysSuggestion" useGeneratedKeys="true" keyColumn="id"
+            keyProperty="id">
+        INSERT INTO sys_suggestion (id_,mobile_no_,title_,content_,user_id_,create_time_,client_type_)
+        VALUES(#{id},#{mobileNo},#{title},#{content},#{userId},now(),#{clientType})
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.keao.edu.user.entity.SysSuggestion">
+        UPDATE sys_suggestion
+        <set>
+            <if test="clientType != null">
+                client_type_ = #{clientType},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="title != null">
+                title_ = #{title},
+            </if>
+            <if test="content != null">
+                content_ = #{content},
+            </if>
+            <if test="mobileNo != null">
+                mobile_no_ = #{mobileNo},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
+
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
+		DELETE FROM sys_suggestion WHERE id_ = #{id} 
+	</delete>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="SysSuggestion" parameterType="map">
+        SELECT ss.*,CASE WHEN su.real_name_ IS NULL THEN su.username_ ELSE su.real_name_ END username_ FROM sys_suggestion ss
+        LEFT JOIN sys_user su ON su.id_ = ss.user_id_
+        ORDER BY ss.id_ DESC
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM sys_suggestion
+	</select>
+</mapper>

+ 10 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/TenantInfoMapper.xml

@@ -119,4 +119,14 @@
 		SELECT COUNT(*) FROM tenant_info ti
 		<include refid="queryPageCondition"/>
 	</select>
+
+    <select id="getWithOrgan" resultMap="TenantInfo">
+		SELECT
+			ti.*
+		FROM
+			tenant_info ti
+			LEFT JOIN organization o ON o.tenant_id_ = ti.id_
+		WHERE
+			o.id_=#{organId}
+	</select>
 </mapper>