浏览代码

Merge branch 'dev' of ssh://10.10.100.21/source/smartschool-platform into dev

guq 6 年之前
父节点
当前提交
04ec9b49a9
共有 39 个文件被更改,包括 2011 次插入62 次删除
  1. 155 0
      applications/school/school-dto/src/main/java/com/usoftchina/smartschool/school/dto/CurriculumDTO.java
  2. 148 0
      applications/school/school-dto/src/main/java/com/usoftchina/smartschool/school/dto/CurriculumDetailDTO.java
  3. 31 0
      applications/school/school-dto/src/main/java/com/usoftchina/smartschool/school/dto/CurriculumFormDTO.java
  4. 153 0
      applications/school/school-dto/src/main/java/com/usoftchina/smartschool/school/dto/CurriculumListDTO.java
  5. 6 4
      applications/school/school-server/pom.xml
  6. 9 1
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/SchoolApplication.java
  7. 60 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/controller/CurriculumController.java
  8. 55 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/CurriculumService.java
  9. 260 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/CurriculumServiceImpl.java
  10. 84 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/controller/MessageLogController.java
  11. 20 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/service/MessageLogService.java
  12. 93 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/service/impl/MessageLogServiceImpl.java
  13. 59 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/interceptor/AuthRestInterceptor.java
  14. 85 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/CurriculumMapper.java
  15. 24 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/MessagelogMapper.java
  16. 3 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysClazzMapper.java
  17. 93 12
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/Messagelog.java
  18. 49 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/Operation.java
  19. 12 12
      applications/school/school-server/src/main/resources/application.yml
  20. 239 0
      applications/school/school-server/src/main/resources/mapper/CurriculumMapper.xml
  21. 180 0
      applications/school/school-server/src/main/resources/mapper/MessagelogMapper.xml
  22. 4 0
      applications/school/school-server/src/main/resources/mapper/SysClazzMapper.xml
  23. 71 0
      applications/school/school-server/src/test/java/com/usoftchina/smartschool/school/service/CurriculumServiceTest.java
  24. 3 0
      base-servers/account/account-api/src/main/java/com/usoftchina/smartschool/account/api/AccountApi.java
  25. 9 0
      base-servers/account/account-dto/src/main/java/com/usoftchina/smartschool/account/dto/AccountDTO.java
  26. 12 1
      base-servers/account/account-server/src/main/java/com/usoftchina/smartschool/account/controller/AccountController.java
  27. 7 0
      base-servers/account/account-server/src/main/java/com/usoftchina/smartschool/account/mapper/AccountMapper.java
  28. 7 0
      base-servers/account/account-server/src/main/java/com/usoftchina/smartschool/account/service/AccountService.java
  29. 5 0
      base-servers/account/account-server/src/main/java/com/usoftchina/smartschool/account/service/impl/AccountServiceImpl.java
  30. 4 0
      base-servers/account/account-server/src/main/resources/mapper/AccountMapper.xml
  31. 0 4
      base-servers/auth/auth-dto/pom.xml
  32. 4 1
      base-servers/auth/auth-dto/src/main/java/com/usoftchina/smartschool/auth/jwt/JwtHelper.java
  33. 11 1
      base-servers/auth/auth-dto/src/main/java/com/usoftchina/smartschool/auth/jwt/JwtInfo.java
  34. 0 4
      base-servers/auth/auth-server/pom.xml
  35. 4 1
      base-servers/auth/auth-server/src/main/java/com/usoftchina/smartschool/auth/controller/AuthController.java
  36. 15 15
      base-servers/auth/auth-server/src/main/resources/application.yml
  37. 1 1
      base-servers/gateway-server/src/main/java/com/usoftchina/smartschool/gateway/config/AuthFilter.java
  38. 4 4
      base-servers/gateway-server/src/main/java/com/usoftchina/smartschool/gateway/interceptor/ServiceFeignInterceptor.java
  39. 32 1
      framework/test-starter/pom.xml

+ 155 - 0
applications/school/school-dto/src/main/java/com/usoftchina/smartschool/school/dto/CurriculumDTO.java

@@ -0,0 +1,155 @@
+package com.usoftchina.smartschool.school.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 课程表主表DTO
+ * @Author chenwei
+ * @Date 2019/02/15
+ */
+public class CurriculumDTO implements Serializable {
+
+    /**
+     * id
+     */
+    private Long id;
+    /**
+     * 编号
+     */
+    private String code;
+    /**
+     * 学期名称
+     */
+    private String termName;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 学期开始日期
+     */
+    private Date termStart;
+    /**
+     * 学期结束日期
+     */
+    private Date termEnd;
+    /**
+     * 周 数
+     */
+    private Long weekNum;
+    /**
+     * 创建人名称
+     */
+    private String creatorName;
+    /**
+     * 创建日期
+     */
+    private Date createTime;
+    /**
+     * 班级Id
+     */
+    private String clazzId;
+    /**
+     * 年级
+     */
+    private String gradeId;
+
+    public String getGradeId() {
+        return gradeId;
+    }
+
+    public void setGradeId(String gradeId) {
+        this.gradeId = gradeId;
+    }
+
+    private String status;
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getClazzId() {
+        return clazzId;
+    }
+
+    public void setClazzId(String clazzId) {
+        this.clazzId = clazzId;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getTermName() {
+        return termName;
+    }
+
+    public void setTermName(String termName) {
+        this.termName = termName;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Date getTermStart() {
+        return termStart;
+    }
+
+    public void setTermStart(Date termStart) {
+        this.termStart = termStart;
+    }
+
+    public Date getTermEnd() {
+        return termEnd;
+    }
+
+    public void setTermEnd(Date termEnd) {
+        this.termEnd = termEnd;
+    }
+
+    public Long getWeekNum() {
+        return weekNum;
+    }
+
+    public void setWeekNum(Long weekNum) {
+        this.weekNum = weekNum;
+    }
+
+    public String getCreatorName() {
+        return creatorName;
+    }
+
+    public void setCreatorName(String creatorName) {
+        this.creatorName = creatorName;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 148 - 0
applications/school/school-dto/src/main/java/com/usoftchina/smartschool/school/dto/CurriculumDetailDTO.java

@@ -0,0 +1,148 @@
+package com.usoftchina.smartschool.school.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 课程表明细DTO
+ * @Author chenwei
+ * @Date 2019/02/15
+ */
+public class CurriculumDetailDTO implements Serializable {
+
+    private Long id;
+    private int lessons;
+    private String mon;
+    private String tues;
+    private String wed;
+    private String thur;
+    private String fri;
+    private String sat;
+    private String startTime;
+    private String endTime;
+    private int status;
+    private String remarks;
+    private int clazzId;
+    private int schoolId;
+    private Long mId;
+
+    public Long getmId() {
+        return mId;
+    }
+
+    public void setmId(Long mId) {
+        this.mId = mId;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public int getLessons() {
+        return lessons;
+    }
+
+    public void setLessons(int lessons) {
+        this.lessons = lessons;
+    }
+
+    public String getMon() {
+        return mon;
+    }
+
+    public void setMon(String mon) {
+        this.mon = mon;
+    }
+
+    public String getTues() {
+        return tues;
+    }
+
+    public void setTues(String tues) {
+        this.tues = tues;
+    }
+
+    public String getWed() {
+        return wed;
+    }
+
+    public void setWed(String wed) {
+        this.wed = wed;
+    }
+
+    public String getThur() {
+        return thur;
+    }
+
+    public void setThur(String thur) {
+        this.thur = thur;
+    }
+
+    public String getFri() {
+        return fri;
+    }
+
+    public void setFri(String fri) {
+        this.fri = fri;
+    }
+
+    public String getSat() {
+        return sat;
+    }
+
+    public void setSat(String sat) {
+        this.sat = sat;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public int getClazzId() {
+        return clazzId;
+    }
+
+    public void setClazzId(int clazzId) {
+        this.clazzId = clazzId;
+    }
+
+    public int getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(int schoolId) {
+        this.schoolId = schoolId;
+    }
+}

+ 31 - 0
applications/school/school-dto/src/main/java/com/usoftchina/smartschool/school/dto/CurriculumFormDTO.java

@@ -0,0 +1,31 @@
+package com.usoftchina.smartschool.school.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description 课程表主从表数据
+ * @Author chenwei
+ * @Date 2019/02/15
+ */
+public class CurriculumFormDTO implements Serializable {
+
+    private CurriculumDTO main;
+    private List<CurriculumDetailDTO> items;
+
+    public CurriculumDTO getMain() {
+        return main;
+    }
+
+    public void setMain(CurriculumDTO main) {
+        this.main = main;
+    }
+
+    public List<CurriculumDetailDTO> getItems() {
+        return items;
+    }
+
+    public void setItems(List<CurriculumDetailDTO> items) {
+        this.items = items;
+    }
+}

+ 153 - 0
applications/school/school-dto/src/main/java/com/usoftchina/smartschool/school/dto/CurriculumListDTO.java

@@ -0,0 +1,153 @@
+package com.usoftchina.smartschool.school.dto;
+
+import java.io.Serializable;
+
+/**
+ * @Description 课程表列表DTO
+ * @Author chenwei
+ * @Date 2019/02/15
+ */
+public class CurriculumListDTO implements Serializable {
+
+    private String id;
+    /**
+     * 学校名称
+     */
+    private String schoolName;
+    /**
+     * 学校ID
+     */
+    private String schoolId;
+    /**
+     * 年级
+     */
+    private String gradeName;
+    /**
+     * 年级ID
+     */
+    private String gradeId;
+    /**
+     * 班级
+     */
+    private String clazzName;
+    /**
+     * 班级ID
+     */
+    private String clazzId;
+    /**
+     * 使用状态, 1:使用   2:草稿
+     */
+    private String status;
+    /**
+     * 学期名称
+     */
+    private String termName;
+    /**
+     * 课表名称
+     */
+    private String name;
+    /**
+     * 学期开始
+     */
+    private String termStart;
+    /**
+     * 学期结束
+     */
+    private String termEnd;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getTermName() {
+        return termName;
+    }
+
+    public void setTermName(String termName) {
+        this.termName = termName;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getTermStart() {
+        return termStart;
+    }
+
+    public void setTermStart(String termStart) {
+        this.termStart = termStart;
+    }
+
+    public String getTermEnd() {
+        return termEnd;
+    }
+
+    public void setTermEnd(String termEnd) {
+        this.termEnd = termEnd;
+    }
+
+    public String getSchoolName() {
+        return schoolName;
+    }
+
+    public void setSchoolName(String schoolName) {
+        this.schoolName = schoolName;
+    }
+
+    public String getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(String schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getGradeName() {
+        return gradeName;
+    }
+
+    public void setGradeName(String gradeName) {
+        this.gradeName = gradeName;
+    }
+
+    public String getGradeId() {
+        return gradeId;
+    }
+
+    public void setGradeId(String gradeId) {
+        this.gradeId = gradeId;
+    }
+
+    public String getClazzName() {
+        return clazzName;
+    }
+
+    public void setClazzName(String clazzName) {
+        this.clazzName = clazzName;
+    }
+
+    public String getClazzId() {
+        return clazzId;
+    }
+
+    public void setClazzId(String clazzId) {
+        this.clazzId = clazzId;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+}

+ 6 - 4
applications/school/school-server/pom.xml

@@ -44,10 +44,7 @@
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-zipkin</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.springframework.amqp</groupId>
-            <artifactId>spring-rabbit</artifactId>
-        </dependency>
+
         <dependency>
             <groupId>net.logstash.logback</groupId>
             <artifactId>logstash-logback-encoder</artifactId>
@@ -116,6 +113,11 @@
             <artifactId>json-lib</artifactId>
             <classifier>jdk15</classifier>
         </dependency>
+      <dependency>
+        <groupId>com.usoftchina.smartschool</groupId>
+        <artifactId>auth-dto</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+      </dependency>
     </dependencies>
 
     <build>

+ 9 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/SchoolApplication.java

@@ -1,13 +1,14 @@
 package com.usoftchina.smartschool.school;
 
+import com.usoftchina.smartschool.school.interceptor.AuthRestInterceptor;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.web.servlet.ServletComponentScan;
 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
-import org.springframework.context.annotation.ComponentScan;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 
 /**
@@ -23,6 +24,7 @@ public class SchoolApplication extends WebMvcConfigurerAdapter{
     public static void main(String[] args) {
         SpringApplication.run(SchoolApplication.class, args);
     }
+
     @Override
     public void addCorsMappings(CorsRegistry registry) {
 
@@ -32,4 +34,10 @@ public class SchoolApplication extends WebMvcConfigurerAdapter{
                 .allowedOrigins("*")
                 .allowedMethods("*");
     }
+
+    @Override
+    public void addInterceptors(InterceptorRegistry registry){
+        registry.addInterceptor(new AuthRestInterceptor()).addPathPatterns("/**");
+        super.addInterceptors(registry);
+    }
 }

+ 60 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/controller/CurriculumController.java

@@ -0,0 +1,60 @@
+package com.usoftchina.smartschool.school.basic.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.smartschool.base.Result;
+import com.usoftchina.smartschool.page.PageDefault;
+import com.usoftchina.smartschool.page.PageRequest;
+import com.usoftchina.smartschool.school.basic.service.CurriculumService;
+import com.usoftchina.smartschool.school.dto.CurriculumFormDTO;
+import com.usoftchina.smartschool.school.dto.CurriculumListDTO;
+import com.usoftchina.smartschool.school.dto.ListReqDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Description 课程表
+ * @Author chenwei
+ * @Date 2019/02/15
+ */
+@RestController
+@RequestMapping("/curriculum")
+public class CurriculumController {
+
+    @Autowired
+    private CurriculumService curriculumService;
+
+    @GetMapping("/list")
+    public Result list(@PageDefault PageRequest page, ListReqDTO listReqDTO){
+        PageInfo<CurriculumListDTO> pageInfo = curriculumService.selectAll(page, listReqDTO);
+        return Result.success(pageInfo);
+    }
+
+    @GetMapping("/read/{id}")
+    public Result read(@PathVariable("id") Long id){
+        return Result.success(curriculumService.read(id));
+    }
+
+    @PostMapping("/save")
+    public Result save(@RequestBody CurriculumFormDTO curriculumFormDTO){
+        return Result.success(curriculumService.save(curriculumFormDTO));
+    }
+
+    @PostMapping("/delete/{id}")
+    public Result delete(@PathVariable("id") Long id){
+        curriculumService.delete(id);
+        return Result.success();
+    }
+
+    @PostMapping("/deleteDetail/{id}")
+    public Result deleteDetail(@PathVariable("id") Long id){
+        curriculumService.deleteDetail(id);
+        return Result.success();
+    }
+
+    //导入保存至列表
+    @PostMapping("/saveToFormal")
+    public Result saveToFormal(Integer id, boolean update) {
+        curriculumService.saveToFormal(id, update);
+        return Result.success();
+    }
+}

+ 55 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/CurriculumService.java

@@ -0,0 +1,55 @@
+package com.usoftchina.smartschool.school.basic.service;
+
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.smartschool.page.PageRequest;
+import com.usoftchina.smartschool.school.dto.CurriculumFormDTO;
+import com.usoftchina.smartschool.school.dto.CurriculumListDTO;
+import com.usoftchina.smartschool.school.dto.DocBaseDTO;
+import com.usoftchina.smartschool.school.dto.ListReqDTO;
+
+/**
+ * @Author chenwei
+ * @Date 2019/02/15
+ */
+public interface CurriculumService {
+    /**
+     * 查询课表信息(列表)
+     * @param page
+     * @param listReqDTO
+     * @return
+     */
+    PageInfo<CurriculumListDTO> selectAll(PageRequest page, ListReqDTO listReqDTO);
+
+    /**
+     * 学校->年级->班 课程表
+     * @param id
+     * @return
+     */
+    CurriculumFormDTO read(Long id);
+
+    /**
+     * 新增/更新 课表
+     * @param curriculumFormDTO
+     * @return
+     */
+    DocBaseDTO save(CurriculumFormDTO curriculumFormDTO);
+
+    /**
+     * 删除学校->年级->班 课表
+     * @param id
+     */
+    void delete(Long id);
+
+    /**
+     * 删除课表明细
+     * @param id
+     */
+    void deleteDetail(Long id);
+
+    /**
+     * 导入保存至列表
+     * @param id
+     * @param update
+     */
+    void saveToFormal(Integer id, boolean update);
+}

+ 260 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/CurriculumServiceImpl.java

@@ -0,0 +1,260 @@
+package com.usoftchina.smartschool.school.basic.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.smartschool.context.BaseContextHolder;
+import com.usoftchina.smartschool.exception.BizException;
+import com.usoftchina.smartschool.page.PageRequest;
+import com.usoftchina.smartschool.school.basic.service.CurriculumService;
+import com.usoftchina.smartschool.school.common.service.MessageLogService;
+import com.usoftchina.smartschool.school.dto.*;
+import com.usoftchina.smartschool.school.exception.BizExceptionCode;
+import com.usoftchina.smartschool.school.mapper.CurriculumMapper;
+import com.usoftchina.smartschool.school.mapper.DataImportMapper;
+import com.usoftchina.smartschool.school.mapper.SysClazzMapper;
+import com.usoftchina.smartschool.school.mapper.SysGradeMapper;
+import com.usoftchina.smartschool.school.po.DataImportDetail;
+import com.usoftchina.smartschool.school.po.SubjectDO;
+import com.usoftchina.smartschool.school.wxschool.utils.ObjectUtils;
+import com.usoftchina.smartschool.school.wxschool.utils.StringUtils;
+import com.usoftchina.smartschool.utils.CollectionUtils;
+import com.usoftchina.smartschool.utils.JsonUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import java.util.Map.Entry;
+
+/**
+ * @Description 课程表
+ * @Author chenwei
+ * @Date 2019/02/15
+ */
+@Service
+public class CurriculumServiceImpl implements CurriculumService {
+
+    @Autowired
+    private CurriculumMapper curriculumMapper;
+    @Autowired
+    private DataImportMapper dataImportMapper;
+    @Autowired
+    private SysGradeMapper sysGradeMapper;
+    @Autowired
+    private SysClazzMapper sysClazzMapper;
+    @Autowired
+    private MessageLogService messageLogService;
+
+    private static final String CODE = "Curriculum";
+    private static final String NAME = "课程表";
+
+    @Override
+    public PageInfo<CurriculumListDTO> selectAll(PageRequest page, ListReqDTO listReqDTO) {
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        //condition语句
+        String condition = listReqDTO.getFinalCondition();
+        if(condition == null){
+            condition = "1=1";
+        }
+        Long schoolId = BaseContextHolder.getSchoolId();
+        List<CurriculumListDTO> curriculumListDTO = curriculumMapper.selectByCondition(condition, schoolId);
+        PageInfo<CurriculumListDTO> pageInfo = new PageInfo<CurriculumListDTO>(curriculumListDTO);
+        return pageInfo;
+    }
+
+    @Override
+    public CurriculumFormDTO read(Long id) {
+        CurriculumFormDTO curriculumFormDTO = new CurriculumFormDTO();
+        curriculumFormDTO.setMain(curriculumMapper.selectMain(id));
+        List<CurriculumDetailDTO> curriculumDetailDTOList = curriculumMapper.selectItems(id);
+        List<SubjectDO> subjectDOList = curriculumMapper.selectSubject(BaseContextHolder.getSchoolId());
+        for (SubjectDO subjectDO : subjectDOList){
+            for (CurriculumDetailDTO curriculumDetailDTO : curriculumDetailDTOList){
+                convertToChinese(curriculumDetailDTO, subjectDO);
+            }
+        }
+        curriculumFormDTO.setItems(curriculumDetailDTOList);
+        return curriculumFormDTO;
+    }
+
+    /**
+     * 课程表ID转中文
+     * @param curriculumDetailDTO
+     * @param subjectDO
+     */
+    private void convertToChinese(CurriculumDetailDTO curriculumDetailDTO, SubjectDO subjectDO) {
+        if (curriculumDetailDTO.getMon().equals(subjectDO.getSubjectId().toString())){
+            curriculumDetailDTO.setMon(subjectDO.getSubjectName());
+        }
+        if (curriculumDetailDTO.getTues().equals(subjectDO.getSubjectId().toString())){
+            curriculumDetailDTO.setTues(subjectDO.getSubjectName());
+        }
+        if (curriculumDetailDTO.getThur().equals(subjectDO.getSubjectId().toString())){
+            curriculumDetailDTO.setThur(subjectDO.getSubjectName());
+        }
+        if (curriculumDetailDTO.getWed().equals(subjectDO.getSubjectId().toString())){
+            curriculumDetailDTO.setWed(subjectDO.getSubjectName());
+        }
+        if (curriculumDetailDTO.getFri().equals(subjectDO.getSubjectId().toString())){
+            curriculumDetailDTO.setFri(subjectDO.getSubjectName());
+        }
+        if (curriculumDetailDTO.getSat().equals(subjectDO.getSubjectId().toString())){
+            curriculumDetailDTO.setSat(subjectDO.getSubjectName());
+        }
+    }
+
+    /**
+     * 课程表中文转ID
+     * @param curriculumDetailDTO
+     * @param subjectDO
+     */
+    private void convertToId(CurriculumDetailDTO curriculumDetailDTO, SubjectDO subjectDO) {
+        if (curriculumDetailDTO.getMon().equals(subjectDO.getSubjectName())){
+            curriculumDetailDTO.setMon(subjectDO.getSubjectId().toString());
+        }
+        if (curriculumDetailDTO.getTues().equals(subjectDO.getSubjectName())){
+            curriculumDetailDTO.setTues(subjectDO.getSubjectId().toString());
+        }
+        if (curriculumDetailDTO.getThur().equals(subjectDO.getSubjectName())){
+            curriculumDetailDTO.setThur(subjectDO.getSubjectId().toString());
+        }
+        if (curriculumDetailDTO.getWed().equals(subjectDO.getSubjectName())){
+            curriculumDetailDTO.setWed(subjectDO.getSubjectId().toString());
+        }
+        if (curriculumDetailDTO.getFri().equals(subjectDO.getSubjectName())){
+            curriculumDetailDTO.setFri(subjectDO.getSubjectId().toString());
+        }
+        if (curriculumDetailDTO.getSat().equals(subjectDO.getSubjectName())){
+            curriculumDetailDTO.setSat(subjectDO.getSubjectId().toString());
+        }
+    }
+
+    @Override
+    public DocBaseDTO save(CurriculumFormDTO curriculumFormDTO) {
+        if (ObjectUtils.isEmpty(curriculumFormDTO)) {
+            throw new BizException(BizExceptionCode.EMPTY_DATA);
+        }
+        CurriculumDTO main = curriculumFormDTO.getMain();
+        List<CurriculumDetailDTO> items = curriculumFormDTO.getItems();
+        //查询课表科目信息
+        List<SubjectDO> subjectDOList = curriculumMapper.selectSubject(BaseContextHolder.getSchoolId());
+        if (null != main.getId() && 0 != main.getId()){
+            Long gradeId = sysGradeMapper.selectByName(main.getGradeId(), BaseContextHolder.getSchoolId()).getGrade_id();
+            Long clazzId = sysClazzMapper.selectByName(main.getClazzId(), gradeId).getClazz_id();
+            main.setCreateTime(new Date());
+            main.setClazzId(String.valueOf(clazzId));
+            main.setGradeId(String.valueOf(gradeId));
+            main.setCreatorName(BaseContextHolder.getUserName());
+            //保存主表
+            curriculumMapper.insertSelective(main);
+            Long mId = main.getId();
+            //保存明细表
+            if (!CollectionUtils.isEmpty(items)) {
+                //修改明细数据为科目对应的ID
+                for (SubjectDO subjectDO : subjectDOList) {
+                    for (CurriculumDetailDTO curriculumDetailDTO : items) {
+                        curriculumDetailDTO.setmId(mId);
+                        convertToId(curriculumDetailDTO, subjectDO);
+                    }
+                }
+                curriculumMapper.insertDetailSelective(items);
+                messageLogService.save(new DocBaseDTO(mId, CODE, NAME));
+            }
+        }else {
+            //更新主表
+            curriculumMapper.updateByPrimaryKeySelective(main);
+            if (!CollectionUtils.isEmpty(items)) {
+                List<CurriculumDetailDTO> insertList = new ArrayList<CurriculumDetailDTO>();
+                List<CurriculumDetailDTO> updateList = new ArrayList<CurriculumDetailDTO>();
+                for (CurriculumDetailDTO curriculumDetailDTO : items){
+                    for (SubjectDO subjectDO : subjectDOList) {
+                        convertToId(curriculumDetailDTO, subjectDO);
+                        if (curriculumDetailDTO.getId() != null && 0 != curriculumDetailDTO.getId()) {
+                            updateList.add(curriculumDetailDTO);
+                        } else {
+                            insertList.add(curriculumDetailDTO);
+                        }
+                    }
+                }
+                if (insertList.size() > 0) {
+                    curriculumMapper.insertDetailSelective(insertList);
+                }
+                if (updateList.size() > 0) {
+                    curriculumMapper.updateDetailSelective(updateList);
+                }
+            }
+            messageLogService.save(new DocBaseDTO(main.getId(), CODE, NAME));
+        }
+        return new DocBaseDTO(main.getId(), CODE, NAME);
+    }
+
+    @Override
+    @Transactional
+    public void delete(Long id) {
+        curriculumMapper.deleteDetailByMainId(id);
+        curriculumMapper.delete(id);
+        messageLogService.delete(new DocBaseDTO(id, CODE, NAME));
+    }
+
+    @Override
+    public void deleteDetail(Long id) {
+        curriculumMapper.deleteDetail(id);
+        messageLogService.deleteDetail(new DocBaseDTO(id, CODE, NAME));
+    }
+
+    @Override
+    public void saveToFormal(Integer id, boolean update){
+        if (null == id || "0".equals(id)) {
+            return;
+        }
+        Long schoolId = BaseContextHolder.getSchoolId();
+        List<DataImportDetail> details = dataImportMapper.selectDataById(id);
+        List<CurriculumDTO> mainList = new ArrayList<CurriculumDTO>();
+        if (!CollectionUtils.isEmpty(details)){
+            Map<String, List<DataImportDetail>> datas = CollectionUtils.groupBy(details, DataImportDetail::getDd_codevalue);
+            Iterator<Entry<String, List<DataImportDetail>>> it = datas.entrySet().iterator();
+            while (it.hasNext()) {
+                Entry<String, List<DataImportDetail>> entry = it.next();
+                String key = entry.getKey();
+                //校验课程班级格式是否符合: 年级#班级
+                if (StringUtils.isEmpty(key) || !key.contains("#")){
+                    throw new BizException(BizExceptionCode.USELESS_DATA);
+                }
+                String[] keys = key.split("#");
+                String grade = keys[0], clazz = keys[1];
+                Long gradeId = sysGradeMapper.selectByName(grade, schoolId).getGrade_id();
+                Long clazzId = sysClazzMapper.selectByName(clazz, gradeId).getClazz_id();
+                List<DataImportDetail> dataImportDetailList = entry.getValue();
+                if (dataImportDetailList.size() > 0) {
+                    for (DataImportDetail dataImportDetail : dataImportDetailList) {
+                        DataImportDetail singleDataImportDetail = dataImportMapper.selectMainBycode(key, id, schoolId);
+                        CurriculumDTO curriculumDTO = JsonUtils.fromJsonString(singleDataImportDetail.getDd_maindata(), CurriculumDTO.class);
+                        List<CurriculumDetailDTO> curriculumDetailDTOList = JsonUtils.fromJsonArray(dataImportDetail.getDd_detaildata(), CurriculumDetailDTO.class);
+                        //更新数据,将中文转换成ID
+                        curriculumDTO.setStatus("1");
+                        curriculumDTO.setCreateTime(new Date());
+                        curriculumDTO.setClazzId(String.valueOf(clazzId));
+                        //插入主表数据
+                        curriculumMapper.insertSelective(curriculumDTO);
+                        Long mainId = curriculumDTO.getId();
+                        //插入明细表数据
+                        //1. 替换课程名称为ID
+                        List<SubjectDO> subjectDOList = curriculumMapper.selectSubject(schoolId);
+                        for (SubjectDO subjectDO : subjectDOList){
+                            curriculumDetailDTOList.forEach(curriculumDetailDTO -> {
+                                curriculumDetailDTO.setmId(mainId);
+                                curriculumDetailDTO.setStatus(1);
+                                curriculumDetailDTO.setSchoolId(schoolId.intValue());
+                                curriculumDetailDTO.setClazzId(clazzId.intValue());
+                                convertToId(curriculumDetailDTO, subjectDO);
+                            });
+                        }
+                        //2. 插入
+                        curriculumMapper.insertDetailSelective(curriculumDetailDTOList);
+                    }
+                }
+            }
+        }
+        dataImportMapper.updateDataImport(id);
+    }
+}

+ 84 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/controller/MessageLogController.java

@@ -1,8 +1,92 @@
 package com.usoftchina.smartschool.school.common.controller;
 
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.smartschool.base.Result;
+import com.usoftchina.smartschool.page.PageRequest;
+import com.usoftchina.smartschool.school.common.service.MessageLogService;
+import com.usoftchina.smartschool.school.dto.DocBaseDTO;
+import com.usoftchina.smartschool.school.dto.ListReqDTO;
+import com.usoftchina.smartschool.school.po.Messagelog;
+import com.usoftchina.smartschool.school.po.Operation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
 /**
  * @author: guq
  * @create: 2019-01-23 16:23
  **/
+@RestController
+@RequestMapping("/messagelog")
 public class MessageLogController {
+
+    @Autowired
+    private MessageLogService messageLogService;
+
+    /**
+     * @param page
+     * @param req
+     * @return
+     */
+    @GetMapping("/list")
+    public Result<PageInfo<Messagelog>> getListData(PageRequest page, ListReqDTO req) {
+        PageInfo<Messagelog> listData = messageLogService.getListData(page, req);
+        return Result.success(listData);
+    }
+
+    @RequestMapping("/save")
+    public void save(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+       /* DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.save(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;*/
+        messageLogService.save(baseDTO);
+    }
+
+    @RequestMapping("/update")
+    public void update(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+       /* DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.update(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;*/
+        messageLogService.update(baseDTO);
+    }
+
+    @RequestMapping("/delete")
+    public void delete(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        /*DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.delete(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;*/
+        messageLogService.delete(baseDTO);
+    }
+
+    @RequestMapping("/deleteDetail")
+    public void deleteDetail(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        /*DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.deleteDetail(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;*/
+        messageLogService.deleteDetail(baseDTO);
+    }
+
+    /**
+     * 自定义的Log
+     * @param baseDTO
+     * @param operation
+     */
+    @RequestMapping("/customizeLog")
+    public void customizeLog(@RequestBody DocBaseDTO baseDTO, @RequestParam Operation operation) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        /*DeferredResult<String> deferredResult = new DeferredResult<>();
+        System.out.println(operation.getTitle() + "  : " + operation.getResult());
+        CompletableFuture.supplyAsync(() -> messageLogService.customizeLog(baseDTO, operation))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;*/
+        messageLogService.customizeLog(baseDTO, operation);
+    }
+
 }

+ 20 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/service/MessageLogService.java

@@ -1,8 +1,28 @@
 package com.usoftchina.smartschool.school.common.service;
 
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.smartschool.page.PageRequest;
+import com.usoftchina.smartschool.school.dto.DocBaseDTO;
+import com.usoftchina.smartschool.school.dto.ListReqDTO;
+import com.usoftchina.smartschool.school.po.Messagelog;
+import com.usoftchina.smartschool.school.po.Operation;
+
 /**
  * @author: guq
  * @create: 2019-01-23 16:23
  **/
 public interface MessageLogService {
+
+    String save(DocBaseDTO baseDTO);
+
+    String update(DocBaseDTO baseDTO);
+
+    String delete(DocBaseDTO baseDTO);
+
+    String deleteDetail(DocBaseDTO baseDTO);
+
+    String customizeLog(DocBaseDTO baseDTO, Operation operation);
+
+    PageInfo<Messagelog> getListData(PageRequest page, ListReqDTO req);
+
 }

+ 93 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/service/impl/MessageLogServiceImpl.java

@@ -1,11 +1,104 @@
 package com.usoftchina.smartschool.school.common.service.impl;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.smartschool.context.BaseContextHolder;
+import com.usoftchina.smartschool.page.PageRequest;
 import com.usoftchina.smartschool.school.common.service.MessageLogService;
+import com.usoftchina.smartschool.school.dto.DocBaseDTO;
+import com.usoftchina.smartschool.school.dto.ListReqDTO;
+import com.usoftchina.smartschool.school.mapper.MessagelogMapper;
+import com.usoftchina.smartschool.school.po.Messagelog;
+import com.usoftchina.smartschool.school.po.Operation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.MessageSource;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
 
 /**
  * @author: guq
  * @create: 2019-01-23 16:24
  **/
+@Service
 public class MessageLogServiceImpl implements MessageLogService{
+    @Autowired
+    private MessageSource messageSource;
+    @Autowired
+    private MessagelogMapper messagelogMapper;
+
+    @Override
+    public String save(DocBaseDTO baseDTO) {
+        return log(Operation.SAVE, baseDTO);
+
+    }
+
+    @Override
+    public String update(DocBaseDTO baseDTO) {
+        return log(Operation.UPDATE, baseDTO);
+    }
+
+    @Override
+    public String delete(DocBaseDTO baseDTO) {
+        return log(Operation.DELETE, baseDTO);
+    }
+
+    @Override
+    public String deleteDetail(DocBaseDTO baseDTO) {
+        return log(Operation.DELETEDETAIL, baseDTO);
+    }
+
+    @Override
+    public String customizeLog(DocBaseDTO baseDTO, Operation operation) {
+        return log(operation, baseDTO);
+    }
+
+    @Override
+    public PageInfo<Messagelog> getListData(PageRequest page, ListReqDTO req) {
+        //设置默认分页
+        if (null == page || page.getSize() == 0 || page.getNumber() == 0) {
+            page = new PageRequest();
+            page.setNumber(1);
+            page.setSize(10);
+        }
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        //查询数据
+        List<Messagelog> lists = getListByMode(req);
+        //取分页信息
+        PageInfo<Messagelog> pageInfo = new PageInfo<Messagelog>(lists);
+        return pageInfo;
+    }
+
+    private String log(Operation operation, DocBaseDTO baseDTO) {
+        String language = "zh_CN";
+        Messagelog msg = new Messagelog();
+        msg.setMl_caller(baseDTO.getName());
+        msg.setMl_name(baseDTO.getName());
+        msg.setMl_content(operation.getTitle());
+        msg.setMl_result(operation.getResult());
+        msg.setMl_code(baseDTO.getCode());
+        msg.setSchool_id(BaseContextHolder.getSchoolId());
+        msg.setCreateTime(new Date());
+        msg.setCreatorName(BaseContextHolder.getUserName());
+        msg.setMl_keyvalue(baseDTO.getId());
+        msg.setMl_man(BaseContextHolder.getUserName());
+        messagelogMapper.insert(msg);
+        return "success";
+    }
 
+    private List<Messagelog> getListByMode(ListReqDTO req) {
+        List<Messagelog> list = null;
+        Long companyId = BaseContextHolder.getCompanyId();
+        String con = req.getFinalCondition();
+        if (null == con) {
+            con = "1=1";
+        }
+        if (null == req || StringUtils.isEmpty(req.getMode()) || "MAIN".equals(req.getMode())) {
+            list = messagelogMapper.selectMessageLog(con, companyId);
+        }
+        return list;
+    }
 }

+ 59 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/interceptor/AuthRestInterceptor.java

@@ -0,0 +1,59 @@
+package com.usoftchina.smartschool.school.interceptor;
+
+import com.usoftchina.smartschool.auth.jwt.JwtHelper;
+import com.usoftchina.smartschool.auth.jwt.JwtInfo;
+import com.usoftchina.smartschool.context.BaseContextHolder;
+import com.usoftchina.smartschool.utils.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Enumeration;
+
+/**
+ * @author chenwei
+ * @date 2019/2/18
+ */
+@Component
+@Configuration
+public class AuthRestInterceptor extends HandlerInterceptorAdapter {
+
+    private static final Logger logger = LoggerFactory.getLogger(AuthRestInterceptor.class);
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        if (handler instanceof HandlerMethod) {
+            HandlerMethod handlerMethod = (HandlerMethod) handler;
+            String token = null;
+            Enumeration<String> headers = request.getHeaders("Authorization");
+            while(headers.hasMoreElements()){
+                //取最后一个元素
+                token = headers.nextElement();
+            }
+            if (!StringUtils.isEmpty(token)) {
+                JwtInfo infoFromToken = JwtHelper.getInfoFromToken(token, "auth/pub.key");
+                BaseContextHolder.setAppId(infoFromToken.getAppId());
+                BaseContextHolder.setUserId(infoFromToken.getUserId());
+                BaseContextHolder.setUserName(infoFromToken.getUserName());
+                BaseContextHolder.setSchoolId(infoFromToken.getSchool_id());
+                BaseContextHolder.setToken(token);
+                logger.info("request={} school_id={} token={} \\r\\n userName={}  ", request.getRequestURI(),
+                        infoFromToken.getSchool_id(), token, infoFromToken.getUserName());
+            }
+        } else {
+            // no mapping
+        }
+        return super.preHandle(request, response, handler);
+    }
+
+    @Override
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+        BaseContextHolder.remove();
+        super.afterCompletion(request, response, handler, ex);
+    }
+}

+ 85 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/CurriculumMapper.java

@@ -0,0 +1,85 @@
+package com.usoftchina.smartschool.school.mapper;
+
+import com.usoftchina.smartschool.school.dto.CurriculumDTO;
+import com.usoftchina.smartschool.school.dto.CurriculumDetailDTO;
+import com.usoftchina.smartschool.school.dto.CurriculumListDTO;
+import com.usoftchina.smartschool.school.po.SubjectDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface CurriculumMapper {
+
+    /**
+     * 按条件查找列表数据
+     * @param condition
+     * @param schoolId
+     * @return
+     */
+    List<CurriculumListDTO> selectByCondition(@Param("condition") String condition, @Param("schoolId") Long schoolId);
+
+    /**
+     * 查询课程表主表数据
+     * @param id
+     * @return
+     */
+    CurriculumDTO selectMain(Long id);
+
+    /**
+     * 查询课程表明细表数据
+     * @param id
+     * @return
+     */
+    List<CurriculumDetailDTO> selectItems(Long id);
+
+    /**
+     * 查询学校科目名称
+     * @param school_id
+     * @return
+     */
+    List<SubjectDO> selectSubject(@Param("school_id") Long school_id);
+
+    /**
+     * 删除班级课程表
+     * @param id
+     */
+    void delete(Long id);
+
+    /**
+     * 通过主表ID删除明细
+     * @param id
+     */
+    void deleteDetailByMainId(Long id);
+
+    /**
+     * 删除课程表明细行
+     * @param id
+     */
+    void deleteDetail(@Param("id") Long id);
+
+    /**
+     * 课程表主表信息保存
+     * @param curriculumDTO
+     */
+    void insertSelective(CurriculumDTO curriculumDTO);
+
+    /**
+     * 课程明细表保存
+     * @param curriculumDetailDTOList
+     */
+    void insertDetailSelective(List<CurriculumDetailDTO> curriculumDetailDTOList);
+
+    /**
+     * 更新课程表主表信息
+     * @param curriculumDTO
+     */
+    void updateByPrimaryKeySelective(CurriculumDTO curriculumDTO);
+
+    /**
+     * 课程明细表更新
+     * @param curriculumDetailDTOList
+     */
+    void updateDetailSelective(List<CurriculumDetailDTO> curriculumDetailDTOList);
+}

+ 24 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/MessagelogMapper.java

@@ -0,0 +1,24 @@
+package com.usoftchina.smartschool.school.mapper;
+
+import com.usoftchina.smartschool.school.po.Messagelog;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface MessagelogMapper{
+    int deleteByPrimaryKey(Integer ml_id);
+
+    int insert(Messagelog record);
+
+    int insertSelective(Messagelog record);
+
+    Messagelog selectByPrimaryKey(Integer ml_id);
+
+    int updateByPrimaryKeySelective(Messagelog record);
+
+    int updateByPrimaryKey(Messagelog record);
+
+    List<Messagelog> selectMessageLog(@Param("con") String con, @Param("companyId") Long companyId);
+}

+ 3 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysClazzMapper.java

@@ -3,6 +3,7 @@ package com.usoftchina.smartschool.school.mapper;
 import com.usoftchina.smartschool.school.po.SysClazz;
 import com.usoftchina.smartschool.school.po.TeacherDetail;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -23,4 +24,6 @@ public interface SysClazzMapper {
     List<SysClazz> selectBygrade(Long id);
 
     List<TeacherDetail> selectTeacher(Long id);
+
+    SysClazz selectByName(@Param("name") String name, @Param("gradeId") Long gradeId);
 }

+ 93 - 12
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/Messagelog.java

@@ -1,15 +1,10 @@
 package com.usoftchina.smartschool.school.po;
 
-
-import lombok.Data;
-
-import java.io.Serializable;
 import java.util.Date;
 
-@Data
-public class Messagelog implements Serializable{
+public class Messagelog {
 
-    private Integer ml_id;
+    private Long id;
 
     private String ml_code;
 
@@ -19,18 +14,104 @@ public class Messagelog implements Serializable{
 
     private String ml_caller;
 
+    public String getMl_name() {
+        return ml_name;
+    }
+
+    public void setMl_name(String ml_name) {
+        this.ml_name = ml_name;
+    }
+
     private String ml_man;
 
-    private Integer school_id;
+    private String ml_name;
 
-    private Date createTime;
+    public Long getMl_keyvalue() {
+        return ml_keyvalue;
+    }
 
-    private Integer creatorId;
+    public void setMl_keyvalue(Long ml_keyvalue) {
+        this.ml_keyvalue = ml_keyvalue;
+    }
 
-    private Integer ml_keyvalue;
+    private Long ml_keyvalue;
 
-    private String ml_name;
+    private Long school_id;
+
+    private Date createTime;
 
     private String creatorName;
 
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getSchool_id() {
+        return school_id;
+    }
+
+    public void setSchool_id(Long school_id) {
+        this.school_id = school_id;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getCreatorName() {
+        return creatorName;
+    }
+
+    public void setCreatorName(String creatorName) {
+        this.creatorName = creatorName;
+    }
+
+    public String getMl_code() {
+        return ml_code;
+    }
+
+    public void setMl_code(String ml_code) {
+        this.ml_code = ml_code == null ? null : ml_code.trim();
+    }
+
+    public String getMl_content() {
+        return ml_content;
+    }
+
+    public void setMl_content(String ml_content) {
+        this.ml_content = ml_content == null ? null : ml_content.trim();
+    }
+
+    public String getMl_result() {
+        return ml_result;
+    }
+
+    public void setMl_result(String ml_result) {
+        this.ml_result = ml_result == null ? null : ml_result.trim();
+    }
+
+    public String getMl_caller() {
+        return ml_caller;
+    }
+
+    public void setMl_caller(String ml_caller) {
+        this.ml_caller = ml_caller == null ? null : ml_caller.trim();
+    }
+
+    public String getMl_man() {
+        return ml_man;
+    }
+
+    public void setMl_man(String ml_man) {
+        this.ml_man = ml_man == null ? null : ml_man.trim();
+    }
+
 }

+ 49 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/Operation.java

@@ -0,0 +1,49 @@
+package com.usoftchina.smartschool.school.po;
+
+public enum Operation {
+
+    /**
+     * 新增
+     */
+    SAVE("保存操作", "保存成功"),
+    /**
+     * 修改
+     */
+    UPDATE("更新操作", "更新成功"),
+    /**
+     * 删除
+     */
+    DELETE("删除操作", "删除成功"),
+    /**
+     * 删除明细
+     */
+    DELETEDETAIL("删除明细操作", "删除明细成功");
+
+    private final String title;
+    private final String result;
+
+    private Operation(String title, String result) {
+        this.title = title;
+        this.result = result;
+    }
+
+    /**
+     * 操作描述
+     *
+     * @param
+     * @return
+     */
+    public String getTitle() {
+        return this.title;
+    }
+
+    /**
+     * 操作描述
+     *
+     * @param
+     * @return
+     */
+    public String getResult() {
+        return this.result;
+    }
+}

+ 12 - 12
applications/school/school-server/src/main/resources/application.yml

@@ -21,18 +21,18 @@ spring:
   messages:
     basename: i18n/messages
     encoding: UTF-8
-  rabbitmq:
-    host: 10.10.100.166
-    port: 3306
-    virtual-host: school
-    username: root
-    password: select111***
-  zipkin:
-    sender:
-      type: rabbit
-    locator:
-      discovery:
-        enabled: true
+#  rabbitmq:
+#    host: 10.10.100.166
+#    port: 3306
+#    virtual-host: school
+#    username: root
+#    password: select111***
+#  zipkin:
+#    sender:
+#      type: rabbit
+#    locator:
+#      discovery:
+#        enabled: true
   sleuth:
     sampler:
       probability: 1.0

+ 239 - 0
applications/school/school-server/src/main/resources/mapper/CurriculumMapper.xml

@@ -0,0 +1,239 @@
+<?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.usoftchina.smartschool.school.mapper.CurriculumMapper" >
+  <resultMap id="CurriculumDetailDTOMap" type="com.usoftchina.smartschool.school.dto.CurriculumDetailDTO">
+    <id column="cur_id" property="id" jdbcType="INTEGER" />
+    <result column="cur_lessons" property="lessons" jdbcType="INTEGER" />
+    <result column="cur_mon" property="mon" jdbcType="VARCHAR" />
+    <result column="cur_tues" property="tues" jdbcType="VARCHAR" />
+    <result column="cur_wed" property="wed" jdbcType="VARCHAR" />
+    <result column="cur_thur" property="thur" jdbcType="VARCHAR" />
+    <result column="cur_fri" property="fri" jdbcType="VARCHAR" />
+    <result column="cur_sat" property="sat" jdbcType="VARCHAR" />
+    <result column="cur_status" property="status" jdbcType="INTEGER" />
+    <result column="cur_remarks" property="remarks" jdbcType="VARCHAR" />
+    <result column="cur_start_time" property="startTime" jdbcType="TIME" />
+    <result column="cur_end_time" property="endTime" jdbcType="TIME" />
+    <result column="clazz_id" property="clazzId" jdbcType="INTEGER" />
+    <result column="school_id" property="schoolId" jdbcType="INTEGER" />
+    <result column="cur_mid" property="mId" jdbcType="INTEGER" />
+  </resultMap>
+
+  <resultMap id="CurriculumDTOMap" type="com.usoftchina.smartschool.school.dto.CurriculumDTO">
+    <id column="id" property="id" jdbcType="INTEGER" />
+    <result column="mcur_code" property="code" jdbcType="VARCHAR" />
+    <result column="mcur_term_name" property="termName" jdbcType="VARCHAR" />
+    <result column="mcur_name" property="name" jdbcType="VARCHAR" />
+    <result column="mcur_term_start" property="termStart" jdbcType="TIMESTAMP" />
+    <result column="mcur_term_end" property="termEnd" jdbcType="TIMESTAMP" />
+    <result column="mcur_weeknum" property="weekNum" jdbcType="INTEGER" />
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="mcur_status" property="status" jdbcType="VARCHAR" />
+    <!--<result column="school_id" property="" jdbcType="VARCHAR" />-->
+    <result column="clazz_id" property="clazzId" jdbcType="VARCHAR" />
+    <result column="grade_id" property="gradeId" jdbcType="VARCHAR" />
+  </resultMap>
+
+  <select id="selectByCondition" resultType="com.usoftchina.smartschool.school.dto.CurriculumListDTO">
+    select mcur.id id, school.school_name schoolName, grade.grade_name gradeName, clazz.clazz_name clazzName, mcur_status status, mcur.school_id schoolId, mcur.clazz_id clazzId, clazz.grade_id gradeId,
+    mcur.mcur_term_name termName, mcur.mcur_name name, mcur.mcur_term_start termStart, mcur.mcur_term_end termEnd
+    from clazz_main_curriculum mcur
+    left join sys_clazz clazz on mcur.clazz_id = clazz.clazz_id
+    left join sys_grade grade on clazz.grade_id = grade.grade_id
+    left join sys_school school on school.school_id = mcur.school_id
+    <where>
+      <if test="condition != null">
+        ${condition}
+      </if>
+      <if test="schoolId != null">
+        and mcur.school_id = #{schoolId}
+      </if>
+    </where>
+  </select>
+
+  <select id="selectMain" resultMap="CurriculumDTOMap">
+    select * from clazz_main_curriculum where id = #{id}
+  </select>
+
+  <select id="selectItems" resultMap="CurriculumDetailDTOMap">
+    select * from clazz_curriculum where cur_mid = #{id}
+  </select>
+
+  <select id="selectSubject" resultType="com.usoftchina.smartschool.school.po.SubjectDO">
+    select * from subject where school_id = #{school_id}
+  </select>
+
+  <delete id="delete">
+    delete from clazz_main_curriculum where id = #{id}
+  </delete>
+
+  <delete id="deleteDetailByMainId">
+    delete from clazz_curriculum where cur_mid = #{id}
+  </delete>
+
+  <delete id="deleteDetail">
+    DELETE FROM clazz_curriculum where cur_id = #{id}
+  </delete>
+
+  <insert id="insertSelective" parameterType="com.usoftchina.smartschool.school.dto.CurriculumDTO">
+    <selectKey  resultType="java.lang.Long" keyProperty="id">
+      SELECT LAST_INSERT_ID() AS ID
+    </selectKey>
+    INSERT INTO clazz_main_curriculum
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="code != null">
+        mcur_code,
+      </if>
+      <if test="termName != null">
+        mcur_term_name,
+      </if>
+      <if test="name != null">
+        mcur_name,
+      </if>
+      <if test="termStart != null">
+        mcur_term_start,
+      </if>
+      <if test="termEnd != null">
+        mcur_term_end,
+      </if>
+      <if test="weekNum != null">
+        mcur_weeknum,
+      </if>
+      <if test="creatorName != null">
+        creatorName,
+      </if>
+      <if test="createTime != null">
+        createTime,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="code != null">
+        #{code, jdbcType=VARCHAR},
+      </if>
+      <if test="termName != null">
+        #{termName, jdbcType=VARCHAR},
+      </if>
+      <if test="name != null">
+        #{name, jdbcType=VARCHAR},
+      </if>
+      <if test="termStart != null">
+        #{termStart, jdbcType=TIMESTAMP},
+      </if>
+      <if test="termEnd != null">
+        #{termEnd, jdbcType=TIMESTAMP},
+      </if>
+      <if test="weekNum != null">
+        #{weekNum, jdbcType=INTEGER},
+      </if>
+      <if test="creatorName != null">
+        #{creatorName, jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null">
+        #{createTime, jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+
+  <insert id="insertDetailSelective" parameterType="java.util.List">
+    insert into clazz_curriculum
+    (cur_lessons,cur_mon,cur_tues,cur_wed,
+    cur_thur,cur_fri,cur_sat,cur_start_time,cur_end_time,
+    cur_status,cur_remarks,clazz_id,school_id,cur_mid
+    ) values
+    <foreach collection="list" item="item" index="index" open="" close="" separator=",">
+      (
+        #{lessons, jdbcType=INTEGER},#{mon,jdbcType=INTEGER},#{tues,jdbcType=INTEGER},#{wed,jdbcType=INTEGER},
+        #{thur,jdbcType=INTEGER},#{fri,jdbcType=INTEGER},#{sat,jdbcType=INTEGER},#{startTime,jdbcType=TIME},
+        #{endTime,jdbcType=TIME},#{status,jdbcType=INTEGER},#{remarks,jdbcType=VARCHAR},#{clazzId,jdbcType=INTEGER},
+        #{schoolId,jdbcType=INTEGER},#{mId,jdbcType=INTEGER},
+      )
+    </foreach>
+  </insert>
+
+  <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.smartschool.school.dto.CurriculumDTO" >
+    update clazz_main_curriculum
+    <set >
+      <if test="mcur_code != null" >
+        mcur_code = #{code,jdbcType=VARCHAR},
+      </if>
+      <if test="mcur_term_name != null" >
+        mcur_term_name = #{termName,jdbcType=VARCHAR},
+      </if>
+      <if test="mcur_name != null" >
+        mcur_name = #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="mcur_term_start != null" >
+        mcur_term_start = #{termStart,jdbcType=TIMESTAMP},
+      </if>
+      <if test="mcur_term_end != null" >
+        mcur_term_end = #{termEnd,jdbcType=TIMESTAMP},
+      </if>
+      <if test="mcur_weeknum != null" >
+        mcur_weeknum = #{weekNum,jdbcType=INTEGER},
+      </if>
+      <if test="creatorName != null" >
+        creatorName = #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        createTime = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="clazzId != null" >
+        clazz_id = #{clazzId,jdbcType=INTEGER},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+
+  <update id="updateDetailSelective" parameterType="com.usoftchina.smartschool.school.dto.CurriculumDetailDTO">
+    <foreach collection="list" item="item" index="index" separator=";">
+      update clazz_curriculum
+      <set>
+        <if test="item.lessons != null and lessons != 0">
+          cur_lessons = #{item.lession, jdbcType=INTEGER},
+        </if>
+        <if test="item.mon != null">
+          cur_mon = #{item.mon, jdbcType=VARCHAR},
+        </if>
+        <if test="item.tues != null">
+          cur_tues = #{item.tues, jdbcType=VARCHAR},
+        </if>
+        <if test="item.wed != null">
+          cur_wed = #{item.wed, jdbcType=VARCHAR},
+        </if>
+        <if test="item.thur != null">
+          cur_thur = #{item.thur, jdbcType=VARCHAR},
+        </if>
+        <if test="item.fri != null">
+          cur_fri = #{item.fri, jdbcType=VARCHAR},
+        </if>
+        <if test="item.sat != null">
+          cur_sat = #{item.sat, jdbcType=VARCHAR},
+        </if>
+        <if test="item.startTime != null">
+          cur_start_time = #{item.startTime, jdbcType=VARCHAR},
+        </if>
+        <if test="item.endTime != null">
+          cur_end_time = #{item.endTime, jdbcType=TIME},
+        </if>
+        <if test="item.status != null">
+          cur_status = #{item.status, jdbcType=TIME},
+        </if>
+        <if test="item.remarks != null">
+          cur_remarks = #{item.remarks, jdbcType=VARCHAR},
+        </if>
+        <if test="item.clazzId != null">
+          clazz_id = #{item.clazzId, jdbcType=INTEGER},
+        </if>
+        <if test="item.schoolId != null">
+          school_id = #{item.schoolId, jdbcType=INTEGER},
+        </if>
+        <if test="item.mId != null">
+          cur_mid = #{item.mId, jdbcType=INTEGER},
+        </if>
+      </set>
+      WHERE cur_id= #{item.id,jdbcType=INTEGER}
+    </foreach>
+  </update>
+
+</mapper>

+ 180 - 0
applications/school/school-server/src/main/resources/mapper/MessagelogMapper.xml

@@ -0,0 +1,180 @@
+<?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.usoftchina.smartschool.school.mapper.MessagelogMapper" >
+  <resultMap id="BaseResultMap" type="com.usoftchina.smartschool.school.po.Messagelog" >
+    <id column="ml_id" property="id" jdbcType="INTEGER" />
+    <result column="ml_code" property="ml_code" jdbcType="VARCHAR" />
+    <result column="ml_content" property="ml_content" jdbcType="VARCHAR" />
+    <result column="ml_result" property="ml_result" jdbcType="VARCHAR" />
+    <result column="ml_caller" property="ml_caller" jdbcType="VARCHAR" />
+    <result column="ml_name" property="ml_name" jdbcType="VARCHAR" />
+    <result column="ml_man" property="ml_man" jdbcType="VARCHAR" />
+    <result column="school_id" property="school_id" jdbcType="INTEGER" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="createName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="ml_keyvalue" property="ml_keyvalue" jdbcType="INTEGER" />
+  </resultMap>
+
+  <sql id="Base_Column_List" >
+    ml_id, ml_code, ml_content, ml_result, ml_caller, ml_man, school_id, createTime,
+    createName,ml_name,ml_keyvalue
+  </sql>
+
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+    select 
+    <include refid="Base_Column_List" />
+    from messagelog
+    where ml_id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+    delete from messagelog
+    where ml_id = #{id,jdbcType=INTEGER}
+  </delete>
+
+  <insert id="insert" parameterType="com.usoftchina.smartschool.school.po.Messagelog" >
+    insert into messagelog ( ml_code, ml_content,
+      ml_result, ml_caller, ml_man, 
+      companyId, createTime, creatorId, 
+      updateTime, updaterId,ml_keyvalue,ml_name)
+    values (#{ml_code,jdbcType=VARCHAR}, #{ml_content,jdbcType=VARCHAR},
+      #{ml_result,jdbcType=VARCHAR}, #{ml_caller,jdbcType=VARCHAR}, #{ml_man,jdbcType=VARCHAR}, 
+      #{companyId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{creatorId,jdbcType=INTEGER}, 
+      #{updateTime,jdbcType=TIMESTAMP}, #{updaterId,jdbcType=INTEGER},#{ml_keyvalue,jdbcType=INTEGER},#{ml_name,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.usoftchina.smartschool.school.po.Messagelog" >
+    insert into messagelog
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        ml_id,
+      </if>
+      <if test="ml_code != null" >
+        ml_code,
+      </if>
+      <if test="ml_content != null" >
+        ml_content,
+      </if>
+      <if test="ml_result != null" >
+        ml_result,
+      </if>
+      <if test="ml_caller != null" >
+        ml_caller,
+      </if>
+      <if test="ml_man != null" >
+        ml_man,
+      </if>
+      <if test="companyId != null" >
+        companyId,
+      </if>
+      <if test="createTime != null" >
+        createTime,
+      </if>
+      <if test="creatorId != null" >
+        creatorId,
+      </if>
+      <if test="updateTime != null" >
+        updateTime,
+      </if>
+      <if test="updaterId != null" >
+        updaterId,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="ml_code != null" >
+        #{ml_code,jdbcType=VARCHAR},
+      </if>
+      <if test="ml_content != null" >
+        #{ml_content,jdbcType=VARCHAR},
+      </if>
+      <if test="ml_result != null" >
+        #{ml_result,jdbcType=VARCHAR},
+      </if>
+      <if test="ml_caller != null" >
+        #{ml_caller,jdbcType=VARCHAR},
+      </if>
+      <if test="ml_man != null" >
+        #{ml_man,jdbcType=VARCHAR},
+      </if>
+      <if test="companyId != null" >
+        #{companyId,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="creatorId != null" >
+        #{creatorId,jdbcType=INTEGER},
+      </if>
+      <if test="updateTime != null" >
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updaterId != null" >
+        #{updaterId,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+
+  <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.smartschool.school.po.Messagelog" >
+    update messagelog
+    <set >
+      <if test="ml_code != null" >
+        ml_code = #{ml_code,jdbcType=VARCHAR},
+      </if>
+      <if test="ml_content != null" >
+        ml_content = #{ml_content,jdbcType=VARCHAR},
+      </if>
+      <if test="ml_result != null" >
+        ml_result = #{ml_result,jdbcType=VARCHAR},
+      </if>
+      <if test="ml_caller != null" >
+        ml_caller = #{ml_caller,jdbcType=VARCHAR},
+      </if>
+      <if test="ml_man != null" >
+        ml_man = #{ml_man,jdbcType=VARCHAR},
+      </if>
+      <if test="companyId != null" >
+        companyId = #{companyId,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null" >
+        createTime = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="creatorId != null" >
+        creatorId = #{creatorId,jdbcType=INTEGER},
+      </if>
+      <if test="updateTime != null" >
+        updateTime = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updaterId != null" >
+        updaterId = #{updaterId,jdbcType=INTEGER},
+      </if>
+    </set>
+    where ml_id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.usoftchina.smartschool.school.po.Messagelog" >
+    update messagelog
+    set ml_code = #{ml_code,jdbcType=VARCHAR},
+      ml_content = #{ml_content,jdbcType=VARCHAR},
+      ml_result = #{ml_result,jdbcType=VARCHAR},
+      ml_caller = #{ml_caller,jdbcType=VARCHAR},
+      ml_man = #{ml_man,jdbcType=VARCHAR},
+      companyId = #{companyId,jdbcType=INTEGER},
+      createTime = #{createTime,jdbcType=TIMESTAMP},
+      creatorId = #{creatorId,jdbcType=INTEGER},
+      updateTime = #{updateTime,jdbcType=TIMESTAMP},
+      updaterId = #{updaterId,jdbcType=INTEGER}
+    where ml_id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectMessageLog" resultMap="BaseResultMap">
+    select  *  from messagelog
+    <where>
+      <if test="con != null">
+        ${con}
+      </if>
+      <if test="companyId != null">
+        and  companyId = #{companyId}
+      </if>
+    </where>
+    order by ml_id DESC
+  </select>
+</mapper>

+ 4 - 0
applications/school/school-server/src/main/resources/mapper/SysClazzMapper.xml

@@ -106,6 +106,10 @@
     select * from sys_clazz where grade_id = #{id}
   </select>
 
+  <select id="selectByName" resultMap="BaseResultMap">
+    select * from sys_clazz where grade_id = #{gradeId} and clazz_name = #{name} and s
+  </select>
+
   <resultMap id="teacherMap" type="com.usoftchina.smartschool.school.po.TeacherDetail" >
     <result column="teacher" property="teacher" jdbcType="VARCHAR" />
     <result column="grade" property="grade" jdbcType="VARCHAR" />

+ 71 - 0
applications/school/school-server/src/test/java/com/usoftchina/smartschool/school/service/CurriculumServiceTest.java

@@ -0,0 +1,71 @@
+package com.usoftchina.smartschool.school.service;
+
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.smartschool.context.BaseContextHolder;
+import com.usoftchina.smartschool.page.PageRequest;
+import com.usoftchina.smartschool.school.basic.service.CurriculumService;
+import com.usoftchina.smartschool.school.dto.CurriculumFormDTO;
+import com.usoftchina.smartschool.school.dto.CurriculumListDTO;
+import com.usoftchina.smartschool.school.dto.ListReqDTO;
+import com.usoftchina.smartschool.utils.JsonUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+/**
+ * @Description
+ * @Author chenwei
+ * @Date 2019/02/19
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringBootTest
+@EnableAutoConfiguration
+public class CurriculumServiceTest {
+
+    @Autowired
+    private CurriculumService curriculumService;
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(CurriculumServiceTest.class);
+
+    @Test
+    public void testA_selectAll(){
+        LOGGER.info("===============test selectAll start==============");
+        PageRequest pageRequest = new PageRequest(1, 8);
+        BaseContextHolder.setSchoolId(1);
+        PageInfo<CurriculumListDTO> pageInfo = curriculumService.selectAll(pageRequest, new ListReqDTO());
+        LOGGER.info("pageInfo={}", JsonUtils.toJsonString(pageInfo));
+        LOGGER.info("===============test selectAll end================");
+
+    }
+
+    @Test
+    public void testB_read(){
+        LOGGER.info("===============test read start==============");
+        CurriculumFormDTO curriculumFormDTO = curriculumService.read(1L);
+        LOGGER.info("curriculumFormDTO={}", JsonUtils.toJsonString(curriculumFormDTO));
+        LOGGER.info("===============test read end================");
+    }
+
+    @Test
+    public void testC_save(){
+        LOGGER.info("===============test save start==============");
+        LOGGER.info("===============test save end================");
+    }
+
+    @Test
+    public void testE_delete(){
+        LOGGER.info("===============test delete start==============");
+        LOGGER.info("===============test delete end================");
+    }
+
+    @Test
+    public void testF_deleteDetail(){
+        LOGGER.info("===============test deleteDetail start==============");
+        LOGGER.info("===============test deleteDetail end================");
+    }
+}

+ 3 - 0
base-servers/account/account-api/src/main/java/com/usoftchina/smartschool/account/api/AccountApi.java

@@ -18,4 +18,7 @@ public interface AccountApi {
 
     @GetMapping(value = "/account/pwd/check")
     Result<AccountDTO> checkPwd(@RequestParam(value = "username") String username, @RequestParam(value = "password") String password);
+
+    @GetMapping("/account/getUsername")
+    Result<String> getUsername(@RequestParam(value = "schoolId") Long schoolId, @RequestParam(value = "userId") Long userId);
 }

+ 9 - 0
base-servers/account/account-dto/src/main/java/com/usoftchina/smartschool/account/dto/AccountDTO.java

@@ -16,6 +16,15 @@ public class AccountDTO implements Serializable {
     private String salt;
     private List<RoleDTO> roleMaps;
     private Long school_id;
+    private String username;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
 
     public Long getId() {
         return id;

+ 12 - 1
base-servers/account/account-server/src/main/java/com/usoftchina/smartschool/account/controller/AccountController.java

@@ -73,7 +73,18 @@ public class AccountController {
         if (!checked){
             return Result.error(ExceptionCode.USER_PWD_ERROR);
         }
-        return Result.success(accountService.findByMobile(username));
+        return Result.success(accountDTO);
+    }
+
+    /**
+     * 查询教师表,获取教师姓名
+     * @param schoolId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/getUsername")
+    public Result<String> getUsername(Long schoolId, Long userId){
+        return Result.success(accountService.getUsername(schoolId, userId));
     }
 
     /**

+ 7 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/smartschool/account/mapper/AccountMapper.java

@@ -48,4 +48,11 @@ public interface AccountMapper {
      */
     Account selectByMobile(@Param("mobile") String mobile);
 
+    /**
+     * 查找教师姓名
+     * @param schoolId
+     * @param userId
+     * @return
+     */
+    String selectTeacherName(@Param("schoolId") Long schoolId, @Param("userId") Long userId);
 }

+ 7 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/smartschool/account/service/AccountService.java

@@ -56,4 +56,11 @@ public interface AccountService {
      */
     boolean checkPwd(String username, String plainPassword);
 
+    /**
+     * 获取教师姓名
+     * @param schoolId
+     * @param userId
+     * @return
+     */
+    String getUsername(Long schoolId, Long userId);
 }

+ 5 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/smartschool/account/service/impl/AccountServiceImpl.java

@@ -67,4 +67,9 @@ public class AccountServiceImpl implements AccountService {
         Account account = accountMapper.selectByMobile(username);
         return getEncryptedPassword(plainPassword, account.getSalt()).equals(account.getUser_pass());
     }
+
+    @Override
+    public String getUsername(Long schoolId, Long userId){
+        return accountMapper.selectTeacherName(schoolId, userId);
+    }
 }

+ 4 - 0
base-servers/account/account-server/src/main/resources/mapper/AccountMapper.xml

@@ -49,4 +49,8 @@
   <update id="updateByPrimaryKeySelective">
 
   </update>
+
+  <select id="selectTeacherName" resultType="string">
+    select teacher_name from sys_teacher where school_id = #{schoolId} and user_id = #{userId}
+  </select>
 </mapper>

+ 0 - 4
base-servers/auth/auth-dto/pom.xml

@@ -39,10 +39,6 @@
       <groupId>joda-time</groupId>
       <artifactId>joda-time</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.springframework.cloud</groupId>
-      <artifactId>spring-cloud-starter-bus-amqp</artifactId>
-    </dependency>
     <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>

+ 4 - 1
base-servers/auth/auth-dto/src/main/java/com/usoftchina/smartschool/auth/jwt/JwtHelper.java

@@ -40,6 +40,8 @@ public class JwtHelper {
                             .claim("appId", jwtInfo.getAppId())
                             .claim("userId", jwtInfo.getUserId())
                             .claim("userName", jwtInfo.getUserName())
+                            .claim("school_id", jwtInfo.getSchool_id())
+                            .claim("mobile", jwtInfo.getMobile())
                             .setExpiration(DateTime.now().plusSeconds(expire).toDate())
                             // 设置算法(必须)
                             .signWith(SignatureAlgorithm.RS256, RsaUtils.getPrivateKey(priKeyPath))
@@ -96,7 +98,8 @@ public class JwtHelper {
                 ObjectUtils.getStringValue(body.get("appId")),
                 ObjectUtils.getLongValue(body.get("school_id")),
                 ObjectUtils.getLongValue(body.get("userId")),
-                ObjectUtils.getStringValue(body.get("userName"))
+                ObjectUtils.getStringValue(body.get("userName")),
+                ObjectUtils.getStringValue(body.get("mobile"))
         );
     }
 }

+ 11 - 1
base-servers/auth/auth-dto/src/main/java/com/usoftchina/smartschool/auth/jwt/JwtInfo.java

@@ -11,15 +11,25 @@ public class JwtInfo implements Serializable{
     private Long school_id;
     private Long userId;
     private String userName;
+    private String mobile;
 
     public JwtInfo() {
     }
 
-    public JwtInfo(String appId, Long school_id, Long userId, String userName) {
+    public JwtInfo(String appId, Long school_id, Long userId, String userName, String mobile) {
         this.appId = appId;
         this.school_id = school_id;
         this.userId = userId;
         this.userName = userName;
+        this.mobile = mobile;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
     }
 
     public String getAppId() {

+ 0 - 4
base-servers/auth/auth-server/pom.xml

@@ -45,10 +45,6 @@
       <groupId>io.springfox</groupId>
       <artifactId>springfox-swagger2</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.springframework.amqp</groupId>
-      <artifactId>spring-rabbit</artifactId>
-    </dependency>
     <!-- test -->
     <dependency>
       <groupId>com.usoftchina.smartschool</groupId>

+ 4 - 1
base-servers/auth/auth-server/src/main/java/com/usoftchina/smartschool/auth/controller/AuthController.java

@@ -9,6 +9,7 @@ import com.usoftchina.smartschool.auth.jwt.JwtInfo;
 import com.usoftchina.smartschool.auth.jwt.JwtToken;
 import com.usoftchina.smartschool.base.Result;
 import com.usoftchina.smartschool.utils.BeanMapper;
+import com.usoftchina.smartschool.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -49,7 +50,9 @@ public class AuthController {
             AccountDTO accountDTO = result.getData();
             Long school_id = accountDTO.getRoleMaps().stream().filter(roleDTO -> "教师".equals(roleDTO.getRole_name())).findFirst().get().getSchool_id();
             accountDTO.setSchool_id(school_id);
-            JwtInfo jwtInfo = new JwtInfo("school", school_id, accountDTO.getId(), accountDTO.getUser_phone());
+            String realName = accountApi.getUsername(school_id, accountDTO.getId()).getData();
+            accountDTO.setUsername(realName);
+            JwtInfo jwtInfo = new JwtInfo("school", school_id, accountDTO.getId(), StringUtils.isEmpty(realName) ? accountDTO.getUser_phone() : realName, accountDTO.getUser_phone());
             JwtToken jwtToken = JwtHelper.generateToken(jwtInfo, privateKeyPath, expire);
             TokenDTO tokenDTO = BeanMapper.map(jwtToken, TokenDTO.class);
             // 登录日志

+ 15 - 15
base-servers/auth/auth-server/src/main/resources/application.yml

@@ -21,21 +21,21 @@ spring:
   messages:
     basename: i18n/messages
     encoding: UTF-8
-  rabbitmq:
-    host: 10.10.100.166
-    port: 3306
-    virtual-host: school
-    username: root
-    password: select111***
-  zipkin:
-    sender:
-      type: rabbit
-    locator:
-      discovery:
-        enabled: true
-  sleuth:
-    sampler:
-      probability: 1.0
+#  rabbitmq:
+#    host: 10.10.100.166
+#    port: 3306
+#    virtual-host: school
+#    username: root
+#    password: select111***
+#  zipkin:
+#    sender:
+#      type: rabbit
+#    locator:
+#      discovery:
+#        enabled: true
+#  sleuth:
+#    sampler:
+#      probability: 1.0
   redis:
     host: 10.1.81.62
     port: 6379

+ 1 - 1
base-servers/gateway-server/src/main/java/com/usoftchina/smartschool/gateway/config/AuthFilter.java

@@ -53,7 +53,7 @@ public class AuthFilter implements GlobalFilter, Ordered {
                 BaseContextHolder.setUserName(jwt.getUserName());
                 BaseContextHolder.setSchoolId(jwt.getSchool_id());
                 BaseContextHolder.setToken(token);
-                AccountDTO accountDTO = accountApi.findByMobile(jwt.getUserName()).getData();
+                AccountDTO accountDTO = accountApi.findByMobile(jwt.getMobile()).getData();
                 if (null == accountDTO) {
                     throw new BizException(ExceptionCode.USER_NOT_EXIST);
                 }

+ 4 - 4
base-servers/gateway-server/src/main/java/com/usoftchina/smartschool/gateway/interceptor/ServiceFeignInterceptor.java

@@ -11,18 +11,18 @@ import org.springframework.beans.factory.annotation.Autowired;
  * @date 2018/10/2
  */
 public class ServiceFeignInterceptor implements RequestInterceptor {
-   /* @Autowired
-    private AuthConfig authConfig;*/
+    @Autowired
+    private AuthConfig authConfig;
 
     public ServiceFeignInterceptor() {
     }
 
     @Override
     public void apply(RequestTemplate requestTemplate) {
-        //requestTemplate.header(authConfig.getAuthHeader(), BaseContextHolder.getToken());
+        requestTemplate.header(authConfig.getAuthHeader(), BaseContextHolder.getToken());
     }
 
     public void setAuthConfig(AuthConfig authConfig) {
-       // this.authConfig = authConfig;
+        this.authConfig = authConfig;
     }
 }

+ 32 - 1
framework/test-starter/pom.xml

@@ -10,6 +10,37 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>test-starter</artifactId>
-
+    <dependencies>
+        <dependency>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-starter-test</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>com.usoftchina.smartschool</groupId>
+          <artifactId>core</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.springframework</groupId>
+          <artifactId>spring-web</artifactId>
+          <scope>compile</scope>
+          <optional>true</optional>
+        </dependency>
+        <dependency>
+          <groupId>javax.servlet</groupId>
+          <artifactId>javax.servlet-api</artifactId>
+          <scope>compile</scope>
+          <optional>true</optional>
+        </dependency>
+        <dependency>
+          <groupId>com.fasterxml.jackson.core</groupId>
+          <artifactId>jackson-core</artifactId>
+          <scope>provided</scope>
+        </dependency>
+        <dependency>
+          <groupId>com.fasterxml.jackson.core</groupId>
+          <artifactId>jackson-databind</artifactId>
+          <scope>provided</scope>
+        </dependency>
+    </dependencies>
 
 </project>