From 6c9cfe306ef87bd2772f43896913e681df3ec7bf Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 28 Jul 2021 20:51:11 +0800
Subject: [PATCH] 培训报名接口修改

---
 src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java    |    6 +
 src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java |    9 ++
 src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml             |   25 +++++++-
 src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java                    |   41 +++++++++++++
 src/main/java/org/springblade/modules/training/util/LongTimeUtil.java                            |   44 ++++++++++++++
 src/main/java/org/springblade/modules/training/entity/TrainingRegistration.java                  |   23 +++++--
 6 files changed, 134 insertions(+), 14 deletions(-)

diff --git a/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java b/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
index 4f738cc..573bedc 100644
--- a/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
+++ b/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
@@ -56,7 +56,7 @@
 	 */
 	@PostMapping("/update")
 	public R update(@RequestBody TrainingRegistration trainingRegistration) throws Exception {
-		arg.test01(arg.url+"/trainingRegistration/update",trainingRegistration);
+//		arg.test01(arg.url+"/trainingRegistration/update",trainingRegistration);
 		return R.status(trainingRegistrationService.updateById(trainingRegistration));
 	}
 
@@ -66,7 +66,9 @@
 	 */
 	@PostMapping("/submit")
 	public R submit(@RequestBody TrainingRegistration trainingRegistration) throws Exception {
-		arg.test01(arg.url+"/trainingRegistration/submit",trainingRegistration);
+		trainingRegistration.setTrainingTime(new Date());
+		trainingRegistration.setCancel(1);
+//		arg.test01(arg.url+"/trainingRegistration/submit",trainingRegistration);
 		return R.status(trainingRegistrationService.saveOrUpdate(trainingRegistration));
 	}
 
diff --git a/src/main/java/org/springblade/modules/training/entity/TrainingRegistration.java b/src/main/java/org/springblade/modules/training/entity/TrainingRegistration.java
index 607bd64..8c780a6 100644
--- a/src/main/java/org/springblade/modules/training/entity/TrainingRegistration.java
+++ b/src/main/java/org/springblade/modules/training/entity/TrainingRegistration.java
@@ -59,9 +59,10 @@
 	private String weight;
 
 	/**
-	 * 报名电话
+	 * 培训报名申请id
 	 */
-	private String phone;
+	@TableField("train_exam_id")
+	private String trainExamId;
 
 	/**
 	 * 身份证号
@@ -76,19 +77,19 @@
 	private String academicUrl;
 
 	/**
-	 * 培训公司名称
+	 * 培训公司id
 	 */
-	@TableField("training_unit_name")
-	private String trainingUnitName;
+	@TableField("training_unit_id")
+	private String trainingUnitId;
 
 
 
 	/**
-	 * 培训时间
+	 * 培训报名时间
 	 */
 	@TableField("training_time")
-	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
-	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date trainingTime;
 
 	/**
@@ -96,4 +97,10 @@
 	 */
 	private Integer cancel;
 
+	/**
+	 * 报名人员id
+	 */
+	@TableField("user_id")
+	private String userId;
+
 }
diff --git a/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml b/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml
index 0d23c0c..ccd7cd0 100644
--- a/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml
+++ b/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml
@@ -5,20 +5,39 @@
     <!--报名培训分页信息-->
     <select id="selectTrainingRegistrationPage" resultType="org.springblade.modules.training.vo.TrainingRegistrationVo">
         SELECT
-            sr.*,bt.dept_name AS deptName
+            sr.*,
+            bt.dept_name AS deptName,
+            bt0.dept_name AS trainUnitName,
+            bu.real_name realName,bu.phone,bu.cardid idCardNo,
+            ste.start_time trainExamTime,ste.train_exam_name trainExamName
         FROM
             sys_training_registration sr
         LEFT JOIN
             blade_dept bt
         ON
             sr.dept_id = bt.id
+        LEFT JOIN
+            blade_dept bt0
+        ON
+            sr.training_unit_id = bt0.id
+        left join
+            blade_user bu
+        on
+            sr.user_id = bu.id
+        left join
+            sys_train_exam ste
+        on
+            ste.id = sr.train_exam_id
         WHERE
             1=1
+        <if test="trainingRegistration.trainingUnitId!=null and  trainingRegistration.trainingUnitId!=''">
+            and ste.dept_id = #{trainingRegistration.trainingUnitId}
+        </if>
         <if test="trainingRegistration.deptName!=null and  trainingRegistration.deptName!=''">
             and bt.dept_name like concat('%', #{trainingRegistration.deptName},'%')
         </if>
-        <if test="trainingRegistration.name!=null and  trainingRegistration.name!=''">
-            and sr.name like concat('%', #{trainingRegistration.name},'%')
+        <if test="trainingRegistration.realName!=null and  trainingRegistration.realName!=''">
+            and bu.real_name like concat('%', #{trainingRegistration.realName},'%')
         </if>
         <if test="trainingRegistration.cancel!=null">
             and sr.cancel = #{trainingRegistration.cancel}
diff --git a/src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java b/src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java
index a5086db..a3ae2de 100644
--- a/src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java
+++ b/src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java
@@ -6,8 +6,11 @@
 import org.springblade.modules.training.entity.TrainingRegistration;
 import org.springblade.modules.training.mapper.TrainingRegistrationMapper;
 import org.springblade.modules.training.service.TrainingRegistrationService;
+import org.springblade.modules.training.util.LongTimeUtil;
 import org.springblade.modules.training.vo.TrainingRegistrationVo;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * 报名培训服务实现类
@@ -18,7 +21,11 @@
 
 	@Override
 	public IPage<TrainingRegistrationVo> selectTrainingRegistrationPage(IPage<TrainingRegistrationVo> page, TrainingRegistrationVo trainingRegistration) {
-		return page.setRecords(baseMapper.selectTrainingRegistrationPage(page, trainingRegistration));
+		List<TrainingRegistrationVo> trainingRegistrationVos = baseMapper.selectTrainingRegistrationPage(page, trainingRegistration);
+		trainingRegistrationVos.forEach(trainingRegistrationVo -> {
+			trainingRegistrationVo.setRemainingTime(LongTimeUtil.getDistanceTime(trainingRegistrationVo.getTrainExamTime().getTime(), System.currentTimeMillis()));
+		});
+		return page.setRecords(trainingRegistrationVos);
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/training/util/LongTimeUtil.java b/src/main/java/org/springblade/modules/training/util/LongTimeUtil.java
new file mode 100644
index 0000000..67645a5
--- /dev/null
+++ b/src/main/java/org/springblade/modules/training/util/LongTimeUtil.java
@@ -0,0 +1,44 @@
+package org.springblade.modules.training.util;
+
+/**
+ * @author zhongrj
+ */
+public class LongTimeUtil {
+
+	/**
+	 * 计算time2减去time1的差值 差值只设置 几天 几个小时 或 几分钟  根据差值返回多长之间前或多长时间后
+	 * @param time1
+	 * @param time2
+	 * @return
+	 */
+	public static String getDistanceTime(long time1, long time2) {
+		long day = 0;
+		long hour = 0;
+		long min = 0;
+		long sec = 0;
+		long diff;
+
+		if (time1 < time2) {
+			return "已超时";
+		} else {
+			diff = time1 - time2;
+		}
+		day = diff / (24 * 60 * 60 * 1000);
+		hour = (diff / (60 * 60 * 1000) - day * 24);
+		min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
+		sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
+		if (day != 0) {
+			return day + "天"+hour + "小时"+min + "分钟" + sec + "秒";
+		}
+		if (hour != 0) {
+			return hour + "小时"+ min + "分钟" + sec + "秒";
+		}
+		if (min != 0) {
+			return min + "分钟" + sec + "秒";
+		}
+		if (sec != 0) {
+			return sec + "秒" ;
+		}
+		return "0秒";
+	}
+}
diff --git a/src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java b/src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java
index 08db50c..782b399 100644
--- a/src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java
+++ b/src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java
@@ -1,9 +1,12 @@
 package org.springblade.modules.training.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springblade.modules.training.entity.TrainingRegistration;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * @author zhongrj
@@ -15,4 +18,42 @@
 	 * 组织机构名称
 	 */
 	private String deptName;
+
+
+	/**
+	 * 距离考试截止时间
+	 */
+	private String remainingTime;
+
+	/**
+	 * 身份证号
+	 */
+	private String idCardNo;
+
+	/**
+	 * 培训考试时间
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date trainExamTime;
+
+	/**
+	 * 报名人员姓名
+	 */
+	private String realName;
+
+	/**
+	 * 联系电话
+	 */
+	private String phone;
+
+	/**
+	 * 培训公司名称
+	 */
+	private String trainUnitName;
+
+	/**
+	 * 考试名称
+	 */
+	private String trainExamName;
 }

--
Gitblit v1.9.3