liujunchi 2 роки тому
батько
коміт
b82056af17

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Degree.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.ym.mec.biz.dal.enums.EDegreeStatus;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import lombok.Data;
 import lombok.Data;
 
 
@@ -64,9 +65,9 @@ public class Degree implements Serializable {
     @TableField(value = "purchase_course_")
     @TableField(value = "purchase_course_")
     private Integer purchaseCourse;
     private Integer purchaseCourse;
 
 
-    @ApiModelProperty("报名状态")
+    @ApiModelProperty("报名状态 NOT_START:未开始,START:报名中,END:报名结束")
     @TableField(value = "status_")
     @TableField(value = "status_")
-    private String status;
+    private EDegreeStatus status;
 
 
     @ApiModelProperty("创建时间")
     @ApiModelProperty("创建时间")
     @TableField(value = "create_time_")
     @TableField(value = "create_time_")
@@ -75,4 +76,4 @@ public class Degree implements Serializable {
     public Integer getTenantId() {
     public Integer getTenantId() {
         return Optional.ofNullable(tenantId).orElse(TenantContextHolder.getTenantId());
         return Optional.ofNullable(tenantId).orElse(TenantContextHolder.getTenantId());
     }
     }
-}
+}

+ 52 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EDegreeStatus.java

@@ -0,0 +1,52 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2023-04-10
+ */
+@Getter
+public enum EDegreeStatus implements BaseEnum<String, EDegreeStatus> {
+
+    /**
+     * 未开始
+     */
+    NOT_START("NOT_START", "未开始"),
+
+    /**
+     * 进行中
+     */
+    START("START", "进行中"),
+
+    /**
+     * 已结束
+     */
+    END("END", "已结束"),
+    ;
+
+    @EnumValue
+    private String code;
+
+
+    private String msg;
+
+    EDegreeStatus(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    /**
+     * 获取枚举类的code值
+     *
+     * @return
+     */
+    @Override
+    public String getCode() {
+        return null;
+    }
+}

+ 66 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeWrapper.java

@@ -1,9 +1,16 @@
 package com.ym.mec.biz.dal.wrapper;
 package com.ym.mec.biz.dal.wrapper;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.ym.mec.biz.dal.enums.EDegreeStatus;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+import java.util.List;
 import java.util.Optional;
 import java.util.Optional;
 
 
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
@@ -11,6 +18,7 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.hibernate.validator.cfg.defs.EANDef;
 
 
 /**
 /**
  * 考级信息
  * 考级信息
@@ -32,9 +40,21 @@ public class DegreeWrapper {
         @ApiModelProperty("分页行数")
         @ApiModelProperty("分页行数")
         private Integer rows;
         private Integer rows;
         
         
-        @ApiModelProperty("关键字匹配")
+        @ApiModelProperty("考级名称/编号")
 		private String keyword;
 		private String keyword;
-        
+
+
+        @ApiModelProperty("开始时间")
+        private Date startTime;
+
+        @ApiModelProperty("结束时间")
+        private Date endTime;
+
+        @ApiModelProperty("报名状态 NOT_START:未开始,START:报名中,END:报名结束")
+        private EDegreeStatus status;
+
+        private Integer tenantId;
+
         public String getKeyword() {
         public String getKeyword() {
             return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
             return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
         }
         }
@@ -48,9 +68,51 @@ public class DegreeWrapper {
         }
         }
     }  
     }  
 
 
+    @Data
 	@ApiModel(" Degree-考级信息")
 	@ApiModel(" Degree-考级信息")
     public static class Degree {
     public static class Degree {
-        
+
+
+        @ApiModelProperty("主键ID")
+        private Long id;
+
+        @ApiModelProperty("机构ID")
+        private Integer tenantId;
+
+        @ApiModelProperty("分部ID")
+        private String organIds;
+
+        @ApiModelProperty("分部名称")
+        private List<String> organNames;
+
+        @ApiModelProperty("考级名称")
+        private String name;
+
+        @ApiModelProperty("报名开始时间")
+        private Date startTime;
+
+        @ApiModelProperty("报名结束时间")
+        private Date endTime;
+
+        @ApiModelProperty("登记时间")
+        private Date registrationTime;
+
+        @ApiModelProperty("报名人次")
+        private Integer registerTotal;
+
+        @ApiModelProperty("报名人数")
+        private Integer registerNum;
+
+        @ApiModelProperty("购买课程")
+        private Integer purchaseCourse;
+
+        @ApiModelProperty("报名状态 NOT_START:未开始,START:报名中,END:报名结束")
+        private EDegreeStatus status;
+
+        @ApiModelProperty("创建时间")
+        private Date createTime;
+
+
         public String jsonString() {
         public String jsonString() {
             return JSON.toJSONString(this);
             return JSON.toJSONString(this);
         }
         }
@@ -60,4 +122,4 @@ public class DegreeWrapper {
         }
         }
 	}
 	}
 
 
-}
+}

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/DegreeService.java

@@ -24,7 +24,7 @@ public interface DegreeService extends IService<Degree>  {
      * @param query DegreeWrapper.DegreeQuery
      * @param query DegreeWrapper.DegreeQuery
      * @return IPage<Degree>
      * @return IPage<Degree>
      */
      */
-    IPage<Degree> selectPage(IPage<Degree> page, DegreeWrapper.DegreeQuery query);
+    IPage<DegreeWrapper.Degree> selectPage(IPage<Degree> page, DegreeWrapper.DegreeQuery query);
 	
 	
     /**
     /**
      * 添加
      * 添加
@@ -40,4 +40,4 @@ public interface DegreeService extends IService<Degree>  {
      */
      */
      Boolean update(DegreeWrapper.Degree degree);
      Boolean update(DegreeWrapper.Degree degree);
      
      
-}
+}

+ 52 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeServiceImpl.java

@@ -3,13 +3,22 @@ package com.ym.mec.biz.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
-import org.springframework.beans.BeanUtils;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import com.ym.mec.biz.dal.entity.Degree;
 import com.ym.mec.biz.dal.entity.Degree;
 import com.ym.mec.biz.dal.wrapper.DegreeWrapper;
 import com.ym.mec.biz.dal.wrapper.DegreeWrapper;
 import com.ym.mec.biz.dal.mapper.DegreeMapper;
 import com.ym.mec.biz.dal.mapper.DegreeMapper;
 import com.ym.mec.biz.service.DegreeService;
 import com.ym.mec.biz.service.DegreeService;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * 考级信息
  * 考级信息
@@ -19,6 +28,9 @@ import com.ym.mec.biz.service.DegreeService;
 @Service
 @Service
 public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> implements DegreeService {
 public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> implements DegreeService {
 
 
+    @Autowired
+    private OrganizationService organizationService;
+
 	/**
 	/**
      * 查询详情
      * 查询详情
      * @param id 详情ID
      * @param id 详情ID
@@ -37,9 +49,44 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
      * @return IPage<Degree>
      * @return IPage<Degree>
      */
      */
     @Override
     @Override
-    public IPage<Degree> selectPage(IPage<Degree> page, DegreeWrapper.DegreeQuery query) {
-        
-        return page.setRecords(baseMapper.selectPage(page, query));
+    public IPage<DegreeWrapper.Degree> selectPage(IPage<Degree> page, DegreeWrapper.DegreeQuery query) {
+
+        Integer tenantId = TenantContextHolder.getTenantId();
+        query.setTenantId(tenantId);
+
+        IPage<Degree> degreeIPage = page.setRecords(baseMapper.selectPage(page, query));
+        List<Degree> records = degreeIPage.getRecords();
+        IPage<DegreeWrapper.Degree> result = degreeIPage.convert(o -> new DegreeWrapper.Degree());
+        if (CollectionUtils.isEmpty(records)) {
+            return result;
+        }
+        // 设置分部信息
+        List<DegreeWrapper.Degree> degrees = JSON.parseArray(JSON.toJSONString(records), DegreeWrapper.Degree.class);
+
+        // 所有的分部id
+        List<Integer> organIds = degrees.stream()
+                                    .flatMap(o -> Arrays.stream(o.getOrganIds().split(",")))
+                                    .filter(Objects::nonNull)
+                                    .map(Integer::valueOf)
+                                    .distinct()
+                                    .collect(Collectors.toList());
+
+        List<Organization> organs = organizationService.findOrgans(organIds, tenantId);
+
+        degrees.forEach(o -> {
+            List<String> organNames = Arrays.stream(o.getOrganIds().split(","))
+                    .filter(Objects::nonNull)
+                    .map(Integer::valueOf)
+                    .distinct()
+                    .flatMap(organId -> organs.stream()
+                            .filter(organ -> organ.getId().equals(organId))
+                            .map(Organization::getName)
+                    ).collect(Collectors.toList());
+            o.setOrganNames(organNames);
+        });
+
+        return result.setRecords(degrees);
+
     }
     }
 	
 	
     /**
     /**
@@ -63,4 +110,4 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
 
 
         return this.updateById(JSON.parseObject(degree.jsonString(), Degree.class));       
         return this.updateById(JSON.parseObject(degree.jsonString(), Degree.class));       
     }
     }
-}
+}

+ 16 - 2
mec-biz/src/main/resources/config/mybatis/DegreeMapper.xml

@@ -6,6 +6,20 @@
 		SELECT         
 		SELECT         
         	t.*
         	t.*
 		FROM degree t
 		FROM degree t
+        <where>
+            <if test="param.keyword != null and param.keyword != ''">
+                AND (t.name_ LIKE CONCAT('%',#{param.keyword},'%') OR t.id_ LIKE CONCAT('%',#{param.keyword},'%'))
+            </if>
+            <if test="param.startTime !=null and param.endTime != null">
+                and t.start_time_ &lt;= #{param.endTime} and t.end_time_ &gt;= #{param.startTime}
+            </if>
+            <if test="param.status != null">
+                and t.status_ = #{param.status}
+            </if>
+            <if test="param.tenantId != null">
+                and t.tenant_id_ = #{param.tenantId}
+            </if>
+        </where>
 	</select>
 	</select>
-    
-</mapper>
+
+</mapper>