|  | @ -1346,6 +1346,69 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
 | 
												
													
														
															|  |         }
 |  |         }
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public List<CreditsDetailDO> share(CreditsDetailDO creditsDetailDO) throws Exception {
 | 
												
													
														
															|  | 
 |  |         synchronized (creditsDetailDO.getPatientId()) {
 | 
												
													
														
															|  | 
 |  |             String activityId= creditsDetailDO.getActivityId();
 | 
												
													
														
															|  | 
 |  |             ActivityRuleDO activityRuleDO = activityRuleDao.selectByActivityId(activityId);
 | 
												
													
														
															|  | 
 |  |             String sql = "select * from wlyy_health_bank_credits_detail where patient_id ='"+creditsDetailDO.getPatientId()+"' " +
 | 
												
													
														
															|  | 
 |  |                     "and description ='分享' and status =1 AND transaction_id = '"+creditsDetailDO.getTransactionId()+"'";
 | 
												
													
														
															|  | 
 |  |             List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(CreditsDetailDO.class));
 | 
												
													
														
															|  | 
 |  |             List<CreditsDetailDO> creditsDetailDOList = new ArrayList<>();
 | 
												
													
														
															|  | 
 |  |             if (activityRuleDO != null){
 | 
												
													
														
															|  | 
 |  |                 JSONObject jsonObject = JSONObject.parseObject(activityRuleDO.getValue1());
 | 
												
													
														
															|  | 
 |  |                 Boolean isShare = jsonObject.getBoolean("isshare");
 | 
												
													
														
															|  | 
 |  |                 if (isShare){
 | 
												
													
														
															|  | 
 |  |                     JSONObject object = jsonObject.getJSONObject("shareData");
 | 
												
													
														
															|  | 
 |  |                     String sqlAccount = "select * from wlyy_health_bank_account ba where ba.patient_id = '" + creditsDetailDO.getPatientId() + "'";
 | 
												
													
														
															|  | 
 |  |                     List<AccountDO> accountDOList = jdbcTemplate.query(sqlAccount, new BeanPropertyRowMapper(AccountDO.class));
 | 
												
													
														
															|  | 
 |  |                     CreditsDetailDO creditsDetailDO1 = new CreditsDetailDO();
 | 
												
													
														
															|  | 
 |  |                     if (accountDOList != null && accountDOList.size() != 0) {
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setAccountId(accountDOList.get(0).getId());
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                     if (creditsDetailDOS!=null&&creditsDetailDOS.size()>=object.getInteger("frequency")){
 | 
												
													
														
															|  | 
 |  |                         throw new Exception("分享超过"+creditsDetailDOS.size()+"次");
 | 
												
													
														
															|  | 
 |  |                     }else {
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setHospitalName(creditsDetailDO.getHospitalName());
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setHospital(creditsDetailDO.getHospital());
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setPatientId(creditsDetailDO.getPatientId());
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setTradeType("ACTIVITY_TASK");
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setDescription("分享");
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setSaasId("dev");
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setStatus(1);
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setCoupon(0);
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setTransactionId(creditsDetailDO.getTransactionId());
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setCreateTime(new Date());
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setUpdateTime(new Date());
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setTradeDirection(1);
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO1.setIntegrate(object.getInteger("integrate"));
 | 
												
													
														
															|  | 
 |  |                         CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDOList.add(creditsDetailDO2);
 | 
												
													
														
															|  | 
 |  |                         TaskPatientDetailDO taskPatientDetailDO = new TaskPatientDetailDO();
 | 
												
													
														
															|  | 
 |  |                         taskPatientDetailDO.setPatientId(creditsDetailDO1.getPatientId());
 | 
												
													
														
															|  | 
 |  |                         taskPatientDetailDO.setTaskId(creditsDetailDO1.getTransactionId());
 | 
												
													
														
															|  | 
 |  |                         String taskSql1 = ISqlUtils.getAllSql(taskPatientDetailDO);
 | 
												
													
														
															|  | 
 |  |                         List<TaskPatientDetailDO> taskPatientDetailDOS1 = jdbcTemplate.query(taskSql1, new BeanPropertyRowMapper(TaskPatientDetailDO.class));
 | 
												
													
														
															|  | 
 |  |                         TaskPatientDetailDO taskPatientDetailDO1 = taskPatientDetailDOS1.get(0);
 | 
												
													
														
															|  | 
 |  |                         if (creditsDetailDO1.getTradeDirection() == 1) {
 | 
												
													
														
															|  | 
 |  |                             taskPatientDetailDO1.setTotal(taskPatientDetailDO1.getTotal() + creditsDetailDO2.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                         } else if (creditsDetailDO1.getTradeDirection() == -1) {
 | 
												
													
														
															|  | 
 |  |                             taskPatientDetailDO1.setTotal(taskPatientDetailDO1.getTotal() - creditsDetailDO2.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                         }
 | 
												
													
														
															|  | 
 |  |                         taskPatientDetailDao.save(taskPatientDetailDO1);
 | 
												
													
														
															|  | 
 |  |                         AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
 | 
												
													
														
															|  | 
 |  |                         if (creditsDetailDO1.getTradeDirection() == 1) {
 | 
												
													
														
															|  | 
 |  |                             accountDO.setTotal(accountDO.getTotal() + creditsDetailDO2.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                         } else if (creditsDetailDO1.getTradeDirection() == -1) {
 | 
												
													
														
															|  | 
 |  |                             accountDO.setTotal(accountDO.getTotal() - creditsDetailDO2.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                         }
 | 
												
													
														
															|  | 
 |  |                         accountDao.save(accountDO);
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             return creditsDetailDOList;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |     /**
 |  |     /**
 | 
												
													
														
															|  |      * 商城积分支付
 |  |      * 商城积分支付
 | 
												
													
														
															|  |      * @param patient
 |  |      * @param patient
 | 
												
											
												
													
														
															|  | @ -1424,5 +1487,127 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     /**
 | 
												
													
														
															|  | 
 |  |      *
 | 
												
													
														
															|  | 
 |  |      * @param creditsDetailDO
 | 
												
													
														
															|  | 
 |  |      * @param flag 1连续2间断
 | 
												
													
														
															|  | 
 |  |      * @return
 | 
												
													
														
															|  | 
 |  |      */
 | 
												
													
														
															|  | 
 |  |     public MixEnvelop<CreditsDetailDO, CreditsDetailDO> weekRewardAndIntegrate(CreditsDetailDO creditsDetailDO,Integer flag) {
 | 
												
													
														
															|  | 
 |  |         synchronized (creditsDetailDO.getPatientId()) {
 | 
												
													
														
															|  | 
 |  |             MixEnvelop<CreditsDetailDO, CreditsDetailDO> envelop = new MixEnvelop<>();
 | 
												
													
														
															|  | 
 |  |             String sqlAccount = "select * from wlyy_health_bank_account ba where ba.patient_id = '" + creditsDetailDO.getPatientId() + "'";
 | 
												
													
														
															|  | 
 |  |             List<AccountDO> accountDOList = jdbcTemplate.query(sqlAccount, new BeanPropertyRowMapper(AccountDO.class));
 | 
												
													
														
															|  | 
 |  |             if (accountDOList != null && accountDOList.size() != 0) {
 | 
												
													
														
															|  | 
 |  |                 creditsDetailDO.setAccountId(accountDOList.get(0).getId());
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             if (flag == 1) {
 | 
												
													
														
															|  | 
 |  |                 String creditsSql = "select * from wlyy_health_bank_credits_detail where patient_id = '" + creditsDetailDO.getPatientId() + "' and " +
 | 
												
													
														
															|  | 
 |  |                         "update_time >= '" + creditsDetailDO.getMonday() + "' AND update_time<='" + creditsDetailDO.getSunday() + "' and description = '周奖励-连续' AND transaction_id = '"+creditsDetailDO.getTransactionId()+"'";
 | 
												
													
														
															|  | 
 |  |                 List<CreditsDetailDO> creditsDetailDOS1 = jdbcTemplate.query(creditsSql, new BeanPropertyRowMapper(CreditsDetailDO.class));
 | 
												
													
														
															|  | 
 |  |                 List<CreditsDetailDO> creditsDetailDOList = new ArrayList<>();
 | 
												
													
														
															|  | 
 |  |                 if (creditsDetailDOS1 == null || creditsDetailDOS1.size() == 0) {
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setTradeType("ACTIVITY_TASK");
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setSaasId("dev");
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setStatus(1);
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setTransactionId(creditsDetailDO.getTransactionId());
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setCreateTime(new Date());
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setUpdateTime(DateUtil.strToDateLong(creditsDetailDO.getSunday()));
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setTradeDirection(1);
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setDescription("周奖励-连续");
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setCoupon(0);
 | 
												
													
														
															|  | 
 |  |                     CreditsDetailDO creditsDetailDO1 = credittsLogDetailDao.save(creditsDetailDO);
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDOList.add(creditsDetailDO1);
 | 
												
													
														
															|  | 
 |  |                     TaskPatientDetailDO taskPatientDetailDO = new TaskPatientDetailDO();
 | 
												
													
														
															|  | 
 |  |                     taskPatientDetailDO.setPatientId(creditsDetailDO1.getPatientId());
 | 
												
													
														
															|  | 
 |  |                     taskPatientDetailDO.setTaskId(creditsDetailDO1.getTransactionId());
 | 
												
													
														
															|  | 
 |  |                     String taskSql1 = ISqlUtils.getAllSql(taskPatientDetailDO);
 | 
												
													
														
															|  | 
 |  |                     List<TaskPatientDetailDO> taskPatientDetailDOS1 = jdbcTemplate.query(taskSql1, new BeanPropertyRowMapper(TaskPatientDetailDO.class));
 | 
												
													
														
															|  | 
 |  |                     TaskPatientDetailDO taskPatientDetailDO1 = taskPatientDetailDOS1.get(0);
 | 
												
													
														
															|  | 
 |  |                     if (creditsDetailDO1.getTradeDirection() == 1) {
 | 
												
													
														
															|  | 
 |  |                         taskPatientDetailDO1.setTotal(taskPatientDetailDO1.getTotal() + creditsDetailDO1.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                     } else if (creditsDetailDO1.getTradeDirection() == -1) {
 | 
												
													
														
															|  | 
 |  |                         taskPatientDetailDO1.setTotal(taskPatientDetailDO1.getTotal() - creditsDetailDO1.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                     taskPatientDetailDao.save(taskPatientDetailDO1);
 | 
												
													
														
															|  | 
 |  |                     AccountDO accountDO = accountDao.findOne(creditsDetailDO1.getAccountId());
 | 
												
													
														
															|  | 
 |  |                     if (creditsDetailDO1.getTradeDirection() == 1) {
 | 
												
													
														
															|  | 
 |  |                         accountDO.setTotal(accountDO.getTotal() + creditsDetailDO1.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                     } else if (creditsDetailDO1.getTradeDirection() == -1) {
 | 
												
													
														
															|  | 
 |  |                         accountDO.setTotal(accountDO.getTotal() - creditsDetailDO1.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                     AccountDO accountDO1 = accountDao.save(accountDO);
 | 
												
													
														
															|  | 
 |  |                     List<CreditsDetailDO> creditsDetailDOS = new ArrayList<>();
 | 
												
													
														
															|  | 
 |  |                     for (CreditsDetailDO creditsDetailDO2 : creditsDetailDOList) {
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO2.setTotal(accountDO1.getTotal());
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO2.setFlag("1");
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDOS.add(creditsDetailDO2);
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                     envelop.setDetailModelList(creditsDetailDOS);
 | 
												
													
														
															|  | 
 |  |                     return envelop;
 | 
												
													
														
															|  | 
 |  |                 }else {
 | 
												
													
														
															|  | 
 |  |                     logger.info("居民:"+creditsDetailDO.getPatientId()+"已领取周奖励-连续");
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }else if (flag==2){
 | 
												
													
														
															|  | 
 |  |                 String creditsSql = "select * from wlyy_health_bank_credits_detail where patient_id = '" + creditsDetailDO.getPatientId() + "' and " +
 | 
												
													
														
															|  | 
 |  |                         "update_time >= '" +creditsDetailDO.getMonday()+"' AND update_time<='" +creditsDetailDO.getSunday() + "' and description = '周奖励-间断' AND transaction_id = '"+creditsDetailDO.getTransactionId()+"'";
 | 
												
													
														
															|  | 
 |  |                 List<CreditsDetailDO> creditsDetailDOS1 = jdbcTemplate.query(creditsSql, new BeanPropertyRowMapper(CreditsDetailDO.class));
 | 
												
													
														
															|  | 
 |  |                 List<CreditsDetailDO> creditsDetailDOList = new ArrayList<>();
 | 
												
													
														
															|  | 
 |  |                 if (creditsDetailDOS1 == null || creditsDetailDOS1.size() == 0) {
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setTradeType("ACTIVITY_TASK");
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setSaasId("dev");
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setStatus(1);
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setTransactionId(creditsDetailDO.getTransactionId());
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setCreateTime(new Date());
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setUpdateTime(DateUtil.strToDateLong(creditsDetailDO.getSunday()));
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setTradeDirection(1);
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDO.setDescription("周奖励-间断");
 | 
												
													
														
															|  | 
 |  |                     CreditsDetailDO creditsDetailDO1 = credittsLogDetailDao.save(creditsDetailDO);
 | 
												
													
														
															|  | 
 |  |                     creditsDetailDOList.add(creditsDetailDO1);
 | 
												
													
														
															|  | 
 |  |                     TaskPatientDetailDO taskPatientDetailDO = new TaskPatientDetailDO();
 | 
												
													
														
															|  | 
 |  |                     taskPatientDetailDO.setPatientId(creditsDetailDO1.getPatientId());
 | 
												
													
														
															|  | 
 |  |                     taskPatientDetailDO.setTaskId(creditsDetailDO1.getTransactionId());
 | 
												
													
														
															|  | 
 |  |                     String taskSql1 = ISqlUtils.getAllSql(taskPatientDetailDO);
 | 
												
													
														
															|  | 
 |  |                     List<TaskPatientDetailDO> taskPatientDetailDOS1 = jdbcTemplate.query(taskSql1, new BeanPropertyRowMapper(TaskPatientDetailDO.class));
 | 
												
													
														
															|  | 
 |  |                     TaskPatientDetailDO taskPatientDetailDO1 = taskPatientDetailDOS1.get(0);
 | 
												
													
														
															|  | 
 |  |                     if (creditsDetailDO1.getTradeDirection() == 1) {
 | 
												
													
														
															|  | 
 |  |                         taskPatientDetailDO1.setTotal(taskPatientDetailDO1.getTotal() + creditsDetailDO1.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                     } else if (creditsDetailDO.getTradeDirection() == -1) {
 | 
												
													
														
															|  | 
 |  |                         taskPatientDetailDO1.setTotal(taskPatientDetailDO1.getTotal() - creditsDetailDO1.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                     taskPatientDetailDao.save(taskPatientDetailDO1);
 | 
												
													
														
															|  | 
 |  |                     AccountDO accountDO = accountDao.findOne(creditsDetailDO1.getAccountId());
 | 
												
													
														
															|  | 
 |  |                     if (creditsDetailDO1.getTradeDirection() == 1) {
 | 
												
													
														
															|  | 
 |  |                         accountDO.setTotal(accountDO.getTotal() + creditsDetailDO1.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                     } else if (creditsDetailDO.getTradeDirection() == -1) {
 | 
												
													
														
															|  | 
 |  |                         accountDO.setTotal(accountDO.getTotal() - creditsDetailDO1.getIntegrate());
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                     AccountDO accountDO1 = accountDao.save(accountDO);
 | 
												
													
														
															|  | 
 |  |                     List<CreditsDetailDO> creditsDetailDOS = new ArrayList<>();
 | 
												
													
														
															|  | 
 |  |                     for (CreditsDetailDO creditsDetailDO2 : creditsDetailDOList) {
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO2.setTotal(accountDO1.getTotal());
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDO2.setFlag("1");
 | 
												
													
														
															|  | 
 |  |                         creditsDetailDOS.add(creditsDetailDO2);
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                     envelop.setDetailModelList(creditsDetailDOS);
 | 
												
													
														
															|  | 
 |  |                     return envelop;
 | 
												
													
														
															|  | 
 |  |                 }else {
 | 
												
													
														
															|  | 
 |  |                     logger.info("居民:"+creditsDetailDO.getPatientId()+"已领取周奖励-间断");
 | 
												
													
														
															|  | 
 |  |                     envelop.setMessage("居民:"+creditsDetailDO.getPatientId()+"已领取周奖励-间断");
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             return envelop;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public List<CreditsDetailDO> selectWeekReward(String patient,String taskId,String monday,String sunday){
 | 
												
													
														
															|  | 
 |  |         String creditsSql = "select * from wlyy_health_bank_credits_detail where patient_id = '" + patient + "' and " +
 | 
												
													
														
															|  | 
 |  |                 "update_time >= '" +monday+"' AND update_time<='" + sunday+ "' and ( description = '周奖励-间断' OR description = '周奖励-连续')  AND transaction_id = '"+taskId+"'";
 | 
												
													
														
															|  | 
 |  |         List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(creditsSql,new BeanPropertyRowMapper<>(CreditsDetailDO.class));
 | 
												
													
														
															|  | 
 |  |         return creditsDetailDOS;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | }
 |  | }
 |