|
@ -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
|
|
@ -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;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|