ソースを参照

[CMD]修改bug

wangzhinan 6 年 前
コミット
75e70288b0

+ 3 - 9
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/controller/AccountController.java

@ -144,20 +144,14 @@ public class AccountController extends EnvelopRestController {
    @ApiOperation(value = "按条件获取用户信息")
    public Envelop<AccountDO> select(@RequestBody JSONObject object){
        try{
            JSONArray patientIds = object.getJSONArray("patientIds");
            JSONArray patientIds = object.getJSONArray("patients");
            JSONArray deviceTypes = object.getJSONArray("deviceTypes");
            int bindStatus = object.getInteger("bindStatus");
            String ruleId = object.getString("ruleId");
            Integer page = object.getInteger("page");
            Integer size = object.getInteger("size");
            List<String> patientIds1 = new ArrayList<>();
            for (int i=0;patientIds != null && patientIds.size()!=0&& i<patientIds.size();i++){
                patientIds1.add(patientIds.getString(i));
            }
            List<String> deviceTypes1 = new ArrayList<>();
            for (int i=0;deviceTypes != null && deviceTypes.size()!=0&& i<deviceTypes.size();i++){
                deviceTypes1.add(deviceTypes.getString(i));
            }
            return service.findByCondition1(patientIds1,bindStatus,deviceTypes1,page,size);
            return service.findByCondition1(patientIds,ruleId,page,size);
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());

+ 79 - 19
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/service/AccountService.java

@ -2,14 +2,19 @@ package com.yihu.jw.service;/**
 * Created by nature of king on 2018/5/10.
 */
import com.alibaba.fastjson.JSONArray;
import com.yihu.base.mysql.query.BaseJpaService;
import com.yihu.jw.dao.AccountDao;
import com.yihu.jw.dao.TaskRuleDao;
import com.yihu.jw.entity.health.bank.AccountDO;
import com.yihu.jw.entity.health.bank.CreditsDetailDO;
import com.yihu.jw.entity.health.bank.TaskDO;
import com.yihu.jw.entity.health.bank.TaskPatientDetailDO;
import com.yihu.jw.entity.health.bank.TaskRuleDO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.rm.health.bank.HealthBankMapping;
import com.yihu.jw.util.DateUtils;
import com.yihu.jw.util.ISqlUtils;
import com.yihu.jw.util.date.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
@ -17,7 +22,9 @@ 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;
@ -34,6 +41,8 @@ public class AccountService extends BaseJpaService<AccountDO,AccountDao> {
    private AccountDao accountDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private TaskRuleDao taskRuleDao;
    /**
     * 添加银行账户信息
@ -103,8 +112,8 @@ public class AccountService extends BaseJpaService<AccountDO,AccountDao> {
                buffer.deleteCharAt(buffer.length()-1);
                buffer.append(") ");
                String accountSql = "select * from wlyy_health_bank_account where patient_id in "+buffer;
                List<AccountDO> accountDOS1 = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(AccountDO.class));
                if (accountDOS1 != null && accountDOS1.size() !=0){
                List<AccountDO> accountDOSList = jdbcTemplate.query(accountSql,new BeanPropertyRowMapper<>(AccountDO.class));
                if (accountDOSList != null && accountDOSList.size() !=0){
                    String sql2 = " SELECT " +
                            " ba.total + COALESCE (bacd1.sum, 0) AS total " +
                            " FROM " +
@ -130,8 +139,8 @@ public class AccountService extends BaseJpaService<AccountDO,AccountDao> {
                    accountDO1.setSum(Count);
                    StringBuffer buffer1 = new StringBuffer();
                    buffer1.append(" (");
                    for (int i=0;i<accountDOS1.size();i++){
                        buffer1.append("'"+accountDOS1.get(i).getId()+"'").append(",");
                    for (int i=0;i<accountDOSList.size();i++){
                        buffer1.append("'"+accountDOSList.get(i).getId()+"'").append(",");
                    }
                    buffer1.deleteCharAt(buffer1.length()-1);
                    buffer1.append(") ");
@ -208,29 +217,80 @@ public class AccountService extends BaseJpaService<AccountDO,AccountDao> {
    /**
     * 根据条件活动用户信息
     *
     * @param patientIds 居民id
     * @param bindStatus 绑定状态
     *
     * @param deviceTypes 设备类型
     *
     * @param page 页码
     *
     * @param size 分页大小
     * @return
     */
    public Envelop<AccountDO> findByCondition1(List<String> patientIds ,int bindStatus,List<String> deviceTypes,Integer page,Integer size){
    public Envelop<AccountDO> findByCondition1(JSONArray patients, String ruleId, Integer page, Integer size){
        for (int i=0;i<patients.size();i++){
            String patientId = patients.getJSONObject(i).getString("code");
            String sql = "select * from wlyy_health_bank_account where patient_id = '"+patientId+"'";
            List<AccountDO> accountDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(AccountDO.class));
            if (accountDOS == null || accountDOS.size() == 0) {
                AccountDO accountDO1 = new AccountDO();
                accountDO1.setPatientId(patientId);
                accountDO1.setTotal(0);
                accountDO1.setAccountName(patients.getJSONObject(i).getString("name"));
                accountDO1.setCardNumber(patients.getJSONObject(i).getString("idcard"));
                accountDO1.setHospital("350205");
                accountDO1.setPassword("321321312321");
                accountDO1.setHospitalName("海沧区");
                accountDO1.setCreateTime(new Date());
                accountDO1.setUpdateTime(new Date());
                accountDao.save(accountDO1);
            }
        }
        TaskRuleDO taskRuleDO = taskRuleDao.findOne(ruleId);
        String taskSql = "select * from wlyy_health_bank_task where transaction_id = '"+taskRuleDO.getId()+"'";
        List<TaskDO> taskDOList = jdbcTemplate.query(taskSql,new BeanPropertyRowMapper(TaskDO.class));
        List<String> ids = new ArrayList<>();
        if(taskDOList != null && taskDOList.size() != 0){
            if (taskRuleDO.getPeriod() == 1){
                for (int i = 0;i<patients.size();i++){
                    String patientId = patients.getJSONObject(i).getString("code");
                    String sql = "select * from wlyy_health_bank_task_patient_detail where patient_id = '"+patientId+"' AND task_id = '"+taskDOList.get(0).getId()+"'";
                    List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
                    if (taskPatientDetailDOS ==null || taskPatientDetailDOS.size() == 0){
                        ids.add(patientId);
                    }
                }
            }else if (taskRuleDO.getPeriod() == 0){
                for (int i = 0;i<patients.size();i++){
                    String patientId = patients.getJSONObject(i).getString("code");
                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                    Date date = new Date();
                    String date1 = dateFormat.format(date);
                    String begin = DateUtils.getMinMonthDate(date1);
                    String end = DateUtils.getMaxMonthDate(date1);
                    String sql = "select * from wlyy_health_bank_task_patient_detail where patient_id = '"+patientId+"' AND task_id = '"+taskDOList.get(0).getId()+"' AND create_time > '"+begin+"' AND create_time < '"+end+"'";
                    List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
                    if (taskPatientDetailDOS ==null || taskPatientDetailDOS.size() == 0){
                        ids.add(patientId);
                    }
                }
            }
        }else {
            for (int i = 0;i<patients.size();i++){
                String patientId = patients.getJSONObject(i).getString("code");
                ids.add(patientId);
            }
        }
        StringBuffer buffer = new StringBuffer();
        buffer.append(" btpd.patient_id in(");
        if (patientIds == null || patientIds.size() == 0){
        buffer.append("(");
        if (ids == null || ids.size() == 0){
            buffer.append("''");
        }else {
            for (int i=0;i<patientIds.size();i++){
                buffer.append("'"+patientIds.get(i)+"'").append(",");
            for (int i=0;i<ids.size();i++){
                buffer.append("'"+ids.get(i)+"'").append(",");
            }
            buffer.deleteCharAt(buffer.length()-1);
        }
        buffer.append(") ");
        StringBuffer buffer1 = new StringBuffer();
       /* StringBuffer buffer1 = new StringBuffer();//设备类型
        buffer1.append("(");
        if (deviceTypes == null || deviceTypes.size() == 0){
            buffer1.append("''");
@ -252,7 +312,7 @@ public class AccountService extends BaseJpaService<AccountDO,AccountDao> {
                    "  wlyy_health_bank_task_patient_detail btpd " +
                    " LEFT JOIN wlyy_health_bank_task bt ON bt.id = btpd.task_id WHERE " +
                    " bt.task_code IN "+buffer1 +" and "+buffer+")";
        }
        }*/
        String sql =
                "SELECT ba1.patient_id AS patient_id," +
                        "ba1.account_name AS account_name," +
@ -280,7 +340,7 @@ public class AccountService extends BaseJpaService<AccountDO,AccountDao> {
                        "cd.trade_direction = - 1" +
                        " GROUP BY " +
                        " cd.patient_id ) cd1 ON cd1.patient_id = ba.patient_id " +
                        " WHERE ba.patient_id IN " + sql1 +
                        " WHERE ba.patient_id IN " + buffer +
                        " ORDER BY" +
                        " ba.create_time DESC " +
                        "LIMIT "+(page-1)*size+","+size +")ba1" +
@ -301,7 +361,7 @@ public class AccountService extends BaseJpaService<AccountDO,AccountDao> {
                " GROUP BY " +
                " cd.patient_id " +
                " ) cd1 ON cd1.patient_id = ba.patient_id " +
                "WHERE ba.patient_id IN " + sql1 +
                "WHERE ba.patient_id IN " + buffer +
                " ORDER BY " +
                " ba.create_time, " +
                " (ba.total + COALESCE(cd1.total,0)) DESC ";

+ 48 - 23
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/service/CreditsDetailService.java

@ -20,6 +20,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;
@ -252,6 +253,7 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
                    taskPatientDetailDO.setStatus(Integer.parseInt("0"));
                    taskPatientDetailDO.setCreateTime(new Date());
                    taskPatientDetailDO.setUpdateTime(new Date());
                    taskPatientDetailDO.setActivityId(taskDO.getTransactionId());
                    taskPatientDetailDO.setTotal(Long.parseLong("0"));
                    taskPatientDetailDao.save(taskPatientDetailDO);
                }else if (taskPatientDetailDOS != null && taskDOList.get(0).getPeriod() == 0){
@ -265,6 +267,7 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
                        taskPatientDetailDO.setPatientId(creditsDetailDO.getPatientId());
                        taskPatientDetailDO.setPatientIdcard(creditsDetailDO.getIdCard());
                        taskPatientDetailDO.setPatientOpenid(creditsDetailDO.getOpenId());
                        taskPatientDetailDO.setActivityId(taskDO.getTransactionId());
                        taskPatientDetailDO.setStatus(Integer.parseInt("0"));
                        taskPatientDetailDO.setCreateTime(new Date());
                        taskPatientDetailDO.setUpdateTime(new Date());
@ -352,10 +355,10 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
                " WHERE " +
                " activity_id = '" + activityId +
                "' GROUP BY " +
                " patient_openid " +
                " patient_id " +
                " ORDER BY ptpd.create_time DESC " +
                " )btpd1 " +
                " WHERE  patient_openid IN "+buffer+
                " WHERE  patient_id IN "+buffer+
                " ORDER BY btpd1.total DESC "+" LIMIT " + (page-1)*size+","+size;
        List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
        for (TaskPatientDetailDO taskPatientDetailDO : taskPatientDetailDOS){
@ -525,7 +528,7 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
     * @param ruleId 规则id
     * @return
     */
    public Envelop<Boolean> doctorAddIntegrate(JSONArray array, String ruleId, String description){
    public Envelop<Boolean> doctorAddIntegrate(JSONArray array, String ruleId, String description) throws Exception {
        Envelop<Boolean> envelop = new Envelop<>();
        for (int i=0;i<array.size();i++){
            TaskRuleDO taskRuleDO = taskRuleDao.findOne(ruleId);
@ -554,6 +557,24 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
            }else {
                taskDO1 = taskDOList.get(0);
            }
            if (taskRuleDO.getPeriod() == 1){
                    String sql = "select * from wlyy_health_bank_task_patient_detail where patient_id = '"+patientId+"'AND task_id ='"+taskDO1.getId()+"'";
                    List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
                    if (taskPatientDetailDOS != null && taskPatientDetailDOS.size() != 0){
                        throw new Exception("已奖励过");
                    }
            }else if (taskRuleDO.getPeriod() == 0){
                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                    Date date = new Date();
                    String date1 = dateFormat.format(date);
                    String begin = DateUtils.getMinMonthDate(date1);
                    String end = DateUtils.getMaxMonthDate(date1);
                    String sql = "select * from wlyy_health_bank_task_patient_detail where patient_id = '"+patientId+"'AND task_id ='"+taskDO1.getId()+"' AND create_time > '"+begin+"' AND create_time < '"+end+"'";
                    List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
                    if (taskPatientDetailDOS != null && taskPatientDetailDOS.size() != 0){
                        throw new Exception("已奖励过");
                    }
            }
            String sql1 = "select * from wlyy_health_bank_task_patient_detail where task_id = '"+taskDO1.getId()+"' " +
                    "AND patient_idcard = '"+idCard+"' AND patient_openid = '"+openId+"' AND union_id = '"+unionId+"'";
            List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(sql1,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
@ -583,23 +604,23 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
                    creditsDetailDO.setStatus(0);
                    creditsDetailDO.setDescription(description);
                    credittsLogDetailDao.save(creditsDetailDO);
                    CreditsDetailDO creditsDetailDO1 = new CreditsDetailDO();
                    creditsDetailDO1.setStatus(1);
                    creditsDetailDO1.setAccountId(accountDOS.get(0).getId());
                    creditsDetailDO1.setHospital("350205");
                    creditsDetailDO1.setPatientId(patientId);
                    creditsDetailDO1.setIntegrate(taskRuleDO.getIntegrate());
                    creditsDetailDO1.setTradeDirection(taskRuleDO.getTradeDirection());
                    creditsDetailDO1.setDescription(description);
                    creditsDetailDO1.setCreateTime(new Date());
                    creditsDetailDO1.setUpdateTime(new Date());
                    creditsDetailDO1.setTransactionId(taskDO1.getId());
                    creditsDetailDO1.setTradeType("HEALTH_TASK");
                    credittsLogDetailDao.save(creditsDetailDO);
                    AccountDO accountDO = accountDOS.get(0);
                    accountDO.setTotal(0);
                    accountDao.save(accountDO);
                }
                CreditsDetailDO creditsDetailDO1 = new CreditsDetailDO();
                creditsDetailDO1.setStatus(1);
                creditsDetailDO1.setAccountId(accountDOS.get(0).getId());
                creditsDetailDO1.setHospital("350205");
                creditsDetailDO1.setPatientId(patientId);
                creditsDetailDO1.setIntegrate(taskRuleDO.getIntegrate());
                creditsDetailDO1.setTradeDirection(taskRuleDO.getTradeDirection());
                creditsDetailDO1.setDescription(description);
                creditsDetailDO1.setCreateTime(new Date());
                creditsDetailDO1.setUpdateTime(new Date());
                creditsDetailDO1.setTransactionId(taskDO1.getId());
                creditsDetailDO1.setTradeType("HEALTH_TASK");
                credittsLogDetailDao.save(creditsDetailDO1);
            }else{
                CreditsDetailDO creditsDetailDO = new CreditsDetailDO();
                creditsDetailDO.setStatus(1);
@ -701,7 +722,7 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
                if (creditsDetailDOS != null && creditsDetailDOS.size() != 0){
                    CreditsDetailDO creditsDetailDO1 = creditsDetailDOS.get(0);
                    TaskRuleDO taskRuleDO = taskRuleDao.findOne(taskDO.getRuleCode());
                    if (creditsDetailDO.getStepNumber() == 5000){
                    if (creditsDetailDO.getStepNumber() == 50){
                        creditsDetailDO1.setIntegrate(1);
                        creditsDetailDO1.setTradeDirection(1);
                        CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
@ -713,7 +734,7 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
                        taskPatientDetailDao.save(taskPatientDetailDO);
                        creditsDetailDOS.clear();
                        creditsDetailDOS.add(creditsDetailDO2);
                    }else if (creditsDetailDO.getStepNumber() == 10000){
                    }else if (creditsDetailDO.getStepNumber() == 100){
                        creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+2);
                        creditsDetailDO1.setTradeDirection(1);
                        CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
@ -725,8 +746,12 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
                        taskPatientDetailDao.save(taskPatientDetailDO);
                        creditsDetailDOS.clear();
                        creditsDetailDOS.add(creditsDetailDO2);
                    }else if (creditsDetailDO.getStepNumber() == 50000){
                        creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+5);
                    }else if (creditsDetailDO.getStepNumber() == 500){
                        if (creditsDetailDO1.getIntegrate() == 1){
                            creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+7);
                        }else if(creditsDetailDO1.getIntegrate() == 3){
                            creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+5);
                        }
                        creditsDetailDO1.setTradeDirection(1);
                        CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
                        AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
@ -739,14 +764,14 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
                    }
                }else{
                    CreditsDetailDO creditsDetailDO1 = new CreditsDetailDO();
                    if (creditsDetailDO.getStepNumber() == 5000){
                    if (creditsDetailDO.getStepNumber() == 50){
                        creditsDetailDO1.setIntegrate(1);
                        creditsDetailDO1.setTradeDirection(1);
                    }else if (creditsDetailDO.getStepNumber() == 10000){
                    }else if (creditsDetailDO.getStepNumber() == 100){
                        creditsDetailDO1.setIntegrate(3);
                        creditsDetailDO1.setTradeDirection(1);
                    }else if (creditsDetailDO.getStepNumber() == 50000){
                    }else if (creditsDetailDO.getStepNumber() == 500){
                        creditsDetailDO1.setIntegrate(8);
                        creditsDetailDO1.setTradeDirection(1);
                    }

+ 26 - 0
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/util/DateUtils.java

@ -30,4 +30,30 @@ public  class DateUtils {
          cal.set(Calendar.SECOND, 59);
          return sdf.format(cal.getTime());
      }
    // 获得当前月--开始日期
    public static String getMinMonthDate(String date) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
        try {
            calendar.setTime(dateFormat.parse(date));
            calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
            return dateFormat.format(calendar.getTime());
        } catch (java.text.ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
    // 获得当前月--结束日期
    public static String getMaxMonthDate(String date){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
        try {
            calendar.setTime(dateFormat.parse(date));
            calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
            return dateFormat.format(calendar.getTime());
        }  catch (java.text.ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}

+ 2 - 2
svr/svr-wlyy-health-bank/src/main/resources/application.yml

@ -80,8 +80,8 @@ spring:
  profiles: jwtest
  datasource:
    url: jdbc:mysql://172.17.110.160:3306/wlyy_health_bank?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    username: linzhou
    password: linzhou
    username: ssgg
    password: ssgg
  data:
    elasticsearch: #ElasticsearchProperties
      cluster-name: jkzl #默认即为elasticsearch  集群名