package com.template.controller; import com.alibaba.fastjson.JSON; import com.template.api.WelcomeStudentControllerAPI; import com.template.common.utils.paramUtils; import com.template.model.pojo.WelcomeAccompany; import com.template.model.pojo.WelcomeFamily; import com.template.model.pojo.WelcomeStudent; import com.template.model.pojo.WelcomeStudentDormitory; import com.template.model.request.InsertAccompanyRequest; import com.template.model.request.InsertFamilyRequest; import com.template.model.request.InsertStudentRequest; import com.template.model.result.CommonResult; import com.template.model.result.PageUtils; import com.template.model.vo.StudentPageVo; import com.template.services.WelcomeAccompanyService; import com.template.services.WelcomeFamilyService; import com.template.services.WelcomeStudentDormitoryService; import com.template.services.WelcomeStudentService; import io.swagger.annotations.ApiModelProperty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.spring.web.json.Json; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; /** *

* 前端控制器 *

* * @author ceshi * @since 2025-06-13 */ @RestController public class WelcomeStudentController implements WelcomeStudentControllerAPI { @Autowired private WelcomeStudentService welcomeStudentService; @Autowired private WelcomeFamilyService welcomeFamilyService; @Autowired private WelcomeAccompanyService welcomeAccompanyService; @Autowired private WelcomeStudentDormitoryService welcomeStudentDormitoryService; private static Logger logger = LoggerFactory.getLogger(WelcomeStudentController.class); @Override @Transactional(rollbackFor = {Exception.class}) public CommonResult insertStudentInfo(InsertStudentRequest isr, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { String st = paramUtils.getParamError(bindingResult); return CommonResult.fail(st); } int existCount = welcomeStudentService.existStudentInfo(isr.getAdmissNum(), isr.getCardId()); if (existCount > 0) { return CommonResult.fail("当前录取号或身份证号已存在!"); } //region 学生信息 WelcomeStudent ws = new WelcomeStudent(); ws.setAdmissNum(isr.getAdmissNum()); ws.setName(isr.getName()); ws.setPicture(isr.getPicture()); ws.setCardId(isr.getCardId()); ws.setSex(isr.getSex()); ws.setBirthday(isr.getBirthday()); ws.setCollege(isr.getCollege()); ws.setMajor(isr.getMajor()); ws.setClassstr(isr.getClassstr()); ws.setExamNum(isr.getExamNum()); ws.setEduSystem(isr.getEduSystem()); ws.setGraduationSchool(isr.getGraduationSchool()); ws.setBatchValue(isr.getBatchValue()); ws.setPoliticalStatu(isr.getPoliticalStatu()); ws.setNationality(isr.getNationality()); ws.setPhone(isr.getPhone()); ws.setOprovinceId(isr.getOprovinceId()); ws.setOcityId(isr.getOcityId()); ws.setOdistrictId(isr.getOdistrictId()); ws.setProvinceId(isr.getProvinceId()); ws.setCityId(isr.getCityId()); ws.setDistrictId(isr.getDistrictId()); ws.setAddress(isr.getAddress()); ws.setTrafficMethod(isr.getTrafficMethod()); ws.setArrive(isr.getArrive()); ws.setArrvieDate(isr.getArrvieDate()); ws.setArriveTime(isr.getArriveTime()); //ws.setAmountPayable(isr.getAmountPayable()); //ws.setPayAmount(isr.getPayAmount()); //ws.setIsDrive(isr.getIsDrive()); //ws.setCarNumber(isr.getCarNumber()); //endregion //region 家庭成员数据 List wfs = new ArrayList<>(); if (isr.getFamilys() != null && isr.getFamilys().size() > 0) { for (InsertFamilyRequest family : isr.getFamilys()) { WelcomeFamily wf = new WelcomeFamily(); wf.setStudentCard(ws.getCardId()); wf.setFamilyShip(family.getFamilyShip()); wf.setName(family.getName()); wf.setWorkUnit(family.getWorkUnit()); wf.setPhone(family.getPhone()); wfs.add(wf); } } //endregion //region 陪同人员数据 List was = new ArrayList<>(); if (isr.getAccompanys() != null && isr.getAccompanys().size() > 0) { for (InsertAccompanyRequest accompany : isr.getAccompanys()) { WelcomeAccompany wa = new WelcomeAccompany(); wa.setStudentCard(ws.getCardId()); wa.setName(accompany.getName()); wa.setPhone(accompany.getPhone()); was.add(wa); } } //endregion //region 宿舍信息 WelcomeStudentDormitory wsd = new WelcomeStudentDormitory(); wsd.setStudentCard(isr.getCardId()); wsd.setBuilding(isr.getBilding()); wsd.setDormitory(isr.getDormitory()); wsd.setBedNum(isr.getBednum()); //endregion try { int studentId = welcomeStudentService.insertWelcomeStudent(ws); if (studentId <= 0) { logger.error("添加学生失败,参数:" + JSON.toJSON(isr)); throw new Exception("添加失败!"); } if (wfs != null && wfs.size() > 0) { boolean insertBatch = welcomeFamilyService.saveBatch(wfs); if (!insertBatch) { logger.error("添加家庭成员失败,参数:" + JSON.toJSON(wfs)); throw new Exception("添加失败!"); } } if (was != null && was.size() > 0) { boolean insertBatch = welcomeAccompanyService.saveBatch(was); if (!insertBatch) { logger.error("添加陪同人员失败,参数:" + JSON.toJSON(was)); throw new Exception("添加失败!"); } } int insertStudentDormitory = welcomeStudentDormitoryService.insertWelcomeStudentDormitory(wsd); if(insertStudentDormitory <= 0){ logger.error("添加宿舍信息失败,参数:" + JSON.toJSON(wsd)); throw new Exception("添加失败!"); } } catch (Exception e) { logger.error(e.getMessage()); throw new Exception("添加失败!"); } return CommonResult.ok("添加成功"); } @Override public CommonResult queryPageStudents(int currentPage, int pageCount, String college, String major, String classstr, String trafficMethod, String name) { PageUtils result = welcomeStudentService.queryStudentPageList(currentPage, pageCount, college, major, classstr, trafficMethod, name); return CommonResult.ok(result); } }