| 
					
				 | 
			
			
				@ -191,47 +191,64 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param creditsDetailDO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop<CreditsDetailDO> insert(CreditsDetailDO creditsDetailDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        TaskDO taskDO = new TaskDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        taskDO.setTaskCode(creditsDetailDO.getFlag()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        taskDO.setPatientId(creditsDetailDO.getPatientId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = ISqlUtils.getSql(taskDO,1,1,"*"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<TaskDO> taskDOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskDO.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (taskDOList != null && taskDOList.size() != 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            creditsDetailDO.setTransactionId(taskDOList.get(0).getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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 (creditsDetailDO.getTradeDirection() == 1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (creditsDetailDO.getTradeType().equals("HEALTH_TASK")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                TaskDetailDO taskDetailDO = new TaskDetailDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                taskDetailDO.setIntegrate(creditsDetailDO.getIntegrate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                taskDetailDO.setTaskId(creditsDetailDO.getTransactionId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                taskDetailDO.setSaasId(creditsDetailDO.getSaasId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                taskDetailDO.setPatientId(creditsDetailDO.getPatientId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                taskDetailDO.setTradeDirection(creditsDetailDO.getTradeDirection()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                taskDetailDO.setStatus("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                taskDetailDao.save(taskDetailDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop<CreditsDetailDO> insert(CreditsDetailDO creditsDetailDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            synchronized (creditsDetailDO.getPatientId()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                TaskDO taskDO = new TaskDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                taskDO.setTaskCode(creditsDetailDO.getFlag()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                taskDO.setPatientId(creditsDetailDO.getPatientId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String sql = ISqlUtils.getSql(taskDO,1,1,"*"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<TaskDO> taskDOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskDO.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (taskDOList != null && taskDOList.size() != 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    creditsDetailDO.setTransactionId(taskDOList.get(0).getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                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 (creditsDetailDO.getTradeDirection() == 1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (creditsDetailDO.getTradeType().equals("HEALTH_TASK")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        TaskDetailDO taskDetailDO = new TaskDetailDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        taskDetailDO.setIntegrate(creditsDetailDO.getIntegrate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        taskDetailDO.setTaskId(creditsDetailDO.getTransactionId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        taskDetailDO.setSaasId(creditsDetailDO.getSaasId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        taskDetailDO.setPatientId(creditsDetailDO.getPatientId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        taskDetailDO.setTradeDirection(creditsDetailDO.getTradeDirection()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        taskDetailDO.setStatus("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        taskDetailDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        taskDetailDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        taskDetailDao.save(taskDetailDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                creditsDetailDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                creditsDetailDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                CreditsDetailDO creditsDetailDO1 =credittsLogDetailDao.save(creditsDetailDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                creditsDetailDO1.setFlag(creditsDetailDO.getFlag()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<CreditsDetailDO> creditsDetailDOList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                creditsDetailDOList.add(creditsDetailDO1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    creditsDetailDOS.add(creditsDetailDO2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Envelop<CreditsDetailDO> envelop = new Envelop<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                envelop.setDetailModelList(creditsDetailDOS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Envelop<CreditsDetailDO> envelop = new Envelop<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        CreditsDetailDO creditsDetailDO1 =credittsLogDetailDao.save(creditsDetailDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        creditsDetailDO1.setFlag(creditsDetailDO.getFlag()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<CreditsDetailDO> creditsDetailDOList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        creditsDetailDOList.add(creditsDetailDO1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        accountDao.save(accountDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Envelop<CreditsDetailDO> envelop = new Envelop<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        envelop.setDetailModelList(creditsDetailDOList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |