浏览代码

Merge remote-tracking branch 'origin/master'

周箭河 5 年之前
父节点
当前提交
09046f6011
共有 36 个文件被更改,包括 398 次插入117 次删除
  1. 3 5
      edu-auth/edu-auth-api/src/main/java/com/keao/edu/auth/api/entity/SysUser.java
  2. 2 2
      edu-auth/edu-auth-server/src/main/resources/config/mybatis/SysRoleMapper.xml
  3. 4 0
      edu-user/edu-user-server/pom.xml
  4. 14 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/config/WebSocketConfig.java
  5. 8 7
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRegistrationController.java
  6. 1 3
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamSubjectSongController.java
  7. 1 2
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/SysConfigController.java
  8. 4 2
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/TeacherController.java
  9. 44 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/WebSocketController.java
  10. 122 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/WebSocketServer.java
  11. 4 4
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/SysUserDao.java
  12. 1 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/TenantInfoDao.java
  13. 3 3
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/TenantInfoDto.java
  14. 22 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExamOrganizationRelation.java
  15. 10 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/Teacher.java
  16. 8 8
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamRegistrationQueryInfo.java
  17. 11 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamReviewQueryInfo.java
  18. 0 10
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExaminationQueryInfo.java
  19. 3 3
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/EmployeeServiceImpl.java
  20. 6 3
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java
  21. 26 2
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamSubjectSongServiceImpl.java
  22. 9 6
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExaminationBasicServiceImpl.java
  23. 5 5
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/OrganizationServiceImpl.java
  24. 6 6
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/TenantInfoServiceImpl.java
  25. 1 8
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamLocationMapper.xml
  26. 26 6
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamOrganizationRelationMapper.xml
  27. 9 2
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml
  28. 5 4
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamReviewMapper.xml
  29. 1 1
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamSongMapper.xml
  30. 0 1
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamSubjectSongMapper.xml
  31. 24 4
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExaminationBasicMapper.xml
  32. 1 1
      edu-user/edu-user-server/src/main/resources/config/mybatis/MusicTheoryMapper.xml
  33. 1 1
      edu-user/edu-user-server/src/main/resources/config/mybatis/SubjectMapper.xml
  34. 3 9
      edu-user/edu-user-server/src/main/resources/config/mybatis/SysUserMapper.xml
  35. 8 7
      edu-user/edu-user-server/src/main/resources/config/mybatis/TeacherMapper.xml
  36. 2 2
      edu-user/edu-user-server/src/main/resources/config/mybatis/TenantInfoMapper.xml

+ 3 - 5
edu-auth/edu-auth-api/src/main/java/com/keao/edu/auth/api/entity/SysUser.java

@@ -5,8 +5,6 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.io.Serializable;
 import java.util.Date;
-import java.util.List;
-import java.util.Set;
 
 /**
  * 对应数据库表(sys_user):
@@ -95,7 +93,7 @@ public class SysUser implements Serializable{
 	private Boolean isSuperAdmin = false;
 
 	@ApiModelProperty(value = "用户角色",required = false)
-	private Set<Integer> roles;
+	private Integer roles;
 
 //	private String tenantId;
 
@@ -299,11 +297,11 @@ public class SysUser implements Serializable{
 		this.isSuperAdmin = isSuperAdmin;
 	}
 
-	public Set<Integer> getRoles() {
+	public Integer getRoles() {
 		return roles;
 	}
 
-	public void setRoles(Set<Integer> roles) {
+	public void setRoles(Integer roles) {
 		this.roles = roles;
 	}
 

+ 2 - 2
edu-auth/edu-auth-server/src/main/resources/config/mybatis/SysRoleMapper.xml

@@ -70,7 +70,7 @@
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="SysRole" parameterType="map">
         SELECT * FROM sys_role WHERE del_flag_ = 0
-        <if test="tenantId != null and tenantId != 0">
+        <if test="tenantId != null">
             AND tenant_id_ = #{tenantId}
         </if>
         ORDER BY update_time_ DESC
@@ -80,7 +80,7 @@
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM sys_role WHERE del_flag_ = 0
-        <if test="tenantId != null and tenantId != 0">
+        <if test="tenantId != null">
             AND tenant_id_ = #{tenantId}
         </if>
 	</select>

+ 4 - 0
edu-user/edu-user-server/pom.xml

@@ -20,6 +20,10 @@
 			<groupId>org.springframework.cloud</groupId>
 			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-websocket</artifactId>
+		</dependency>
 
 		<dependency>
 			<groupId>org.springframework.cloud</groupId>

+ 14 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/config/WebSocketConfig.java

@@ -0,0 +1,14 @@
+package com.keao.edu.user.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.socket.server.standard.ServerEndpointExporter;
+
+@Configuration
+public class WebSocketConfig {
+
+    @Bean
+    public ServerEndpointExporter serverEndpointExporter () {
+        return new ServerEndpointExporter();
+    }
+}

+ 8 - 7
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRegistrationController.java

@@ -10,11 +10,12 @@ import com.keao.edu.user.dto.ExamRecordDto;
 import com.keao.edu.user.dto.ExamRegistrationDto;
 import com.keao.edu.user.dto.ExamRegistrationRoomDto;
 import com.keao.edu.user.dto.ExamRegistrationStatisticsDto;
+import com.keao.edu.user.entity.Employee;
 import com.keao.edu.user.entity.ExamRegistration;
 import com.keao.edu.user.page.ExamRecordQueryInfo;
 import com.keao.edu.user.page.ExamRegistrationQueryInfo;
+import com.keao.edu.user.service.EmployeeService;
 import com.keao.edu.user.service.ExamRegistrationService;
-import com.keao.edu.user.service.OrganizationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.util.Objects;
 
 /**
  * @Author Joburgess
@@ -40,23 +42,22 @@ public class ExamRegistrationController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
-    private OrganizationService organizationService;
+    private EmployeeService employeeService;
 
     @ApiOperation(value = "学员报名记录查询")
     @GetMapping(value = "list")
     @PreAuthorize("@pcs.hasPermissions('examRegistration/list')")
     public HttpResponseResult<PageInfo<ExamRegistrationRoomDto>> list(ExamRegistrationQueryInfo queryInfo) {
-        /*SysUser sysUser = sysUserFeignService.queryUserInfo();
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (!sysUser.getIsSuperAdmin() && Objects.isNull(queryInfo.getOrganId())) {
             Employee employee = employeeService.get(sysUser.getId());
             if(Objects.isNull(employee)){
                 return failed("用户信息异常");
             }
             queryInfo.setOrganId(employee.getOrganId());
-        }*/
-//        if(queryInfo.getOrganId() != null){
-//            queryInfo.setOrganIds(organizationService.getChildOrganIds(queryInfo.getOrganId(),true));
-//        }
+        }else{
+            queryInfo.setOrganId(null);
+        }
         return succeed(examRegistrationService.queryExamRegistrationStudents(queryInfo));
     }
 

+ 1 - 3
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamSubjectSongController.java

@@ -1,7 +1,5 @@
 package com.keao.edu.user.controller;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.keao.edu.common.controller.BaseController;
 import com.keao.edu.common.entity.HttpResponseResult;
 import com.keao.edu.common.page.PageInfo;
@@ -46,7 +44,7 @@ public class ExamSubjectSongController extends BaseController {
 
     @ApiOperation("更新考试内容")
     @PostMapping(value = "/update")
-    public HttpResponseResult update(ExamSubjectSong examSubjectSong) {
+    public HttpResponseResult update(@RequestBody ExamSubjectSong examSubjectSong) {
         examSubjectSongService.update(examSubjectSong);
         return succeed();
     }

+ 1 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/SysConfigController.java

@@ -40,8 +40,7 @@ public class SysConfigController extends BaseController {
 		Map<String,Object> params = new HashMap<String, Object>();
 		params.put("group", group);
 		params.put("tenantId", tenantId);
-		List<SysConfig> configs = sysConfigService.findAll(params);
-		return succeed(configs);
+		return succeed(sysConfigService.findAll(params));
 	}
 
 	@ApiOperation(value = "修改参数")

+ 4 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/TeacherController.java

@@ -5,6 +5,7 @@ import com.keao.edu.common.controller.BaseController;
 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.OrganContextHolder;
 import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.user.entity.Teacher;
 import com.keao.edu.user.page.TeacherQueryInfo;
@@ -33,9 +34,9 @@ public class TeacherController extends BaseController {
 	@GetMapping(value = "list")
     @PreAuthorize("@pcs.hasPermissions('teacher/list')")
 	public HttpResponseResult<PageInfo<Teacher>> list(TeacherQueryInfo queryInfo) {
-		if(queryInfo.getOrganId() != null){
+		/*if(queryInfo.getOrganId() != null){
 			queryInfo.setOrganIds(organizationService.getChildOrganIds(queryInfo.getOrganId(),true));
-		}
+		}*/
 		return succeed(teacherService.queryTeacherPage(queryInfo));
 	}
 
@@ -52,6 +53,7 @@ public class TeacherController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('teacher/add')")
 	public HttpResponseResult add(@RequestBody Teacher teacher) {
 		teacher.setTenantId(TenantContextHolder.getTenantId());
+		teacher.setOrganId(OrganContextHolder.getOrganId());
 		return succeed(teacherService.add(teacher));
 	}
 

+ 44 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/WebSocketController.java

@@ -0,0 +1,44 @@
+package com.keao.edu.user.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+
+@RestController
+@RequestMapping("/api/ws")
+public class WebSocketController {
+
+    /**
+     * 群发消息内容
+     * @param message
+     * @return
+     */
+    @RequestMapping(value="/sendAll", method= RequestMethod.GET)
+    public String sendAllMessage(@RequestParam(required=true) String message){
+        try {
+            WebSocketServer.BroadCastInfo(message);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return "ok";
+    }
+
+    /**
+     * 指定会话ID发消息
+     * @param message 消息内容
+     * @param id 连接会话ID
+     * @return
+     */
+    @RequestMapping(value="/sendOne", method=RequestMethod.GET)
+    public String sendOneMessage(@RequestParam(required=true) String message,@RequestParam(required=true) String id){
+        try {
+            WebSocketServer.SendMessage(message,id);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return "ok";
+    }
+}

+ 122 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/WebSocketServer.java

@@ -0,0 +1,122 @@
+package com.keao.edu.user.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import javax.websocket.*;
+import javax.websocket.server.ServerEndpoint;
+import java.io.IOException;
+import java.util.concurrent.CopyOnWriteArraySet;
+import java.util.concurrent.atomic.AtomicInteger;
+
+@ServerEndpoint(value = "/ws/asset")
+@Component
+public class WebSocketServer {
+
+    @PostConstruct
+    public void init() {
+        System.out.println("websocket 加载");
+    }
+    private static Logger log = LoggerFactory.getLogger(WebSocketServer.class);
+    private static final AtomicInteger OnlineCount = new AtomicInteger(0);
+    // concurrent包的线程安全Set,用来存放每个客户端对应的Session对象。
+    private static CopyOnWriteArraySet<Session> SessionSet = new CopyOnWriteArraySet<Session>();
+
+
+    /**
+     * 连接建立成功调用的方法
+     */
+    @OnOpen
+    public void onOpen(Session session) {
+        SessionSet.add(session);
+        int cnt = OnlineCount.incrementAndGet(); // 在线数加1
+        log.info("有连接加入,当前连接数为:{}", cnt);
+        SendMessage(session, "连接成功");
+    }
+
+    /**
+     * 连接关闭调用的方法
+     */
+    @OnClose
+    public void onClose(Session session) {
+        SessionSet.remove(session);
+        int cnt = OnlineCount.decrementAndGet();
+        log.info("有连接关闭,当前连接数为:{}", cnt);
+    }
+
+    /**
+     * 收到客户端消息后调用的方法
+     *
+     * @param message
+     *            客户端发送过来的消息
+     */
+    @OnMessage
+    public void onMessage(String message, Session session) {
+        log.info("来自客户端的消息:{}",message);
+        SendMessage(session, "收到消息,消息内容:"+message);
+
+    }
+
+    /**
+     * 出现错误
+     * @param session
+     * @param error
+     */
+    @OnError
+    public void onError(Session session, Throwable error) {
+        log.error("发生错误:{},Session ID: {}",error.getMessage(),session.getId());
+        error.printStackTrace();
+    }
+
+    /**
+     * 发送消息,实践表明,每次浏览器刷新,session会发生变化。
+     * @param session
+     * @param message
+     */
+    public static void SendMessage(Session session, String message) {
+        try {
+            session.getBasicRemote().sendText(String.format("%s (From Server,Session ID=%s)",message,session.getId()));
+        } catch (IOException e) {
+            log.error("发送消息出错:{}", e.getMessage());
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 群发消息
+     * @param message
+     * @throws IOException
+     */
+    public static void BroadCastInfo(String message) throws IOException {
+        for (Session session : SessionSet) {
+            if(session.isOpen()){
+                SendMessage(session, message);
+            }
+        }
+    }
+
+    /**
+     * 指定Session发送消息
+     * @param sessionId
+     * @param message
+     * @throws IOException
+     */
+    public static void SendMessage(String message,String sessionId) throws IOException {
+        Session session = null;
+        for (Session s : SessionSet) {
+            if(s.getId().equals(sessionId)){
+                session = s;
+                break;
+            }
+        }
+        if(session!=null){
+            SendMessage(session, message);
+        }
+        else{
+            log.warn("没有找到你指定ID的会话:{}",sessionId);
+        }
+    }
+
+}

+ 4 - 4
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/SysUserDao.java

@@ -57,20 +57,20 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 	 * @param id
 	 * @param roles
 	 */
-	void batchAddEmployeeRole(@Param("userId") Integer id, @Param("roles") Set<Integer> roles);
+	void batchAddEmployeeRole(@Param("userId") Integer id, @Param("roles") Integer roles);
 	/**
 	 * 批量新增用户角色
 	 * @param userIds
 	 * @param roles
 	 */
-	void batchAddEmployeeRoles(@Param("userIds") List<Integer> userIds, @Param("roles") Set<Integer> roles);
+	void batchAddEmployeeRoles(@Param("userIds") List<Integer> userIds, @Param("roles") Integer roles);
 
 	/**
-	 * 获取用户角色列表
+	 * 获取用户角色
 	 * @param userId
 	 * @return
 	 */
-    Set<Integer> queryRoleIds(Integer userId);
+	Integer queryRoleIds(Integer userId);
 
 	/**
 	 * 修改userType

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

@@ -11,6 +11,7 @@ import java.util.Map;
 public interface TenantInfoDao extends BaseDAO<Integer, TenantInfo> {
 
     List<TenantInfoDto> queryTenants(Map<String, Object> params);
+
     int countTenants(Map<String, Object> params);
 
     /**

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

@@ -8,15 +8,15 @@ import com.keao.edu.user.entity.TenantInfo;
  */
 public class TenantInfoDto extends TenantInfo {
 
-    private String roleIds;
+    private Integer roleIds;
 
     private String roleNames;
 
-    public String getRoleIds() {
+    public Integer getRoleIds() {
         return roleIds;
     }
 
-    public void setRoleIds(String roleIds) {
+    public void setRoleIds(Integer roleIds) {
         this.roleIds = roleIds;
     }
 

+ 22 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExamOrganizationRelation.java

@@ -32,9 +32,15 @@ public class ExamOrganizationRelation {
 	@ApiModelProperty(value = "总报名人数")
 	private Integer totalRegistrationStudentNum;
 
+	@ApiModelProperty(value = "本单位报名学生数")
+	private Integer selfRegistrationStudentNum;
+
 	@ApiModelProperty(value = "总缴费金额")
 	private BigDecimal totalPaymentAmount;
 
+	@ApiModelProperty(value = "本单位缴费金额")
+	private BigDecimal selfPaymentAmount;
+
 	@ApiModelProperty(value = "总交易金额")
 	private BigDecimal totalTransAmount;
 
@@ -77,6 +83,22 @@ public class ExamOrganizationRelation {
 		return this.examinationBasicId;
 	}
 
+	public Integer getSelfRegistrationStudentNum() {
+		return selfRegistrationStudentNum;
+	}
+
+	public void setSelfRegistrationStudentNum(Integer selfRegistrationStudentNum) {
+		this.selfRegistrationStudentNum = selfRegistrationStudentNum;
+	}
+
+	public BigDecimal getSelfPaymentAmount() {
+		return selfPaymentAmount;
+	}
+
+	public void setSelfPaymentAmount(BigDecimal selfPaymentAmount) {
+		this.selfPaymentAmount = selfPaymentAmount;
+	}
+
 	public Integer getTotalRegistrationStudentNum() {
 		return totalRegistrationStudentNum;
 	}

+ 10 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/Teacher.java

@@ -53,6 +53,16 @@ public class Teacher {
 
 	private String subjectName;
 
+	private Integer organId;
+
+	public Integer getOrganId() {
+		return organId;
+	}
+
+	public void setOrganId(Integer organId) {
+		this.organId = organId;
+	}
+
 	public String getSubjectName() {
 		return subjectName;
 	}

+ 8 - 8
edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamRegistrationQueryInfo.java

@@ -10,8 +10,8 @@ import io.swagger.annotations.ApiModelProperty;
  */
 public class ExamRegistrationQueryInfo extends QueryInfo {
 
-    @ApiModelProperty(value = "合作单位编号")
-    private Integer organId;
+//    @ApiModelProperty(value = "合作单位编号")
+//    private Integer organId;
 
     @ApiModelProperty(value = "考试报名编号")
     private Integer examRegistrationId;
@@ -53,13 +53,13 @@ public class ExamRegistrationQueryInfo extends QueryInfo {
         this.studentId = studentId;
     }
 
-    public Integer getOrganId() {
-        return organId;
-    }
+//    public Integer getOrganId() {
+//        return organId;
+//    }
 
-    public void setOrganId(Integer organId) {
-        this.organId = organId;
-    }
+//    public void setOrganId(Integer organId) {
+//        this.organId = organId;
+//    }
 
     public Integer getExamId() {
         return examId;

+ 11 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamReviewQueryInfo.java

@@ -49,6 +49,9 @@ public class ExamReviewQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "考试时间")
     private String examStartTime;
 
+    @ApiModelProperty(value = "考试结束时间")
+    private String examEndTime;
+
     public Long getRegistId() {
         return registId;
     }
@@ -160,4 +163,12 @@ public class ExamReviewQueryInfo extends QueryInfo {
     public void setStudentStatus(StudentRegistrationStatusEnum studentStatus) {
         this.studentStatus = studentStatus;
     }
+
+    public String getExamEndTime() {
+        return examEndTime;
+    }
+
+    public void setExamEndTime(String examEndTime) {
+        this.examEndTime = examEndTime;
+    }
 }

+ 0 - 10
edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExaminationQueryInfo.java

@@ -11,16 +11,6 @@ public class ExaminationQueryInfo extends QueryInfo {
 
     private ExamStatusEnum examStatus;
 
-    private Integer organId;
-
-    public Integer getOrganId() {
-        return organId;
-    }
-
-    public void setOrganId(Integer organId) {
-        this.organId = organId;
-    }
-
     public ExamStatusEnum getExamStatus() {
         return examStatus;
     }

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

@@ -81,7 +81,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
 				}else {
 					sysUser.setUserType(sysUser1.getUserType() + ",SYSTEM");
 				}
-				if(sysUser.getRoles() != null && sysUser.getRoles().size() > 0){
+				if(sysUser.getRoles() != null){
 					sysUserDao.batchAddEmployeeRole(sysUser1.getId(),sysUser.getRoles());
 				}
 				sysUser.setId(sysUser1.getId());
@@ -131,7 +131,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
 			List<Integer> userIds = childOrgans.stream().map(e -> e.getUserId()).collect(Collectors.toList());
 
 			sysUserDao.batchDelEmployeeRole(userIds);
-			if(sysUser.getRoles() != null && sysUser.getRoles().size() > 0){
+			if(sysUser.getRoles() != null){
 				sysUserDao.batchAddEmployeeRoles(userIds,sysUser.getRoles());
 			}
 		}else {
@@ -169,7 +169,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
 	public Employee getEmployee(Integer id) {
 		Employee employee = employeeDao.get(id);
 		SysUser sysUser = employee.getSysUser();
-		Set<Integer> roleIds = sysUserDao.queryRoleIds(sysUser.getId());
+        Integer roleIds = sysUserDao.queryRoleIds(sysUser.getId());
 		sysUser.setRoles(roleIds);
 		return employee;
 	}

+ 6 - 3
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java

@@ -163,8 +163,11 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
 
-        List<Integer> nextLevelOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
-        params.put("organIds", nextLevelOrganIds);
+        if(Objects.nonNull(queryInfo.getExamId())){
+            List<Integer> nextLevelOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
+            params.put("organIds", nextLevelOrganIds);
+            params.put("organId", null);
+        }
 
         List<ExamRegistrationRoomDto> dataList = Collections.EMPTY_LIST;
         int count = examRegistrationDao.countExamRegist(params);
@@ -173,7 +176,7 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
             params.put("offset", pageInfo.getOffset());
             dataList = examRegistrationDao.queryExamRegist(params);
             List<Long> examIds = dataList.stream().filter(e -> Objects.nonNull(e.getOrganId())).map(ExamRegistration::getExaminationBasicId).collect(Collectors.toList());
-            Map<Integer, String> examIdNameMap = this.getMap("examination_basic", "id_", "name_", examIds, Integer.class, String.class);
+            Map<Long, String> examIdNameMap = this.getMap("examination_basic", "id_", "name_", examIds, Long.class, String.class);
 
             List<Integer> organIds = dataList.stream().filter(e -> Objects.nonNull(e.getOrganId())).map(ExamRegistration::getOrganId).collect(Collectors.toList());
             Map<Integer, String> organIdNameMap = this.getMap("organization", "id_", "name_", organIds, Integer.class, String.class);

+ 26 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamSubjectSongServiceImpl.java

@@ -60,7 +60,8 @@ public class ExamSubjectSongServiceImpl extends BaseServiceImpl<Long, ExamSubjec
 		if(Objects.isNull(examinationBasic)){
 			throw new BizException("考级项目不存在");
 		}
-		if(!ExamStatusEnum.SETTING.equals(examinationBasic.getStatus())){
+		if(!ExamStatusEnum.SETTING.equals(examinationBasic.getStatus())
+			&&!ExamStatusEnum.NOT_START.equals(examinationBasic.getStatus())){
 			throw new BizException("此状态考级项目不支持添加考级内容");
 		}
 
@@ -160,7 +161,10 @@ public class ExamSubjectSongServiceImpl extends BaseServiceImpl<Long, ExamSubjec
 						List<String> songNames=new ArrayList<>();
 						for (String s : examSubjectSongDto.getPerformSongIdList().split(",")) {
 							if(examSongIds.contains(Integer.valueOf(s))){
-								songNames.add(idExamSongMap.get(Integer.valueOf(s)).getSongName());
+								ExamSong examSong = idExamSongMap.get(Integer.valueOf(s));
+								if(Objects.nonNull(examSong)){
+									songNames.add(examSong.getSongName());
+								}
 							}
 						}
 						examSubjectSongDto.setPerformSongNames(StringUtils.join(songNames, ","));
@@ -173,6 +177,26 @@ public class ExamSubjectSongServiceImpl extends BaseServiceImpl<Long, ExamSubjec
 	}
 
 	@Override
+	public int delete(Long id) {
+		if(Objects.isNull(id)){
+			throw new BizException("参数错误");
+		}
+		ExamSubjectSong examSubjectSong = examSubjectSongDao.get(id);
+		if(Objects.isNull(examSubjectSong)){
+			throw new BizException("数据错误");
+		}
+		ExaminationBasic examinationBasic = examinationBasicDao.get(examSubjectSong.getExaminationBasicId().longValue());
+		if(Objects.isNull(examinationBasic)){
+			throw new BizException("考级项目不存在");
+		}
+		if(!ExamStatusEnum.SETTING.equals(examinationBasic.getStatus())
+			&&!ExamStatusEnum.NOT_START.equals(examinationBasic.getStatus())){
+			throw new BizException("此状态无法删除");
+		}
+		return super.delete(id);
+	}
+
+	@Override
     public List<ExamSong> getExamSubjectSong(Integer examinationBasicId,Long examSubjectId, Integer level) {
 		List<ExamSong> examSongs = new ArrayList<>();
 		ExamSubjectSong examSubjectSong = examSubjectSongDao.getExamSubjectSong(examinationBasicId,examSubjectId, level);

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

@@ -20,6 +20,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
@@ -91,6 +92,8 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         examinationBasic.setStatus(ExamStatusEnum.SETTING);
         examinationBasicDao.insert(examinationBasic);
 
+        examOrganizationRelationService.addExamOrganizations(examinationBasic.getId(),examinationBasic.getOrganId().toString());
+
         List<ExamMusicTheory> examMusicTheories = new ArrayList<>();
         for (MusicTheory musicTheory : musicTheories) {
             ExamMusicTheory emt = new ExamMusicTheory();
@@ -128,6 +131,7 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void updateExamBasicStatus(Long examId, ExamStatusEnum statusEnum) {
         if(Objects.isNull(examId)){
             throw new BizException("请指定考级项目");
@@ -139,9 +143,6 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         if(ExamStatusEnum.RESULT_CONFIRM.equals(existsExam.getStatus())){
             throw new BizException("考级项目结果已确认");
         }
-        if(ExamStatusEnum.SETTING.equals(existsExam.getStatus())&&ExamStatusEnum.NOT_START.equals(statusEnum)){
-            examOrganizationRelationService.addExamOrganizations(existsExam.getId(),existsExam.getOrganId().toString());
-        }
         existsExam.setStatus(statusEnum);
         examinationBasicDao.update(existsExam);
     }
@@ -152,9 +153,6 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
 
-        List<Integer> childOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
-        params.put("organIds", childOrganIds);
-
         List<ExaminationBasicDto> dataList = new ArrayList<>();
         int count = examinationBasicDao.countExaminationBasics(params);
         if (count > 0) {
@@ -186,6 +184,7 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
     public ExaminationBasicDto getExaminationBasic(Integer examId) {
         if (Objects.isNull(examId)) {
             throw new BizException("请指定考级项目");
@@ -240,6 +239,10 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
 
         List<Integer> childOrganIds = organizationService.getChildOrganIds(organId, true);
 
+        if(Objects.nonNull(childOrganIds)&&!childOrganIds.contains(examinationBasic.getOrganId())){
+            throw new BizException("删除失败");
+        }
+
         if (StringUtils.isBlank(reason)) {
             reason = "后台手动关闭";
         }

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

@@ -87,7 +87,7 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 				organ.setUserId(user.getId());
 				organDao.insert(organ);
 				//新增用户角色
-				if(sysUser.getRoles() != null && sysUser.getRoles().size() > 0){
+				if(sysUser.getRoles() != null){
 					sysUserDao.batchAddEmployeeRole(user.getId(),sysUser.getRoles());
 				}
 				if(!user.getUserType().contains("SYSTEM")){
@@ -105,7 +105,7 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 				}
 				sysUser.setId(sysUser1.getId());
 				sysUserDao.update(sysUser);
-				if(sysUser.getRoles() != null && sysUser.getRoles().size() > 0){
+				if(sysUser.getRoles() != null){
 					sysUserDao.batchAddEmployeeRole(sysUser.getId(),sysUser.getRoles());
 				}
 				Employee employee = employeeDao.get(sysUser.getId());
@@ -131,7 +131,7 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		organDao.insert(organ);
 		//新增用户角色
 		sysUserDao.delEmployeeRole(sysUser.getId());
-		if(sysUser.getRoles() != null && sysUser.getRoles().size() > 0){
+		if(sysUser.getRoles() != null){
 			sysUserDao.batchAddEmployeeRole(sysUser.getId(),sysUser.getRoles());
 		}
 		Employee employee = new Employee();
@@ -170,7 +170,7 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		List<Integer> userIds = childOrgans.stream().map(e -> e.getUserId()).collect(Collectors.toList());
 
 		sysUserDao.batchDelEmployeeRole(userIds);
-		if(sysUser.getRoles() != null && sysUser.getRoles().size() > 0){
+		if(sysUser.getRoles() != null){
 			sysUserDao.batchAddEmployeeRoles(userIds,sysUser.getRoles());
 		}
 
@@ -264,7 +264,7 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	public Organization getOrganization(Integer id) {
 		Organization organization = organDao.get(id);
 		SysUser sysUser = organization.getSysUser();
-		Set<Integer> roleIds = sysUserDao.queryRoleIds(organization.getUserId());
+		Integer roleIds = sysUserDao.queryRoleIds(organization.getUserId());
 		sysUser.setRoles(roleIds);
 		return organization;
 	}

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

@@ -69,9 +69,9 @@ public class TenantInfoServiceImpl extends BaseServiceImpl<Integer, TenantInfo>
 		sysUser.setAvatar(tenantInfo.getLogoUrl());
 		sysUser.setPhone(tenantInfo.getContactPhone());
 		sysUserDao.insert(sysUser);
-		if(StringUtils.isNotBlank(tenantInfo.getRoleIds())){
-			Set<Integer> roleIds = Arrays.stream(tenantInfo.getRoleIds().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toSet());
-			sysUserDao.batchAddEmployeeRole(sysUser.getId(), roleIds);
+		if(tenantInfo.getRoleIds() != null){
+//			Set<Integer> roleIds = Arrays.stream(tenantInfo.getRoleIds().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toSet());
+			sysUserDao.batchAddEmployeeRole(sysUser.getId(), tenantInfo.getRoleIds());
 		}
 
 		Organization organ=new Organization();
@@ -109,13 +109,13 @@ public class TenantInfoServiceImpl extends BaseServiceImpl<Integer, TenantInfo>
 		if(Objects.isNull(sysUser)){
 			throw new BizException("机构账户不存在");
 		}
-		if(StringUtils.isNotBlank(newTenantInfo.getRoleIds())){
+		if(newTenantInfo.getRoleIds() != null){
 
-			Set<Integer> roleIds = Arrays.stream(newTenantInfo.getRoleIds().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toSet());
+//			Set<Integer> roleIds = Arrays.stream(newTenantInfo.getRoleIds().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toSet());
 			//删除当前用户角色
 			sysUserDao.delEmployeeRole(sysUser.getId());
 			//新增用户角色
-			sysUserDao.batchAddEmployeeRole(sysUser.getId(),roleIds);
+			sysUserDao.batchAddEmployeeRole(sysUser.getId(),newTenantInfo.getRoleIds());
 		}
 		if(StringUtils.isNotBlank(newTenantInfo.getContactName())){
 			sysUser.setRealName(newTenantInfo.getContactName());

+ 1 - 8
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamLocationMapper.xml

@@ -12,7 +12,6 @@
 		<result column="contact_name_" property="contactName" />
 		<result column="contact_phone_" property="contactPhone" />
 		<result column="address_" property="address" />
-		<result column="is_available_" property="isAvailable" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 		<result column="tenant_id_" property="tenantId" />
@@ -44,9 +43,6 @@
 			<if test="isAvailable != null">
 				is_available_ = #{isAvailable},
 			</if>
-			<if test="id != null">
-				id_ = #{id},
-			</if>
 			<if test="contactPhone != null">
 				contact_phone_ = #{contactPhone},
 			</if>
@@ -59,9 +55,6 @@
 			<if test="delFlag!=null">
 				del_flag_=#{delFlag},
 			</if>
-			<if test="createTime != null">
-				create_time_ = #{createTime},
-			</if>
 			<if test="tenantId != null">
 				tenant_id_ = #{tenantId},
 			</if>
@@ -83,7 +76,7 @@
 			<if test="search!=null">
 				AND (id_=#{search} OR name_ LIKE CONCAT('%', #{serch}, '%'))
 			</if>
-			<if test="tenantId != null and tenantId != 0">
+			<if test="tenantId != null">
 				AND tenant_id_ = #{tenantId}
 			</if>
 		</where>

+ 26 - 6
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamOrganizationRelationMapper.xml

@@ -12,6 +12,8 @@
 		<result column="organ_id_" property="organId" />
 		<result column="settlement_type_" property="settlementType" typeHandler="com.keao.edu.common.dal.CustomEnumTypeHandler" />
 		<result column="share_profit_amount_" property="shareProfitAmount" />
+		<result column="self_registration_student_num_" property="selfRegistrationStudentNum" />
+		<result column="self_payment_amount_" property="selfPaymentAmount" />
 		<result column="total_registration_student_num_" property="totalRegistrationStudentNum"/>
 		<result column="total_payment_amount_" property="totalPaymentAmount"/>
 		<result column="total_trans_amount_" property="totalTransAmount" />
@@ -39,24 +41,30 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.keao.edu.user.entity.ExamOrganizationRelation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO exam_organization_relation (examination_basic_id_,organ_id_,settlement_type_,share_profit_amount_,total_registration_student_num_,
-		total_payment_amount_,url_,send_url_flag_,is_allow_arrange_exam_,total_trans_amount_,
+		INSERT INTO exam_organization_relation (examination_basic_id_,organ_id_,settlement_type_,share_profit_amount_,
+		self_registration_student_num_,self_payment_amount_,total_registration_student_num_,total_payment_amount_,
+		url_,send_url_flag_,is_allow_arrange_exam_,total_trans_amount_,
 		create_time_,update_time_,tenant_id_)
 		VALUES(#{examinationBasicId},#{organId},#{settlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{shareProfitAmount},
-		#{totalRegistrationStudentNum},#{totalPaymentAmount},#{url},#{sendUrlFlag,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
+		#{selfRegistrationStudentNum},#{selfPaymentAmount},#{totalRegistrationStudentNum},#{totalPaymentAmount},
+		#{url},#{sendUrlFlag,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
 		#{isAllowArrangeExam,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},totalTransAmount,
 		NOW(),NOW(),#{tenantId})
 	</insert>
 
     <insert id="batchInsert" parameterType="com.keao.edu.user.entity.ExamOrganizationRelation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO exam_organization_relation (examination_basic_id_,organ_id_,settlement_type_,share_profit_amount_,total_registration_student_num_,
-		total_payment_amount_,url_,send_url_flag_,is_allow_arrange_exam_,total_trans_amount_,
+		INSERT INTO exam_organization_relation (examination_basic_id_,organ_id_,settlement_type_,share_profit_amount_,
+		self_registration_student_num_,self_payment_amount_,total_registration_student_num_,total_payment_amount_,
+		url_,send_url_flag_,is_allow_arrange_exam_,total_trans_amount_,
 		create_time_,update_time_,tenant_id_)
 		VALUES
 		<foreach collection="examOrganizationRelations" item="examOrganizationRelation" separator=",">
 			(#{examOrganizationRelation.examinationBasicId},#{examOrganizationRelation.organId},
 			#{examOrganizationRelation.settlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
-			#{examOrganizationRelation.shareProfitAmount},#{examOrganizationRelation.totalRegistrationStudentNum},
+			#{examOrganizationRelation.shareProfitAmount},
+			#{examOrganizationRelation.selfRegistrationStudentNum},
+			#{examOrganizationRelation.selfPaymentAmount},
+			#{examOrganizationRelation.totalRegistrationStudentNum},
 			#{examOrganizationRelation.totalPaymentAmount},#{examOrganizationRelation.url},
 			#{examOrganizationRelation.sendUrlFlag,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
 			#{examOrganizationRelation.isAllowArrangeExam,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
@@ -87,6 +95,12 @@
 			<if test="shareProfitAmount != null">
 				share_profit_amount_ = #{shareProfitAmount},
 			</if>
+			<if test="selfRegistrationStudentNum != null">
+				self_registration_student_num_ = #{selfRegistrationStudentNum},
+			</if>
+			<if test="selfPaymentAmount != null">
+				self_payment_amount_ = #{selfPaymentAmount},
+			</if>
 			<if test="totalRegistrationStudentNum != null">
 				total_registration_student_num_ = #{totalRegistrationStudentNum},
 			</if>
@@ -128,6 +142,12 @@
 				<if test="eo.shareProfitAmount != null">
 					share_profit_amount_ = #{eo.shareProfitAmount},
 				</if>
+				<if test="eo.selfRegistrationStudentNum != null">
+					self_registration_student_num_ = #{eo.selfRegistrationStudentNum},
+				</if>
+				<if test="eo.selfPaymentAmount != null">
+					self_payment_amount_ = #{eo.selfPaymentAmount},
+				</if>
 				<if test="eo.totalRegistrationStudentNum != null">
 					total_registration_student_num_ = #{eo.totalRegistrationStudentNum},
 				</if>

+ 9 - 2
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml

@@ -138,10 +138,16 @@
 
 	<sql id="queryCondition">
 		<where>
+			<if test="organIds!=null">
+				AND er.organ_id_ IN
+				<foreach collection="organIds" item="organId" separator="," open="(" close=")">
+					#{organId}
+				</foreach>
+			</if>
 			<if test="examId!=null">
 				AND er.examination_basic_id_ = #{examId}
 			</if>
-			<if test="organId!=null">
+			<if test="organId != null">
 				AND er.organ_id_ = #{organId}
 			</if>
 			<if test="subjectId!=null">
@@ -237,6 +243,7 @@
 			er.last_music_theory_certificate_url_,
 			er.level_fee_,
 			er.theory_level_fee_,
+			er.song_json_,
 			er.organ_id_,
 			er.subject_id_,
 			er.level_,
@@ -253,7 +260,7 @@
 			LEFT JOIN exam_room_student_relation ersr ON ersr.exam_registration_id_ = er.id_
 			LEFT JOIN exam_room ero ON ero.id_ = ersr.exam_room_id_
 		<include refid="queryCondition"/>
-		ORDER BY er.id_
+		ORDER BY er.id_ DESC
 		<include refid="global.limit"/>
 	</select>
 

+ 5 - 4
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamReviewMapper.xml

@@ -114,7 +114,7 @@
 				AND er.exam_registration_id_=#{registId}
 			</if>
 			<if test="examinationBaseId!=null">
-				AND ere.examination_basic_id_ = #{examinationBaseId}
+				AND er.examination_basic_id_ = #{examinationBaseId}
 			</if>
 			<if test="cardNo!=null">
 				AND ere.card_no_=#{cardNo}
@@ -134,11 +134,11 @@
 			<if test="teacherType!=null">
 				AND er.teacher_type_=#{teacherType}
 			</if>
-			<if test="examStartTime!=null">
-				AND DATE_FORMAT( ero.exam_start_time_, '%Y-%m-%d' ) = #{examStartTime}
+			<if test="examStartTime!=null and examEndTime!=null">
+				AND DATE_FORMAT( ero.exam_start_time_, '%Y-%m-%d' ) BETWEEN  #{examStartTime} AND #{examEndTime}
 			</if>
 			<if test="search!=null and search!=''">
-				AND er.real_name_ LIKE CONCAT(#{search}, '%')
+				AND su.real_name_ LIKE CONCAT(#{search}, '%')
 			</if>
 		</where>
 	</sql>
@@ -168,6 +168,7 @@
 		FROM
 			exam_review er
 			LEFT JOIN exam_registration ere ON ere.id_=er.exam_registration_id_
+			LEFT JOIN exam_room ero ON ero.id_=er.exam_room_id_
 			LEFT JOIN sys_user su ON su.id_=er.teacher_id_
 		<include refid="findExamResultCondition"/>
 	</select>

+ 1 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamSongMapper.xml

@@ -76,7 +76,7 @@
 	<sql id="queryCondition">
 		<where>
 			es.del_flag_ = 0
-			<if test="tenantId != null and tenantId != 0">
+			<if test="tenantId != null">
 				AND es.tenant_id_ = #{tenantId}
 			</if>
 			<if test="subjectList!=null">

+ 0 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamSubjectSongMapper.xml

@@ -101,7 +101,6 @@
 
 	<sql id="queryCondition">
 		<where>
-			ess.tenant_id_ = #{tenantId}
 			<if test="examId!=null">
 				AND ess.examination_basic_id_ = #{examId}
 			</if>

+ 24 - 4
edu-user/edu-user-server/src/main/resources/config/mybatis/ExaminationBasicMapper.xml

@@ -211,16 +211,36 @@
 		<include refid="queryCondition"/>
 	</select>
 
+	<sql id="findExaminationBasicsCondition">
+		<where>
+			<if test="organId!=null">
+				AND eor.organ_id_ = #{organId}
+			</if>
+			<if test="examStatus!=null">
+				AND eb.status_=#{examStatus}
+			</if>
+			<if test="search!=null">
+				AND (eb.id_=#{search} OR eb.name_ LIKE CONCAT(#{search}, '%'))
+			</if>
+		</where>
+	</sql>
+
 	<select id="findExaminationBasics" resultMap="ExaminationBasicDto" parameterType="map">
-		SELECT * FROM examination_basic
-		<include refid="queryCondition"/>
+		SELECT eb.*
+		FROM
+			exam_organization_relation eor
+		LEFT JOIN examination_basic eb ON eor.examination_basic_id_ = eb.id_
+		<include refid="findExaminationBasicsCondition"/>
 		ORDER BY id_ DESC
 		<include refid="global.limit"/>
 	</select>
 
 	<select id="countExaminationBasics" resultType="int">
-		SELECT COUNT(*) FROM examination_basic
-		<include refid="queryCondition"/>
+		SELECT COUNT(eb.id_)
+		FROM
+			exam_organization_relation eor
+		LEFT JOIN examination_basic eb ON eor.examination_basic_id_ = eb.id_
+		<include refid="findExaminationBasicsCondition"/>
 	</select>
 
     <select id="getNeedUpdateStatusExams" resultMap="ExaminationBasic">

+ 1 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/MusicTheoryMapper.xml

@@ -68,7 +68,7 @@
 
 	<sql id="queryCondition">
 		<where>
-			<if test="tenantId != null and tenantId != 0">
+			<if test="tenantId != null">
 				tenant_id_ = #{tenantId}
 			</if>
 		</where>

+ 1 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/SubjectMapper.xml

@@ -108,7 +108,7 @@
 
     <sql id="querySubPageSql">
         <where>
-            <if test="tenantId != null and tenantId != 0">
+            <if test="tenantId != null">
                 AND s.tenant_id_ = #{tenantId}
             </if>
             <if test="parentId != null">

+ 3 - 9
edu-user/edu-user-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -189,21 +189,15 @@
     <select id="queryRoleIds" resultType="java.lang.Integer">
         SELECT sur.role_id_ FROM employee e
 		LEFT JOIN sys_user_role sur ON e.user_id_ = sur.user_id_
-		WHERE e.user_id_ = #{userId}
+		WHERE e.user_id_ = #{userId} LIMIT 1
     </select>
 
     <insert id="batchAddEmployeeRole">
-        INSERT INTO sys_user_role(user_id_,role_id_) values
-        <foreach collection="roles" item="item" index="index" separator=",">
-            (#{userId},#{item})
-        </foreach>
+        INSERT INTO sys_user_role(user_id_,role_id_) VALUES (#{userId},#{roles})
     </insert>
     <insert id="batchAddEmployeeRoles">
         <foreach collection="userIds" item="userId" separator=";">
-            INSERT INTO sys_user_role(user_id_,role_id_) values
-            <foreach collection="roles" item="item" index="index" separator=",">
-                (#{userId},#{item})
-            </foreach>
+            INSERT INTO sys_user_role(user_id_,role_id_) values VALUES (#{userId},#{roles})
         </foreach>
     </insert>
 

+ 8 - 7
edu-user/edu-user-server/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -19,6 +19,7 @@
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 		<result column="tenant_id_" property="tenantId" />
+		<result column="organ_id_" property="organId" />
 		<association property="sysUser" resultMap="com.keao.edu.user.dao.SysUserDao.SysUser"/>
 	</resultMap>
 
@@ -53,6 +54,9 @@
 			<if test="tenantId != null">
 				tenant_id_ = #{tenantId},
 			</if>
+			<if test="organId != null">
+				organ_id_ = #{organId},
+			</if>
 			<if test="totalInvigilationNum != null">
 				total_invigilation_num_ = #{totalInvigilationNum},
 			</if>
@@ -75,8 +79,8 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.keao.edu.user.entity.Teacher" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO teacher (user_id_,title_,subject_id_list_,salary_settlement_type_,salary_,create_time_,update_time_,tenant_id_)
-		VALUES(#{userId},#{title},#{subjectIdList},#{salarySettlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{salary},NOW(),NOW(),#{tenantId})
+		INSERT INTO teacher (user_id_,title_,subject_id_list_,salary_settlement_type_,salary_,create_time_,update_time_,tenant_id_,organ_id_)
+		VALUES(#{userId},#{title},#{subjectIdList},#{salarySettlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{salary},NOW(),NOW(),#{tenantId},#{organId})
 	</insert>
 
 	<update id="delete">
@@ -93,11 +97,8 @@
 			<if test="tenantId != null and tenantId != 0">
 				AND t.tenant_id_ = #{tenantId}
 			</if>
-			<if test="organIds != null">
-				AND t.organ_id_ IN
-				<foreach collection="organIds" item="organId" separator="," open="(" close=")">
-					#{organId}
-				</foreach>
+			<if test="organId != null">
+				AND t.organ_id_ = #{organId}
 			</if>
 			<if test="settlementType != null and settlementType != ''">
 				AND t.salary_settlement_type_ = #{settlementType}

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

@@ -102,8 +102,8 @@
 	<select id="queryTenants" resultMap="TenantInfoDto" parameterType="map">
 		SELECT
 			ti.*,
-			GROUP_CONCAT(sr.id_) role_ids_,
-			GROUP_CONCAT(sr.role_name_) role_names_
+			GROUP_CONCAT(DISTINCT sr.id_) role_ids_,
+			GROUP_CONCAT(DISTINCT 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_