From 045b55722b25ccc77d88671c5d6df309edb8a66d Mon Sep 17 00:00:00 2001
From: 钟日健 <5689795+arsn@user.noreply.gitee.com>
Date: Tue, 22 Feb 2022 16:00:34 +0800
Subject: [PATCH] 1. 保安员新增异步推送数据至群访用户表 2. 会员标记接口新增,会员标记成功,则创建会员记录和会员题库记录(包含120道题目) 3. web 端考试开始,查询题目判断用户是否为会员,如果为会员则从会员题库获取当前人员的考试题目(从120道题中随机抽取60道)

---
 src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java |   97 +++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 75 insertions(+), 22 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 f7e911a..86a8c07 100644
--- a/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
+++ b/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
@@ -11,11 +11,13 @@
 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
 import org.apache.commons.lang3.StringUtils;
 import org.springblade.common.constant.AgeUtil;
+import org.springblade.common.utils.FtpSyncUtil;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.FTP.FtpUtil;
 import org.springblade.modules.apply.entity.Apply;
@@ -23,11 +25,15 @@
 import org.springblade.modules.exam.service.ExamPaperService;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IUserService;
+import org.springblade.modules.system.vo.UserVO;
 import org.springblade.modules.training.entity.TrainingRegistration;
 import org.springblade.modules.training.excel.TrainingRegistrationExcel;
 import org.springblade.modules.training.excel.TrainingRegistrationImporter;
 import org.springblade.modules.training.service.TrainingRegistrationService;
 import org.springblade.modules.training.vo.TrainingRegistrationVo;
+import org.springblade.modules.vip.service.UserVipService;
+import org.springblade.modules.vip.service.VipTopicService;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -35,6 +41,7 @@
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * @author zhongrj
@@ -51,6 +58,10 @@
 	private final IUserService userService;
 
 	private final ExamPaperService examPaperService;
+
+	private final UserVipService userVipService;
+
+	private final VipTopicService vipTopicService;
 
 	/**
 	 * 自定义分页
@@ -124,10 +135,10 @@
 	/**
 	 * 报名
 	 */
-	private void saveTrainingRegistration(TrainingRegistration trainingRegistration,User user1){
+	private StringBuilder batchSaveTrainingRegistration(TrainingRegistration trainingRegistration,User user1,StringBuilder builder){
 		String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
 		Long id = trainingRegistration.getId();
-		String s = "insert into sys_training_registration(id,training_unit_id,training_time,cancel,user_id,is_exam,audit_status) " +
+		String sql = "insert into sys_training_registration(id,training_unit_id,training_time,cancel,user_id,is_exam,audit_status) " +
 			"values(" + "'" + id + "'"
 			+ "," + "'" + trainingRegistration.getTrainingUnitId() +"'"
 			+ "," + "'" + formatStr +"'"
@@ -136,7 +147,25 @@
 			+ "," + "'" + trainingRegistration.getIsExam() + "'"
 			+ "," +"'" + trainingRegistration.getAuditStatus() + "'" + ");" +
 			"update blade_user set is_train = " + user1.getIsTrain() + " " +"where id = " + "'" + user1.getId() + "'";
-		FtpUtil.sqlFileUpload(s);
+		return FtpSyncUtil.sqlHandler(builder, sql,500);
+	}
+
+	/**
+	 * 报名
+	 */
+	private void saveTrainingRegistration(TrainingRegistration trainingRegistration,User user1){
+		String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+		Long id = trainingRegistration.getId();
+		String sql = "insert into sys_training_registration(id,training_unit_id,training_time,cancel,user_id,is_exam,audit_status) " +
+			"values(" + "'" + id + "'"
+			+ "," + "'" + trainingRegistration.getTrainingUnitId() +"'"
+			+ "," + "'" + formatStr +"'"
+			+ "," + "'" + trainingRegistration.getCancel() + "'"
+			+ "," + "'" + trainingRegistration.getUserId() + "'"
+			+ "," + "'" + trainingRegistration.getIsExam() + "'"
+			+ "," +"'" + trainingRegistration.getAuditStatus() + "'" + ");" +
+			"update blade_user set is_train = " + user1.getIsTrain() + " " +"where id = " + "'" + user1.getId() + "'";
+		FtpUtil.sqlFileUpload(sql);
 	}
 
 
@@ -175,13 +204,9 @@
 				if (status){
 					return R.data(200,"取消报名成功");
 				}
-
-
-
 			}else {
 				return R.data(201,"尚未报名");
 			}
-
 		}
 		return R.data(202,"取消报名失败");
 	}
@@ -281,12 +306,13 @@
 		AtomicInteger count  = new AtomicInteger();
 		//创建年龄部分对象集合
 		List<String> errorList = new ArrayList<>();
+//		AtomicReference<StringBuilder> builder = new AtomicReference<>(new StringBuilder());
 		//遍历
 		list.forEach(userId ->{
 			User user = userService.getById(userId);
+			UserVO userVO = userService.getUserAgeById(Long.parseLong(userId));
 			//判断年龄
-			Integer age = AgeUtil.idCardToAge(user.getCardid());
-			if (age>=18 && age<=60) {
+			if (userVO.getAge()>=18 && userVO.getAge()<=60) {
 				//未报名的新增,已报名的不做处理
 				if (null == user.getIsTrain()) {
 					TrainingRegistration trainingRegistration1 = new TrainingRegistration();
@@ -304,7 +330,8 @@
 					userService.updateById(user);
 
 					//数据同步
-					saveTrainingRegistration(trainingRegistration1, user);
+					saveTrainingRegistration(trainingRegistration1,user);
+//					builder.set(batchSaveTrainingRegistration(trainingRegistration1, user, builder.get()));
 				} else {
 					if (user.getIsTrain() != 1) {
 						TrainingRegistration trainingRegistration1 = new TrainingRegistration();
@@ -322,7 +349,8 @@
 						userService.updateById(user);
 
 						//数据同步
-						saveTrainingRegistration(trainingRegistration1, user);
+						saveTrainingRegistration(trainingRegistration1,user);
+//						builder.set(batchSaveTrainingRegistration(trainingRegistration1, user, builder.get()));
 					}
 				}
 			}else {
@@ -332,6 +360,10 @@
 				errorList.add(user.getCardid());
 			}
 		});
+//		//同步
+//		if (builder.get().length()>0) {
+//			FtpSyncUtil.slqSync(builder.get());
+//		}
 		//如果存在年龄不符的,则抛出异常
 		if (count.get()>0){
 			String errorAccount = StringUtils.join(errorList, "\\\n");
@@ -378,17 +410,16 @@
 		return R.data(detail);
 	}
 
-//	/**
-//	 * 导出报名数数据
-//	 * @param response
-//	 * @param trainingRegistration 培训报名对象
-//	 */
-//	@GetMapping("export-apply")
-//	@ApiOperation(value = "导出报名清册")
-//	public void exportApply(HttpServletResponse response,TrainingRegistrationVo trainingRegistration) {
-//		List<TrainingRegistrationExcel> list = trainingRegistrationService.getTrainingRegistrationExcelList(trainingRegistration);
-//		ExcelUtil.export(response, "培训报名清册数据"+ DateUtil.time(), "培训报名清册数据表", list, TrainingRegistrationExcel.class);
-//	}
+	/**
+	 * 导出报名数数据
+	 * @param response
+	 * @param trainingRegistration 培训报名对象
+	 */
+	@GetMapping("export-apply-info")
+	public void exportApplyInfo(HttpServletResponse response,TrainingRegistrationVo trainingRegistration) {
+		List<TrainingRegistrationExcel> list = trainingRegistrationService.getTrainingRegistrationExcelList(trainingRegistration);
+		ExcelUtil.export(response, "报名清册数据"+ DateUtil.time(), "报名清册数据表", list, TrainingRegistrationExcel.class);
+	}
 
 
 
@@ -690,4 +721,26 @@
 		}
 		return null;
 	}
+
+
+	/**
+	 * 是否为会员标记
+	 * @param trainingRegistration
+	 * @return
+	 */
+	@PostMapping("/vipSign")
+	@Transactional(rollbackFor = Exception.class)
+	public R vipSign(@RequestBody TrainingRegistration trainingRegistration){
+		//新增会员记录
+		userVipService.insertUserVipInfo(trainingRegistration);
+		//新增会员题库记录
+		vipTopicService.insertVipTopicInfo(trainingRegistration);
+		//内网报名信息同步
+		String s1 =
+			"update sys_training_registration set vip_status = " + "'" + trainingRegistration.getVipStatus() + "'"
+				+ " " + "where id = " + "'" + trainingRegistration.getId() + "'";
+		FtpUtil.sqlFileUpload(s1);
+		//更新并返回数据
+		return R.data(trainingRegistrationService.updateById(trainingRegistration));
+	}
 }

--
Gitblit v1.9.3