|  | @ -62,7 +62,7 @@ public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @org.springframework.transaction.annotation.Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |     public MixEnvelop<Boolean, Boolean> insert(ActivityDO activityDO,String value1,String value2,String value3){
 | 
	
		
			
				|  |  |     public MixEnvelop<Boolean, Boolean> insert(ActivityDO activityDO,String value1,String value2,String value3,String registrationNumber){
 | 
	
		
			
				|  |  |         if (value2 != null && value2 !=""){
 | 
	
		
			
				|  |  |             JSONObject object = JSONObject.parseObject(value2);
 | 
	
		
			
				|  |  |             activityDO.setActivityOfflineTime(object.getDate("activityOfflineTime"));
 | 
	
	
		
			
				|  | @ -72,6 +72,7 @@ public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
 | 
	
		
			
				|  |  |         activityDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |         activityDO.setUpdateTime(new Date());
 | 
	
		
			
				|  |  |         activityDO.setDelFlag(1);
 | 
	
		
			
				|  |  |         activityDO.setRegistrationNumber(registrationNumber);
 | 
	
		
			
				|  |  |         activityDO= activityDao.save(activityDO);
 | 
	
		
			
				|  |  |         if (value3 !=null && value3 !=""){
 | 
	
		
			
				|  |  |             JSONObject object = JSONObject.parseObject(value3);
 | 
	
	
		
			
				|  | @ -190,7 +191,7 @@ public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @org.springframework.transaction.annotation.Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |     public MixEnvelop<Boolean, Boolean> update(ActivityDO activityDO, String value1, String value2, String value3) throws Exception {
 | 
	
		
			
				|  |  |     public MixEnvelop<Boolean, Boolean> update(ActivityDO activityDO, String value1, String value2, String value3,String registrationNumber) throws Exception {
 | 
	
		
			
				|  |  |         if (StringUtils.isBlank(activityDO.getId())) {
 | 
	
		
			
				|  |  |             throw new Exception("活动id不能为空!");
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -201,6 +202,7 @@ public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
 | 
	
		
			
				|  |  |             activityDO.setRegistrationTime(object.getDate("registrationTime"));
 | 
	
		
			
				|  |  |             activityDO.setDeadLine(object.getDate("deadLine"));
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         activityDO.setRegistrationNumber(registrationNumber);
 | 
	
		
			
				|  |  |         activityDO.setUpdateTime(new Date());
 | 
	
		
			
				|  |  |         activityDO.setDelFlag(1);
 | 
	
		
			
				|  |  |         //删除活动任务与奖品
 | 
	
	
		
			
				|  | @ -1046,4 +1048,162 @@ public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 查询排序
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<ActivityDO> select(){
 | 
	
		
			
				|  |  |         return activityDao.selectBySort();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 调整活动的顺序
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param array
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop updateSort(JSONArray array){
 | 
	
		
			
				|  |  |         MixEnvelop envelop = new MixEnvelop();
 | 
	
		
			
				|  |  |         for (int i=0;i<array.size();i++){
 | 
	
		
			
				|  |  |             JSONObject jsonObject = array.getJSONObject(i);
 | 
	
		
			
				|  |  |             ActivityDO activityDO = activityDao.selectById(jsonObject.getString("id"));
 | 
	
		
			
				|  |  |             activityDO.setSort(jsonObject.getInteger("sort"));
 | 
	
		
			
				|  |  |             activityDao.save(activityDO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         envelop.setObj(true);
 | 
	
		
			
				|  |  |         return envelop;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *  查询参与的竟步走活动
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param unionId
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @param page
 | 
	
		
			
				|  |  |      * @param size
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop<ActivityDO,ActivityDO> selectByUnionId(String unionId,String patient,String idCard,Integer page,Integer size){
 | 
	
		
			
				|  |  |         String sql ="select hba.* from wlyy_health_bank_activity hba right join wlyy_health_bank_task_patient_detail htpd on htpd.activity_id=hba.id " +
 | 
	
		
			
				|  |  |                 "AND htpd.union_id='"+unionId+"' AND  htpd.patient_id ='"+patient+"' and htpd.patient_idcard ='"+idCard+"' " +
 | 
	
		
			
				|  |  |                 "where hba.del_flag=1 and hba.type='竞走' order by hba.create_time desc LIMIT " + (page-1)*size+","+size;
 | 
	
		
			
				|  |  |         List<ActivityDO> activityDOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper(ActivityDO.class));
 | 
	
		
			
				|  |  |         for (ActivityDO activityDO:activityDOList){
 | 
	
		
			
				|  |  |             ActivityRuleDO activityRuleDO = activityRuleDao.selectByActivityId(activityDO.getId());
 | 
	
		
			
				|  |  |             JSONObject object = JSONObject.parseObject(activityRuleDO.getValue2());
 | 
	
		
			
				|  |  |             String activityOfflineTime = object.getString("activityOfflineTime");
 | 
	
		
			
				|  |  |             List<String> idList = Arrays.asList(activityOfflineTime.split(","));
 | 
	
		
			
				|  |  |             if (idList !=null && idList.size()!=0){
 | 
	
		
			
				|  |  |                 String startTime = idList.get(0);
 | 
	
		
			
				|  |  |                 String endTime = idList.get(1);
 | 
	
		
			
				|  |  |                 String nowTime =  DateUtil.dateToStrLong(DateUtil.getNowDate());
 | 
	
		
			
				|  |  |                 if((startTime.compareTo(nowTime)==-1&&endTime.compareTo(nowTime)==1)||startTime.compareTo(nowTime)==0||endTime.compareTo(nowTime)==0){
 | 
	
		
			
				|  |  |                     activityDO.setFlag(1);
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     activityDO.setFlag(0);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             activityDO.setActivityRuleDO(activityRuleDO);
 | 
	
		
			
				|  |  |             List<TaskDO> taskDOS = taskDao.selectByActivityId(activityDO.getId());
 | 
	
		
			
				|  |  |             if (taskDOS!=null&&taskDOS.size()!=0){
 | 
	
		
			
				|  |  |                 activityDO.setTaskDOS(taskDOS);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String sqlCount ="select count(1) AS total from wlyy_health_bank_activity hba right join wlyy_health_bank_task_patient_detail htpd on htpd.activity_id=hba.id " +
 | 
	
		
			
				|  |  |                 "where hba.del_flag=1 and hba.type='竞走' order by hba.create_time desc ";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(sqlCount);
 | 
	
		
			
				|  |  |         Long count = 0L;
 | 
	
		
			
				|  |  |         if(rstotal!=null&&rstotal.size()>0){
 | 
	
		
			
				|  |  |             count = (Long) rstotal.get(0).get("total");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccessListWithPage(HealthBankMapping.api_success,activityDOList,page,size,count);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *  获取当前居民参加的活动
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param unionId
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @param idCard
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<ActivityDO> selectNowByUnionId(String unionId,String patient,String idCard){
 | 
	
		
			
				|  |  |         String sql ="select hba.* from wlyy_health_bank_activity hba right join wlyy_health_bank_task_patient_detail htpd on htpd.activity_id=hba.id " +
 | 
	
		
			
				|  |  |                 "AND htpd.union_id='"+unionId+"' AND  htpd.patient_id ='"+patient+"' and htpd.patient_idcard ='"+idCard+"' " +
 | 
	
		
			
				|  |  |                 "where hba.del_flag=1 and hba.type='竞走' order by hba.create_time desc " ;
 | 
	
		
			
				|  |  |         List<ActivityDO> activityDOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper(ActivityDO.class));
 | 
	
		
			
				|  |  |         List<ActivityDO> activityDOS = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (ActivityDO activityDO:activityDOList){
 | 
	
		
			
				|  |  |             ActivityRuleDO activityRuleDO = activityRuleDao.selectByActivityId(activityDO.getId());
 | 
	
		
			
				|  |  |             JSONObject object = JSONObject.parseObject(activityRuleDO.getValue2());
 | 
	
		
			
				|  |  |             String activityOfflineTime = object.getString("activityOfflineTime");
 | 
	
		
			
				|  |  |             List<String> idList = Arrays.asList(activityOfflineTime.split(","));
 | 
	
		
			
				|  |  |             activityDO.setActivityRuleDO(activityRuleDO);
 | 
	
		
			
				|  |  |             List<TaskDO> taskDOS = taskDao.selectByActivityId(activityDO.getId());
 | 
	
		
			
				|  |  |             if (taskDOS!=null&&taskDOS.size()!=0){
 | 
	
		
			
				|  |  |                 activityDO.setTaskDOS(taskDOS);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (idList !=null && idList.size()!=0){
 | 
	
		
			
				|  |  |                 String startTime = idList.get(0);
 | 
	
		
			
				|  |  |                 String endTime = idList.get(1);
 | 
	
		
			
				|  |  |                 String nowTime =  DateUtil.dateToStrLong(DateUtil.getNowDate());
 | 
	
		
			
				|  |  |                 if((startTime.compareTo(nowTime)==-1&&endTime.compareTo(nowTime)==1)||startTime.compareTo(nowTime)==0||endTime.compareTo(nowTime)==0){
 | 
	
		
			
				|  |  |                     activityDO.setFlag(1);
 | 
	
		
			
				|  |  |                     activityDOS.add(activityDO);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return activityDOS;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 小程序活动排名
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param patients
 | 
	
		
			
				|  |  |      * @param taskId
 | 
	
		
			
				|  |  |      * @param size
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject selectAppletsRanking(JSONArray patients,String taskId,Integer size,String patient){
 | 
	
		
			
				|  |  |         StringBuffer buffer = new StringBuffer();
 | 
	
		
			
				|  |  |         if (patients!= null&&patients.size()!=0){
 | 
	
		
			
				|  |  |             buffer.append("and bcd.patient_id IN(");
 | 
	
		
			
				|  |  |             for (int i=0;i<patients.size();i++){
 | 
	
		
			
				|  |  |                 buffer.append("'"+patients.getString(i)+"',");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             buffer.deleteCharAt(buffer.length()-1);
 | 
	
		
			
				|  |  |             buffer.append(") ");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String sql = "SELECT @rownum :=@rownum + 1 AS rank, r.sum, r.patient_id AS patient FROM " +
 | 
	
		
			
				|  |  |                 "(SELECT@rowNum := 0) b," +
 | 
	
		
			
				|  |  |                 " (SELECT count(bcd.integrate) AS sum, bcd.patient_id, bcd.create_time FROM wlyy_health_bank_credits_detail bcd\n" +
 | 
	
		
			
				|  |  |                 "WHERE bcd.transaction_id = '"+taskId+"' " +buffer+
 | 
	
		
			
				|  |  |                 "GROUP BY bcd.patient_id) r ORDER BY r.sum DESC,r.create_time DESC LIMIT 0,"+size;
 | 
	
		
			
				|  |  |         List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sql1= "select s.rank,s.sum,s.patient_id from (SELECT @rownum :=@rownum + 1 AS rank, r.sum, r.patient_id FROM " +
 | 
	
		
			
				|  |  |                 "(SELECT@rowNum := 0) b," +
 | 
	
		
			
				|  |  |                 " (SELECT count(bcd.integrate) AS sum, bcd.patient_id, bcd.create_time FROM wlyy_health_bank_credits_detail bcd\n" +
 | 
	
		
			
				|  |  |                 "WHERE bcd.transaction_id = '"+taskId+"' " +buffer+
 | 
	
		
			
				|  |  |                 "GROUP BY bcd.patient_id) r ORDER BY r.sum DESC,r.create_time DESC)s where s.patient_id ='"+patient+"'";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> list1 = jdbcTemplate.queryForList(sql1);
 | 
	
		
			
				|  |  |         JSONObject object = new JSONObject();
 | 
	
		
			
				|  |  |         object.put("list",list);
 | 
	
		
			
				|  |  |         if (list1!=null&&list1.size()!=0){
 | 
	
		
			
				|  |  |             object.put("patient",list1.get(0));
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             object.put("patient",null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return object;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |