|
@ -23,10 +23,7 @@ import org.springframework.stereotype.Service;
|
|
|
import javax.transaction.Transactional;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* @author wangzhinan
|
|
@ -775,13 +772,16 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
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()+"'";
|
|
|
String sql1 = "select * from wlyy_health_bank_task_patient_detail where "+
|
|
|
" patient_idcard = '"+creditsDetailDO.getIdCard()+"' AND union_id = '"+creditsDetailDO.getUnionId()+"' AND task_id = '"+creditsDetailDO.getTransactionId()+"'";
|
|
|
List<TaskPatientDetailDO> taskPatientDetailDOList = jdbcTemplate.query(sql1,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
|
|
|
if(taskPatientDetailDOList == null || taskPatientDetailDOList.size()==0){
|
|
|
throw new Exception("该居民参与活动查不到!");
|
|
|
}
|
|
|
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()+"'";
|
|
|
" create_time < '"+DateUtils.getDayEnd()+"'AND ISNULL(description)";
|
|
|
List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(CreditsDetailDO.class));
|
|
|
String step = redisTemplate.opsForValue().get(STEP);
|
|
|
if (StringUtils.isEmpty(step)){
|
|
@ -790,12 +790,11 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
JSONObject object = JSONObject.parseObject(step);
|
|
|
int step1 = object.getInteger("step1");
|
|
|
int step2 = object.getInteger("step2");
|
|
|
int step3 = object.getInteger("step3");
|
|
|
if (creditsDetailDOS != null && creditsDetailDOS.size() != 0){
|
|
|
CreditsDetailDO creditsDetailDO1 = creditsDetailDOS.get(0);
|
|
|
TaskRuleDO taskRuleDO = taskRuleDao.findOne(taskDO.getRuleCode());
|
|
|
if (creditsDetailDO.getStepNumber() == step1){
|
|
|
creditsDetailDO1.setIntegrate(1);
|
|
|
if (creditsDetailDO.getStepNumber() < step1 && creditsDetailDO.getStepNumber() >0){
|
|
|
creditsDetailDO1.setIntegrate(0);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
|
AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
|
|
@ -806,21 +805,21 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
taskPatientDetailDao.save(taskPatientDetailDO);
|
|
|
creditsDetailDOS.clear();
|
|
|
creditsDetailDOS.add(creditsDetailDO2);
|
|
|
}else if (creditsDetailDO.getStepNumber() == step2){
|
|
|
creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+2);
|
|
|
}else if (creditsDetailDO.getStepNumber() >= step1 && creditsDetailDO.getStepNumber() < step2){
|
|
|
creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+1);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
|
AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
|
|
|
accountDO.setTotal(accountDO.getTotal()+(creditsDetailDO2.getIntegrate()-1));
|
|
|
accountDO.setTotal(accountDO.getTotal()+(creditsDetailDO2.getIntegrate()));
|
|
|
AccountDO accountDO1 = accountDao.save(accountDO);
|
|
|
creditsDetailDO2.setTotal(accountDO1.getTotal());
|
|
|
taskPatientDetailDO.setTotal(taskPatientDetailDO.getTotal()+(creditsDetailDO2.getIntegrate()-1));
|
|
|
taskPatientDetailDO.setTotal(taskPatientDetailDO.getTotal()+(creditsDetailDO2.getIntegrate()));
|
|
|
taskPatientDetailDao.save(taskPatientDetailDO);
|
|
|
creditsDetailDOS.clear();
|
|
|
creditsDetailDOS.add(creditsDetailDO2);
|
|
|
}else if (creditsDetailDO.getStepNumber() == step3){
|
|
|
}else if (creditsDetailDO.getStepNumber() >= step2){
|
|
|
if (creditsDetailDO1.getIntegrate() == 1){
|
|
|
creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+7);
|
|
|
creditsDetailDO1.setIntegrate(2);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
|
AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
|
|
@ -831,7 +830,7 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
taskPatientDetailDao.save(taskPatientDetailDO);
|
|
|
creditsDetailDOS.clear();
|
|
|
creditsDetailDOS.add(creditsDetailDO2);
|
|
|
}else if(creditsDetailDO1.getIntegrate() == 3){
|
|
|
}/*else if(creditsDetailDO1.getIntegrate() == 3){
|
|
|
creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+5);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
@ -843,19 +842,18 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
taskPatientDetailDao.save(taskPatientDetailDO);
|
|
|
creditsDetailDOS.clear();
|
|
|
creditsDetailDOS.add(creditsDetailDO2);
|
|
|
}
|
|
|
|
|
|
}*/
|
|
|
}
|
|
|
}else{
|
|
|
CreditsDetailDO creditsDetailDO1 = new CreditsDetailDO();
|
|
|
if (creditsDetailDO.getStepNumber() == step1){
|
|
|
creditsDetailDO1.setIntegrate(1);
|
|
|
if (creditsDetailDO.getStepNumber() < step1 && creditsDetailDO.getStepNumber() >0){
|
|
|
creditsDetailDO1.setIntegrate(0);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
}else if (creditsDetailDO.getStepNumber() == step2){
|
|
|
creditsDetailDO1.setIntegrate(3);
|
|
|
}else if (creditsDetailDO.getStepNumber() >= step1 && creditsDetailDO.getStepNumber() < step2){
|
|
|
creditsDetailDO1.setIntegrate(1);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
}else if (creditsDetailDO.getStepNumber() == step3){
|
|
|
creditsDetailDO1.setIntegrate(8);
|
|
|
}else if (creditsDetailDO.getStepNumber() >=step2){
|
|
|
creditsDetailDO1.setIntegrate(2);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
}
|
|
|
creditsDetailDO1.setSaasId("dev");
|
|
@ -881,7 +879,6 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
}catch (Exception e){
|
|
|
logger.error("插入活跃出错:"+e.getMessage());
|
|
|
}
|
|
|
|
|
|
Envelop<CreditsDetailDO> envelop = new Envelop<>();
|
|
|
envelop.setDetailModelList(creditsDetailDOS);
|
|
|
return envelop;
|
|
@ -893,8 +890,8 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/* public JSONObject getStepNumber(){
|
|
|
String step = redisTemplate.opsForValue().get(STEP);
|
|
|
/*public JSONObject getStepNumber(){
|
|
|
String step = redisTemplate.·().get(STEP);
|
|
|
logger.info("redis数据:"+step);
|
|
|
String sql = ""
|
|
|
String step1 = systemDictDao.
|
|
@ -910,4 +907,103 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
return jsonObject;
|
|
|
}
|
|
|
}*/
|
|
|
|
|
|
public Envelop<CreditsDetailDO> weekReward(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());
|
|
|
}
|
|
|
String creditsSql = "select * from wlyy_health_bank_credits_detail where patient_id = '" + creditsDetailDO.getPatientId() + "' and " +
|
|
|
"DATE_FORMAT(create_time,'%Y-%m-%d') IN " + creditsDetailDO.getWeekTimes()+" and description = '周奖励'";
|
|
|
List<CreditsDetailDO> creditsDetailDOS1 = jdbcTemplate.query(creditsSql, new BeanPropertyRowMapper(CreditsDetailDO.class));
|
|
|
List<CreditsDetailDO> creditsDetailDOList = new ArrayList<>();
|
|
|
Envelop<CreditsDetailDO> envelop = new Envelop<>();
|
|
|
if (getWeekOfDate(new Date()).equalsIgnoreCase("星期五")||getWeekOfDate(new Date()).equalsIgnoreCase("星期六")||getWeekOfDate(new Date()).equalsIgnoreCase("星期日")){
|
|
|
String sql = "select sum(integrate) as total from wlyy_health_bank_credits_detail where patient_id = '" + creditsDetailDO.getPatientId() + "' and description = '周奖励'";
|
|
|
List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(sql);
|
|
|
Long count = 0L;
|
|
|
if(rstotal!=null&&rstotal.size()>0){
|
|
|
Object object = rstotal.get(0).get("total");
|
|
|
if (object != null){
|
|
|
count = Long.parseLong(object.toString());
|
|
|
}
|
|
|
}
|
|
|
if (count > 12){
|
|
|
envelop.setMessage("奖励积分已达到12分。不能再奖励了!");
|
|
|
return envelop;
|
|
|
}else{
|
|
|
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(new Date());
|
|
|
creditsDetailDO.setTradeDirection(1);
|
|
|
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);
|
|
|
}else {
|
|
|
for (CreditsDetailDO creditsDetailDO1 : creditsDetailDOS1){
|
|
|
creditsDetailDO1.setFlag("2");
|
|
|
}
|
|
|
envelop.setDetailModelList(creditsDetailDOS1);
|
|
|
}
|
|
|
return envelop;
|
|
|
}
|
|
|
}else{
|
|
|
CreditsDetailDO creditsDetailDO1 = new CreditsDetailDO();
|
|
|
creditsDetailDO1.setFlag("0");
|
|
|
creditsDetailDOList.add(creditsDetailDO1);
|
|
|
envelop.setDetailModelList(creditsDetailDOList);
|
|
|
return envelop;
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
Envelop<CreditsDetailDO> envelop = new Envelop<>();
|
|
|
return envelop;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
public String getWeekOfDate(Date dt) {
|
|
|
String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(dt);
|
|
|
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
|
|
|
if (w < 0)
|
|
|
w = 0;
|
|
|
return weekDays[w];
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|