package com.ygj.yuemum.service.college; import com.ygj.yuemum.component.Constant; import com.ygj.yuemum.dao.college.CollegeCurriculumPracticeDao; import com.ygj.yuemum.domain.college.*; import com.ygj.yuemum.domain.wxmini.WXUser; import com.ygj.yuemum.service.wxmini.WXUserService; import com.ygj.yuemum.utils.DateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; @Service public class CollegeCurriculumPracticeService { public Integer LMP = Constant.LMP; public Integer AGE = Constant.AGE; @Autowired private CollegeCurriculumPracticeDao collegeCurriculumPracticeDao; @Autowired private WXUserService wxUserService; public List getCollegeCurriculumPractices() { List collegeCurriculumPractices = collegeCurriculumPracticeDao.getAll(); return collegeCurriculumPractices; } public CollegeCurriculumPractice getCollegeCurriculumPractice(Integer id) { CollegeCurriculumPractice collegeCurriculumPractice = collegeCurriculumPracticeDao.selectByPrimaryKey(id); return collegeCurriculumPractice; } public CollegeCurriculumPractice queryPracticeDetail(CollegeQuery collegeQuery) throws ParseException { CollegeCurriculumPractice collegeCurriculumPractice = collegeCurriculumPracticeDao.queryPracticeDetail(collegeQuery); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sd = new SimpleDateFormat("MM-dd HH:mm"); long beginMillisecond = new Date().getTime(); long endMillisecond = sdf.parse(collegeCurriculumPractice.getDeadline()).getTime(); if(beginMillisecond > endMillisecond) { if(collegeCurriculumPractice.getLearningStatus() != null && collegeCurriculumPractice.getLearningStatus().equals("9")) { collegeCurriculumPractice.setLearningStatus("已完成"); collegeCurriculumPractice.setStatus("已完成"); } else { collegeCurriculumPractice.setLearningStatus("已过期"); collegeCurriculumPractice.setStatus("已过期"); } } else { if(collegeCurriculumPractice.getLearningStatus() != null && collegeCurriculumPractice.getLearningStatus().equals("9")) { collegeCurriculumPractice.setLearningStatus("已完成"); collegeCurriculumPractice.setStatus("已完成"); } else if (collegeCurriculumPractice.getLearningStatus() != null && collegeCurriculumPractice.getLearningStatus().equals("1")) { collegeCurriculumPractice.setLearningStatus("已报名"); collegeCurriculumPractice.setStatus("查看报名"); } else { collegeCurriculumPractice.setLearningStatus("待完成"); collegeCurriculumPractice.setStatus("立即报名"); } } collegeCurriculumPractice.setStartdate(sd.format(sdf.parse(collegeCurriculumPractice.getStartdate()))); collegeCurriculumPractice.setEnddate(sd.format(sdf.parse(collegeCurriculumPractice.getEnddate()))); collegeCurriculumPractice.setDeadline(sd.format(sdf.parse(collegeCurriculumPractice.getDeadline()))); return collegeCurriculumPractice; } public int addCollegeCurriculumPractice(CollegeCurriculumPractice collegeCurriculumPractice) { return collegeCurriculumPracticeDao.insertSelective(collegeCurriculumPractice); } public int deleteCollegeCurriculumPractice(Integer id) { return collegeCurriculumPracticeDao.deleteByPrimaryKey(id); } public int updateCollegeCurriculumPractice(CollegeCurriculumPractice collegeCurriculumPractice) { return collegeCurriculumPracticeDao.updateByPrimaryKeySelective(collegeCurriculumPractice); } public List queryPracticeByStep(CollegeCurriculumPractice collegeCurriculumPractice) { return collegeCurriculumPracticeDao.queryPracticeByStep(collegeCurriculumPractice); } public LinkedHashMap queryUserLearningPractice(String openid) { WXUser wxUser = wxUserService.getWXUser(openid); LinkedHashMap tableData = new LinkedHashMap<>(); try { if (wxUser != null && wxUser.getXu_content_type() != null && wxUser.getXu_content_date() != null && wxUser.getXu_phone() != null) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date dateNow = new Date(); Date getDate = sdf.parse(wxUser.getXu_content_date()); CollegeCurriculumQuery collegeCurriculumQuery = new CollegeCurriculumQuery(); collegeCurriculumQuery.setOpenid(openid); collegeCurriculumQuery.setC_type(wxUser.getXu_content_type()); if (wxUser.getXu_content_type().equals("B01")) { if (dateNow.getTime() < getDate.getTime()) { //还没出生 return null; } else { if (DateUtil.getMonthDiff(dateNow, getDate) + 1 > AGE) { collegeCurriculumQuery.setC_step(AGE); } else { collegeCurriculumQuery.setC_step(AGE - DateUtil.getMonthDiff(dateNow, getDate) + 1); } } } else if (wxUser.getXu_content_type().equals("P01")) { if (dateNow.getTime() < getDate.getTime()) { if (LMP - DateUtil.getWeekDiff(dateNow, getDate) < 0) { return null; //还没怀孕 } else { collegeCurriculumQuery.setC_step(LMP - DateUtil.getWeekDiff(dateNow, getDate)); } } else { collegeCurriculumQuery.setC_step(LMP); //已出生 } } else { return null; } List collegeCurriculumPractices = collegeCurriculumPracticeDao.queryUserLearningPractice(collegeCurriculumQuery); for (CollegeCurriculumPractice collegeCurriculumPractice : collegeCurriculumPractices) { if (collegeCurriculumPractice.getStatus().equals("9")) { //1-已预约,2-学习中,3-已过期, 9-已完成 collegeCurriculumPractice.setStatus("已完成"); } else { if (collegeCurriculumPractice.getC_step() >= DateUtil.getWeekDiff(dateNow, getDate)) { collegeCurriculumPractice.setStatus("待完成"); } else { collegeCurriculumPractice.setStatus("未完成"); } } } tableData.put("collegeCurriculumPractices", collegeCurriculumPractices); return tableData; } else { return null; } } catch ( Exception ex) { ex.printStackTrace(); return null; } } }