| 
					
				 | 
			
			
				@ -1,8 +1,14 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.care.service.course; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.fasterxml.jackson.databind.ObjectMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.dao.course.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.doctor.dao.BaseDoctorDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.doctor.BaseDoctorDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.care.course.CourseDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.care.course.CourseSalesOrderRecordDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.care.course.PatientOrderRefundDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.care.course.RecruitStudentsRecordDO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -10,10 +16,13 @@ import com.yihu.jw.entity.order.BusinessOrderDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.order.dao.BusinessOrderDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.patient.dao.BasePatientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.ResponseContant; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.utils.StringUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.BeanPropertyRowMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.JdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -47,6 +56,10 @@ public class CourseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BusinessOrderDao businessOrderDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private PatientOrderRefundDao patientOrderRefundDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ObjectMapper objectMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDoctorHospitalDao baseDoctorHospitalDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getOrderNo(String type){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return type + System.currentTimeMillis()+(int)(Math.random() * 900)+100 +""; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -110,22 +123,26 @@ public class CourseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(flag){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //支付信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("payPrice",businessOrderDO.getPayPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("payTime",businessOrderDO.getPayTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("payType",businessOrderDO.getPayType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resJson.put("businessOrderDO",json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(businessOrderDO!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("payPrice",businessOrderDO.getPayPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("payTime",DateUtil.dateToStrLong(businessOrderDO.getPayTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("payType",businessOrderDO.getPayType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resJson.put("businessOrderDO",json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("5".equals(status)||"6".equals(status)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //退款信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            PatientOrderRefundDO refundDO = patientOrderRefundDao.findByTypeAndOrderId(type,id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("createTime",refundDO.getCreateTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("refundPrice",refundDO.getRefundPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("status",refundDO.getStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("refundDesc",refundDO.getRefundDesc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("enclosure",refundDO.getEnclosure()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resJson.put("refundDO",json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(refundDO!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("createTime", DateUtil.dateToStrLong(refundDO.getCreateTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("refundPrice",refundDO.getRefundPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("status",refundDO.getStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("refundDesc",refundDO.getRefundDesc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("enclosure",refundDO.getEnclosure()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resJson.put("refundDO",json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return resJson; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -167,6 +184,75 @@ public class CourseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 新增课程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param jsonData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject addCourse(String doctorId,String jsonData){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject json = JSON.parseObject(jsonData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorDO doctorDO = doctorDao.findById(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorHospitalDO> baseDoctorHospitalDO = baseDoctorHospitalDao.findByDoctorCode(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        CourseDO courseDO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            courseDO = objectMapper.readValue(json.getJSONObject("course").toString(), CourseDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put(ResponseContant.resultFlag, ResponseContant.fail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put(ResponseContant.resultMsg, "传参有误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        courseDO.setStatus("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        courseDO.setDel(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        courseDO.setDoctor(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        courseDO.setDoctorName(doctorDO.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        courseDO.setOrgCode(baseDoctorHospitalDO.get(0).getOrgCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        courseDO.setOrgName(baseDoctorHospitalDO.get(0).getOrgName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("1".equals(courseDO.getType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //直播课程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            courseDO.setLiveStatus("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put(ResponseContant.resultFlag, ResponseContant.success); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 教师我的课程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject myCourseList(String doctor,String type, int page, int size) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int start = 0 == page ? page++ : (page - 1) * size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int end = 0 == size ? 3 : size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String filter = " where a.doctor = '"+doctor+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtil.isBlank(type)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter += " and a.type = '"+type+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "SELECT * from base_course a " +filter + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " ORDER BY a.create_time desc " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " LIMIT {start},{end};"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String finalSql = sql.replace("{start}", String.valueOf(start)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{end}", String.valueOf(end)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String countSql = "SELECT count(a.id) FROM base_course a " +filter ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<CourseDO> sqlResultlist = jdbcTemplate.query(finalSql,new BeanPropertyRowMapper<>(CourseDO.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Long count = jdbcTemplate.queryForObject(countSql, Long.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put(ResponseContant.resultFlag, ResponseContant.success); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put(ResponseContant.resultMsg, sqlResultlist); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject countItem = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        countItem.put("count", count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.putAll(countItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 居民我的订单列表 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -185,14 +271,14 @@ public class CourseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filter += " and status = "+ status +" "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlUnion = " SELECT id,`status`,recruit_name title,pay_type payType,price,1 type,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') createTtime " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlUnion = " SELECT id,`status`,recruit_name title,pay_type payType,price,1 type,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') createTime " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from base_recruit_students_record " + filter+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " UNION ALL " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " SELECT id,`status`,course_name title,pay_type payType,price,2 type,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') createTtime  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " SELECT id,`status`,course_name title,pay_type payType,price,2 type,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') createTime  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from base_course_sales_order_record " + filter+" "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "SELECT * from ( " + sqlUnion + " ) a " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " ORDER BY a.createTtime desc " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " ORDER BY a.createTime desc " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " LIMIT {start},{end};"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String finalSql = sql.replace("{start}", String.valueOf(start)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .replace("{end}", String.valueOf(end)); 
			 |