|
@ -56,7 +56,7 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
String sql = new ISqlUtils().getSql(creditsDetailDO,page,size,"*");
|
|
|
List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(CreditsDetailDO.class));
|
|
|
for (CreditsDetailDO creditsDetailDO1 : creditsDetailDOS){
|
|
|
if (creditsDetailDO1.getTradeType().equalsIgnoreCase("HEALTH_TASK")){
|
|
|
if (creditsDetailDO1.getTradeType() != null && creditsDetailDO1.getTradeType().equalsIgnoreCase("HEALTH_TASK")){
|
|
|
TaskDO taskDO = taskDao.findOne(creditsDetailDO1.getTransactionId());
|
|
|
creditsDetailDO1.setTaskDO(taskDO);
|
|
|
}
|
|
@ -213,9 +213,9 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
accountDO1.setTotal(0);
|
|
|
accountDO1.setAccountName(creditsDetailDO.getName());
|
|
|
accountDO1.setCardNumber("jw");
|
|
|
accountDO1.setHospital("海沧区");
|
|
|
accountDO1.setHospital("350205");
|
|
|
accountDO1.setPassword("321321312321");
|
|
|
accountDO1.setHospitalName("haichan");
|
|
|
accountDO1.setHospitalName("海沧区");
|
|
|
accountDO1.setCreateTime(new Date());
|
|
|
accountDO1.setUpdateTime(new Date());
|
|
|
accountDao.save(accountDO1);
|
|
@ -442,10 +442,132 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 根据活动查找全部排行
|
|
|
*
|
|
|
* @param activityId 活动id
|
|
|
* @param page 页码
|
|
|
* @param size 分页大小
|
|
|
* @return
|
|
|
*/
|
|
|
public Envelop<TaskPatientDetailDO> selectByActivityRanking1(String activityId,Integer page,Integer size){
|
|
|
String sql = "SELECT " +
|
|
|
" * " +
|
|
|
"FROM " +
|
|
|
" ( " +
|
|
|
" SELECT " +
|
|
|
" SUM(ptpd.total) AS total, " +
|
|
|
" ptpd.patient_openid AS patient_openid, " +
|
|
|
" ptpd.task_id AS task_id, " +
|
|
|
" ptpd.activity_id AS activity_id, " +
|
|
|
" ptpd.create_time as create_time, " +
|
|
|
" ptpd.patient_id AS patient_id " +
|
|
|
" FROM " +
|
|
|
" wlyy_health_bank_task_patient_detail ptpd " +
|
|
|
" WHERE " +
|
|
|
" activity_id = '" + activityId +
|
|
|
"' GROUP BY " +
|
|
|
" patient_openid " +
|
|
|
" ORDER BY ptpd.create_time DESC " +
|
|
|
" )btpd1 " +
|
|
|
" ORDER BY btpd1.total DESC "+" LIMIT " + (page-1)*size+","+size;
|
|
|
List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
|
|
|
for (TaskPatientDetailDO taskPatientDetailDO : taskPatientDetailDOS){
|
|
|
String accountSql = "select * from wlyy_health_bank_account where patient_id = '"+taskPatientDetailDO.getPatientId()+"'";
|
|
|
List<AccountDO> accountDOS = jdbcTemplate.query(accountSql,new BeanPropertyRowMapper(AccountDO.class));
|
|
|
taskPatientDetailDO.setAccountDO(accountDOS.get(0));
|
|
|
}
|
|
|
String sqlCount = "SELECT " +
|
|
|
" count(1) AS total " +
|
|
|
"FROM " +
|
|
|
" ( " +
|
|
|
" SELECT " +
|
|
|
" SUM(ptpd.total) AS total, " +
|
|
|
" ptpd.patient_openid AS patient_openid, " +
|
|
|
" ptpd.task_id AS task_id, " +
|
|
|
" ptpd.activity_id AS activity_id, " +
|
|
|
" ptpd.create_time as create_time, " +
|
|
|
" ptpd.patient_id AS patient_id " +
|
|
|
" FROM " +
|
|
|
" wlyy_health_bank_task_patient_detail ptpd " +
|
|
|
" WHERE " +
|
|
|
" activity_id = '" + activityId+
|
|
|
"' GROUP BY " +
|
|
|
" patient_openid " +
|
|
|
" ORDER BY ptpd.create_time DESC " +
|
|
|
" )btpd1 " +
|
|
|
" ORDER BY btpd1.total 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 Envelop.getSuccessListWithPage(HealthBankMapping.api_success, taskPatientDetailDOS,page,size,count);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 医生主动加分
|
|
|
*
|
|
|
* @param patientIds 病人id
|
|
|
*
|
|
|
* @param ruleId 规则id
|
|
|
* @return
|
|
|
*/
|
|
|
public Envelop<Boolean> doctorAddIntegrate(List<String> patientIds,String ruleId,String description){
|
|
|
Envelop<Boolean> envelop = new Envelop<>();
|
|
|
for (int i=0;i<patientIds.size();i++){
|
|
|
String patientId = patientIds.get(i);
|
|
|
String sql = "select * from wlyy_health_bank_account where patient_id = '"+patientId+"'";
|
|
|
List<AccountDO> accountDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(AccountDO.class));
|
|
|
TaskRuleDO taskRuleDO = taskRuleDao.findOne(ruleId);
|
|
|
if (taskRuleDO.getTradeDirection() == -1 && taskRuleDO.getIntegrate() == 0){
|
|
|
String integrateSql = "select * from wlyy_health_bank_credits_detail where patient_id = '"+patientId+"'";
|
|
|
List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(integrateSql,new BeanPropertyRowMapper(CreditsDetailDO.class));
|
|
|
for (CreditsDetailDO creditsDetailDO:creditsDetailDOS){
|
|
|
creditsDetailDO.setStatus(0);
|
|
|
creditsDetailDO.setDescription(description);
|
|
|
credittsLogDetailDao.save(creditsDetailDO);
|
|
|
AccountDO accountDO = accountDOS.get(0);
|
|
|
accountDO.setTotal(0);
|
|
|
accountDao.save(accountDO);
|
|
|
}
|
|
|
}else{
|
|
|
CreditsDetailDO creditsDetailDO = new CreditsDetailDO();
|
|
|
creditsDetailDO.setStatus(1);
|
|
|
creditsDetailDO.setAccountId(accountDOS.get(0).getId());
|
|
|
creditsDetailDO.setHospital("350205");
|
|
|
creditsDetailDO.setPatientId(patientId);
|
|
|
creditsDetailDO.setIntegrate(taskRuleDO.getIntegrate());
|
|
|
creditsDetailDO.setTradeDirection(taskRuleDO.getTradeDirection());
|
|
|
creditsDetailDO.setDescription(description);
|
|
|
creditsDetailDO.setCreateTime(new Date());
|
|
|
creditsDetailDO.setUpdateTime(new Date());
|
|
|
credittsLogDetailDao.save(creditsDetailDO);
|
|
|
if (taskRuleDO.getTradeDirection() == -1){
|
|
|
AccountDO accountDO = accountDOS.get(0);
|
|
|
int total = accountDO.getTotal() - taskRuleDO.getIntegrate();
|
|
|
if (total<0){
|
|
|
accountDO.setTotal(0);
|
|
|
}else {
|
|
|
accountDO.setTotal(total);
|
|
|
}
|
|
|
accountDao.save(accountDO);
|
|
|
}else if (taskRuleDO.getTradeDirection() == 1){
|
|
|
AccountDO accountDO = accountDOS.get(0);
|
|
|
accountDO.setTotal(accountDO.getTotal() + taskRuleDO.getIntegrate());
|
|
|
accountDao.save(accountDO);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
envelop.setObj(true);
|
|
|
return envelop;
|
|
|
}
|
|
|
/**
|
|
|
* 固定数据
|
|
|
*
|
|
|
* @param patientId
|
|
|
* @param
|
|
|
* @return
|
|
|
*//*
|
|
|
public List<TaskDO> getTasks(String patientId){
|
|
@ -475,4 +597,106 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
return taskDOList;
|
|
|
}
|
|
|
*/
|
|
|
|
|
|
public Envelop<CreditsDetailDO> stepAddIntegrate(CreditsDetailDO creditsDetailDO){
|
|
|
try {
|
|
|
synchronized (creditsDetailDO.getPatientId()){
|
|
|
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());
|
|
|
}else {
|
|
|
AccountDO accountDO1 = new AccountDO();
|
|
|
accountDO1.setPatientId(creditsDetailDO.getPatientId());
|
|
|
accountDO1.setTotal(0);
|
|
|
accountDO1.setAccountName(creditsDetailDO.getName());
|
|
|
accountDO1.setCardNumber("jw");
|
|
|
accountDO1.setHospital("350205");
|
|
|
accountDO1.setPassword("321321312321");
|
|
|
accountDO1.setHospitalName("海沧区");
|
|
|
accountDO1.setCreateTime(new Date());
|
|
|
accountDO1.setUpdateTime(new Date());
|
|
|
accountDao.save(accountDO1);
|
|
|
List<AccountDO> accountDOS = jdbcTemplate.query(sqlAccount,new BeanPropertyRowMapper(AccountDO.class));
|
|
|
creditsDetailDO.setAccountId(accountDOS.get(0).getId());
|
|
|
}
|
|
|
TaskDO taskDO = taskDao.findOne(creditsDetailDO.getTransactionId());
|
|
|
String sql1 = "select * from wlyy_health_bank_task_patient_detail where patient_openid = '"+creditsDetailDO.getOpenId()+"' " +
|
|
|
"AND patient_idcard = '"+creditsDetailDO.getIdCard()+"' AND union_id = '"+creditsDetailDO.getUnionId()+"' AND task_id = '"+creditsDetailDO.getTransactionId()+"'";
|
|
|
List<TaskPatientDetailDO> taskPatientDetailDOList = jdbcTemplate.query(sql1,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
|
|
|
TaskPatientDetailDO taskPatientDetailDO = taskPatientDetailDOList.get(0);
|
|
|
String sql = "select * from wlyy_health_bank_credits_detail where patient_id = '"+creditsDetailDO.getPatientId()+"' AND " +
|
|
|
"transaction_id = '"+creditsDetailDO.getTransactionId()+"' AND create_time > '"+DateUtils.getDayBegin() +"' AND" +
|
|
|
" create_time < '"+DateUtils.getDayEnd()+"'";
|
|
|
List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>());
|
|
|
if (creditsDetailDOS != null && creditsDetailDOS.size() != 0){
|
|
|
CreditsDetailDO creditsDetailDO1 = creditsDetailDOS.get(0);
|
|
|
TaskRuleDO taskRuleDO = taskRuleDao.findOne(taskDO.getRuleCode());
|
|
|
if (creditsDetailDO.getStepNumber() == 5000){
|
|
|
creditsDetailDO1.setIntegrate(1);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
|
AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
|
|
|
accountDO.setTotal(accountDO.getTotal()+creditsDetailDO2.getIntegrate());
|
|
|
accountDao.save(accountDO);
|
|
|
taskPatientDetailDO.setTotal(taskPatientDetailDO.getTotal()+creditsDetailDO2.getIntegrate());
|
|
|
taskPatientDetailDao.save(taskPatientDetailDO);
|
|
|
creditsDetailDOS.add(creditsDetailDO2);
|
|
|
}else if (creditsDetailDO.getStepNumber() == 10000){
|
|
|
creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+3);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
|
AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
|
|
|
accountDO.setTotal(accountDO.getTotal()+(creditsDetailDO2.getIntegrate()-1));
|
|
|
accountDao.save(accountDO);
|
|
|
taskPatientDetailDO.setTotal(taskPatientDetailDO.getTotal()+(creditsDetailDO2.getIntegrate()-1));
|
|
|
taskPatientDetailDao.save(taskPatientDetailDO);
|
|
|
creditsDetailDOS.add(creditsDetailDO2);
|
|
|
}else if (creditsDetailDO.getStepNumber() == 50000){
|
|
|
creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+4);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
|
AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
|
|
|
accountDO.setTotal(accountDO.getTotal()+(creditsDetailDO2.getIntegrate()-3));
|
|
|
accountDao.save(accountDO);
|
|
|
taskPatientDetailDO.setTotal(taskPatientDetailDO.getTotal()+(creditsDetailDO2.getIntegrate()-3));
|
|
|
creditsDetailDOS.add(creditsDetailDO2);
|
|
|
}
|
|
|
}else{
|
|
|
CreditsDetailDO creditsDetailDO1 = new CreditsDetailDO();
|
|
|
if (creditsDetailDO.getStepNumber() == 5000){
|
|
|
creditsDetailDO1.setIntegrate(1);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
|
|
|
}else if (creditsDetailDO.getStepNumber() == 10000){
|
|
|
creditsDetailDO1.setIntegrate(3);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
}else if (creditsDetailDO.getStepNumber() == 50000){
|
|
|
creditsDetailDO1.setIntegrate(7);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
}
|
|
|
creditsDetailDO1.setTradeType("HEALTH_TASK");
|
|
|
creditsDetailDO1.setPatientId(creditsDetailDO.getPatientId());
|
|
|
creditsDetailDO1.setHospital("350205");
|
|
|
creditsDetailDO1.setAccountId(creditsDetailDO1.getAccountId());
|
|
|
creditsDetailDO1.setStatus(1);
|
|
|
creditsDetailDO1.setCreateTime(new Date());
|
|
|
creditsDetailDO1.setUpdateTime(new Date());
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
|
AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
|
|
|
accountDO.setTotal(accountDO.getTotal()+creditsDetailDO2.getIntegrate());
|
|
|
taskPatientDetailDO.setTotal(taskPatientDetailDO.getTotal()+creditsDetailDO2.getIntegrate());
|
|
|
taskPatientDetailDao.save(taskPatientDetailDO);
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
|
}
|