Browse Source

Merge branch 'dev' of wangzhinan/wlyy2.0 into dev

huangwenjie 6 years ago
parent
commit
840f87e8ae

+ 11 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/CreditsDetailDO.java

@ -78,6 +78,9 @@ public class CreditsDetailDO extends IdEntityWithOperation implements Serializab
    @Transient
    private String unionId;
    @Transient
    private String weekTimes;//一周的日期
    public String getSaasId() {
@ -247,4 +250,12 @@ public class CreditsDetailDO extends IdEntityWithOperation implements Serializab
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    public String getWeekTimes() {
        return weekTimes;
    }
    public void setWeekTimes(String weekTimes) {
        this.weekTimes = weekTimes;
    }
}

+ 19 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskDO.java

@ -63,6 +63,10 @@ public class TaskDO extends IdEntityWithOperation implements Serializable{
    private Long total;//参加总数
    @Transient
    private List<TaskPatientDetailDO> taskPatientDetailDOS;//参与人详情
    @Transient
    private String ruleName;//规则名称
    @Transient
    private List<CreditsDetailDO> creditsDetailDOS;//积分详情列表
    public String getSaasId() {
        return saasId;
@ -192,4 +196,19 @@ public class TaskDO extends IdEntityWithOperation implements Serializable{
        this.openId = openId;
    }
    public String getRuleName() {
        return ruleName;
    }
    public void setRuleName(String ruleName) {
        this.ruleName = ruleName;
    }
    public List<CreditsDetailDO> getCreditsDetailDOS() {
        return creditsDetailDOS;
    }
    public void setCreditsDetailDOS(List<CreditsDetailDO> creditsDetailDOS) {
        this.creditsDetailDOS = creditsDetailDOS;
    }
}

+ 33 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/TaskPatientDetailDO.java

@ -54,6 +54,15 @@ public class TaskPatientDetailDO extends IdEntityWithOperation implements Serial
    @Transient
    private String taskCode;//任务标识
    @Transient
    private String name;//居民名称
    @Transient
    private String hospital;//社区
    @Transient
    private String hospitalName;//社区名称
    public String getSaasId() {
        return saasId;
    }
@ -157,4 +166,28 @@ public class TaskPatientDetailDO extends IdEntityWithOperation implements Serial
    public void setTaskCode(String taskCode) {
        this.taskCode = taskCode;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
}

+ 2 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/health/bank/HealthBankMapping.java

@ -58,5 +58,7 @@ public class HealthBankMapping {
        public static final String createActiveRecord="/createActiveRecord";
        public static final String doctorAddIntegrate = "/doctorAddIntegrate";
        public static final String addStepIntegrate = "/addStepIntegrate";
        public static final String weekReward = "/weekReward";
        public static final String selectByDate = "/selectByDate";
    }
}

+ 5 - 0
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/controller/ActiveRecordController.java

@ -11,6 +11,7 @@ import com.yihu.jw.service.TaskPatientDtailService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -27,6 +28,8 @@ public class ActiveRecordController extends EnvelopRestController {
    private ActiveRecordService activeRecordService;
    @Autowired
    private TaskPatientDtailService taskPatientDtailService;
    @Autowired
    private Tracer tracer;
    @PostMapping(value = HealthBankMapping.healthBank.createActiveRecord)
    @ApiOperation(value = "添加健康银行活动活跃记录")
@ -51,6 +54,8 @@ public class ActiveRecordController extends EnvelopRestController {
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return Envelop.getError("添加失败");
        }
    }

+ 16 - 0
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/controller/CreditsDetailController.java

@ -231,4 +231,20 @@ public class CreditsDetailController extends EnvelopRestController {
    }
    @PostMapping(value = HealthBankMapping.healthBank.weekReward)
    @ApiOperation(value = "周奖励")
    public Envelop<CreditsDetailDO> weekReward(@ApiParam(name = "creditsDetail",value = "积分记录JSON")
                                                     @RequestParam(value = "creditsDetail",required = true)String creditsDetail){
        try {
            CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class);
            return service.weekReward(creditsDetailDO);
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return Envelop.getError(e.getMessage());
        }
    }
}

+ 15 - 0
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/controller/TaskController.java

@ -191,4 +191,19 @@ public class TaskController extends EnvelopRestController {
            return Envelop.getError(e.getMessage());
        }
    }*/
    @PostMapping(value = HealthBankMapping.healthBank.selectByDate)
    @ApiOperation(value = "某个时刻任务的积分详情")
    public Envelop<TaskDO> selectByDate(@ApiParam(name="object",value = "id集合[]")
                                        @RequestParam(value = "object",required = false)String object){
        try{
            Envelop<TaskDO> envelop = new Envelop<>();
            JSONObject jsonObject = JSONObject.parseObject(object);
            return service.selectByDate(jsonObject);
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return Envelop.getError(e.getMessage());
        }
    }
}

+ 1 - 1
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/service/ActivityService.java

@ -78,7 +78,7 @@ public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
                    "FROM " +
                    " ( " +
                    " SELECT DISTINCT " +
                    "  (btpd.patient_openid) " +
                    "  (btpd.patient_id) " +
                    "  FROM " +
                    "  wlyy_health_bank_task_patient_detail btpd " +
                    "  WHERE " +

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

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

+ 33 - 2
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/service/TaskPatientDtailService.java

@ -3,15 +3,19 @@ package com.yihu.jw.service;/**
 */
import com.yihu.base.mysql.query.BaseJpaService;
import com.yihu.jw.dao.AccountDao;
import com.yihu.jw.dao.ActivityDao;
import com.yihu.jw.dao.TaskDao;
import com.yihu.jw.dao.TaskPatientDetailDao;
import com.yihu.jw.entity.health.bank.AccountDO;
import com.yihu.jw.entity.health.bank.TaskDO;
import com.yihu.jw.entity.health.bank.TaskPatientDetailDO;
import com.yihu.jw.entity.health.bank.TaskRangDO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.rm.health.bank.HealthBankMapping;
import com.yihu.jw.util.ISqlUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
@ -30,11 +34,14 @@ import java.util.Map;
@Service
@Transactional
public class TaskPatientDtailService extends BaseJpaService<TaskPatientDetailDO,TaskPatientDetailDao> {
    private Logger logger = LoggerFactory.getLogger(TaskPatientDtailService.class);
    @Autowired
    private TaskPatientDetailDao taskPatientDetailDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private AccountDao accountDao;
    @Autowired
    private TaskDao taskDao;
    @Autowired
    private ActivityDao activityDao;
@ -72,6 +79,27 @@ public class TaskPatientDtailService extends BaseJpaService<TaskPatientDetailDO,
        taskPatientDetailDO.setCreateTime(new Date());
        taskPatientDetailDO.setUpdateTime(new Date());
        taskPatientDetailDO.setStatus(Integer.parseInt("0"));
        String accountSql = "select * from wlyy_health_bank_account where patient_id = '"+taskPatientDetailDO.getPatientId()+"'";
        List<AccountDO> accountDOS = jdbcTemplate.query(accountSql,new BeanPropertyRowMapper(AccountDO.class));
        if (accountDOS == null || accountDOS.size() ==0){
            AccountDO accountDO = new AccountDO();
            accountDO.setSaasId("dev");
            accountDO.setStatus(1);
            if(taskPatientDetailDO.getPatientIdcard().length()>=4){// 判断是否长度大于等于4
                String cardNumber=taskPatientDetailDO.getPatientIdcard().substring(taskPatientDetailDO.getPatientIdcard().length()- 4,taskPatientDetailDO.getPatientIdcard().length());//截取两个数字之间的部分
                int random = (int)((Math.random()*9+1)*100000);
                accountDO.setCardNumber(cardNumber+Integer.toString(random));
            }
            accountDO.setAccountName(taskPatientDetailDO.getName());
            accountDO.setTotal(0);
            accountDO.setPatientId(taskPatientDetailDO.getPatientId());
            accountDO.setCardNumber(taskPatientDetailDO.getPatientIdcard());
            accountDO.setHospital(taskPatientDetailDO.getHospital());
            accountDO.setHospitalName(taskPatientDetailDO.getHospitalName());
            accountDO.setCreateTime(new Date());
            accountDO.setUpdateTime(new Date());
            accountDao.save(accountDO);
        }
        String activitySql = "select * from wlyy_health_bank_task where transaction_id = '" + taskPatientDetailDO.getActivityId() +"'";
        List<TaskDO> taskDOList = jdbcTemplate.query(activitySql,new BeanPropertyRowMapper(TaskDO.class));
        StringBuffer buffer = new StringBuffer();
@ -120,10 +148,13 @@ public class TaskPatientDtailService extends BaseJpaService<TaskPatientDetailDO,
     * @return
     */
    public TaskPatientDetailDO selectByPatientId(String openId,String idCard,String unionId,String taskCode){
        String sql ="select * from wlyy_health_bank_task_patient_detail where patient_openid = '"+openId+"'" +
                " AND patient_idcard = '"+idCard+"' AND union_id ='"+unionId+"' AND task_id = " +
        logger.info("openId:"+openId+"idCard:"+idCard+"unionId:"+unionId+"taskCode:"+taskCode);
        String sql ="select * from wlyy_health_bank_task_patient_detail where " +
                " (patient_idcard = '"+idCard+"' OR union_id ='"+unionId+"') AND task_id = " +
                "(select id from wlyy_health_bank_task where task_code = '"+taskCode+"' )";
        List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
        logger.info("参与信息:"+taskPatientDetailDOS);
        return taskPatientDetailDOS.get(0);
    }
}

+ 34 - 3
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/service/TaskService.java

@ -3,18 +3,19 @@ package com.yihu.jw.service;/**
 */
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.base.mysql.query.BaseJpaService;
import com.yihu.jw.dao.ActivityDao;
import com.yihu.jw.dao.TaskDao;
import com.yihu.jw.dao.TaskPatientDetailDao;
import com.yihu.jw.entity.health.bank.ActivityDO;
import com.yihu.jw.entity.health.bank.TaskDO;
import com.yihu.jw.entity.health.bank.TaskPatientDetailDO;
import com.yihu.jw.dao.TaskRuleDao;
import com.yihu.jw.entity.health.bank.*;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -42,6 +43,8 @@ public class TaskService extends BaseJpaService<TaskDO,TaskDao>{
    private TaskPatientDetailDao taskPatientDetailDao;
    @Autowired
    private ActivityDao activityDao;
    @Autowired
    private TaskRuleDao taskRuleDao;
    /**
@ -103,6 +106,8 @@ public class TaskService extends BaseJpaService<TaskDO,TaskDao>{
               ActivityDO activityDO = activityDao.findOne(taskDO1.getTransactionId());
               taskDO1.setActivityDO(activityDO);
           }
           TaskRuleDO taskRuleDO = taskRuleDao.findOne(taskDO1.getRuleCode());
           taskDO1.setRuleName(taskRuleDO.getName());
           //参与活动的详情
           String taskSql = "select * from wlyy_health_bank_task_patient_detail where task_id = '"+taskDO1.getId()+
                   "' and patient_openid = '"+taskDO.getOpenId()+"'";
@ -231,4 +236,30 @@ public class TaskService extends BaseJpaService<TaskDO,TaskDao>{
        }
        return envelop;
    }
    /**
     * 查询某个时间任务的积分情况
     *
     * @param object{"taskCode":,"startTime":,"endTime":,"patientId":""}
     * @return
     */
    public Envelop<TaskDO> selectByDate(JSONObject object){
        Envelop<TaskDO> envelop = new Envelop<>();
        String taskSql = "select * from wlyy_health_bank_task where task_code = '"+object.getString("taskCode")+ "'";
        List<TaskDO> taskDOList = jdbcTemplate.query(taskSql,new BeanPropertyRowMapper(TaskDO.class));
        List<TaskDO> taskDOS = new ArrayList<>();
        if (taskDOList != null && taskDOList.size() != 0){
            TaskDO taskDO = taskDOList.get(0);
            String creditSql = "select * from wlyy_health_bank_credits_detail where transaction_id ='"+taskDO.getId()+
                    "' and DATE_FORMAT(create_time,'%Y-%m-%d') >= '"+object.getString("startTime")+"' and DATE_FORMAT(create_time,'%Y-%m-%d') <= '" +object.getString("endTime")+"'"
                    +" and patient_id = '"+object.getString("patientId")+"'";
            List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(creditSql,new BeanPropertyRowMapper(CreditsDetailDO.class));
            taskDO.setCreditsDetailDOS(creditsDetailDOS);
            taskDOS.add(taskDO);
        }
        envelop.setDetailModelList(taskDOS);
        return envelop;
    }
}

+ 22 - 3
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/util/ISqlUtils.java

@ -3,6 +3,7 @@ package com.yihu.jw.util;/**
 */
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import javax.persistence.Column;
import javax.persistence.Table;
@ -49,7 +50,7 @@ public class ISqlUtils {
                        if(value == null || "".equals(value)){  //如果属性没值,不拼接sql
                            continue;
                        }
                        else if(value instanceof String ){
                        else if(value instanceof String){
                            value ="'%"+value+"%'";
                            sb.append(" and ").append(columeName +" like " ).append(value+"");
                        }else if (value instanceof Integer){
@ -62,8 +63,26 @@ public class ISqlUtils {
                }
        }
        JSONObject jsonObject = (JSONObject) JSONObject.toJSON(object);
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date1 = jsonObject.getDate("startTime");
        Date date2 = jsonObject.getDate("endTime");
        String startTime = null;
        String endTime = null;
        if (date1 != null){
             startTime = sdf.format(date1);
        } else if (date2 != null) {
            endTime = sdf.format(date2);
        }
        if (StringUtils.isNoneBlank(startTime)&& StringUtils.isNoneBlank(endTime)){
            sb.append(" and start_time between "+startTime+" and "+endTime);
        } else if (StringUtils.isNoneBlank(startTime)&&!StringUtils.isNoneBlank(endTime)) {
            sb.append(" and start_time > '"+startTime+"'");
        }else if (StringUtils.isNoneBlank(endTime)&&!StringUtils.isNoneBlank(startTime)){
            sb.append(" and end_time < '"+endTime+"'");
        }
        if(isFlag.equalsIgnoreCase("*")){
            sb.append(" ORDER BY update_time DESC ").append("LIMIT ").append((page-1)*size+",").append(size);
            sb.append(" ORDER BY create_time DESC ").append("LIMIT ").append((page-1)*size+",").append(size);
        }
        return sb.toString();
    }
@ -128,7 +147,7 @@ public class ISqlUtils {
                    }else {
                        value = (Object)m.invoke(object);
                    }
                    if (value == null || "".equals(value)||value.equals(Integer.parseInt("0"))){
                    if (value == null || "".equals(value)){
                        continue;
                    }
                    else if (value instanceof  String){

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

@ -57,6 +57,10 @@ spring:
    url: jdbc:mysql://172.19.103.77:3306/wlyy_health_bank?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    username: root
    password: 123456
  redis:
    host: 172.19.103.88 # Redis server host.
    port: 6379 # Redis server port.
    #    password: jkzl_ehr
  data:
    elasticsearch: #ElasticsearchProperties
      cluster-name: jkzl #默认即为elasticsearch  集群名
@ -75,6 +79,7 @@ spring:
      password: # Login password.
      proxy.port:  # Proxy port the HTTP client should use.
      proxy.host:  # Proxy host the HTTP client should use.
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/
@ -83,8 +88,12 @@ 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: ssgg
    password: ssgg
    username: linzhou
    password: linzhou
  redis:
    host: 172.19.103.88 # Redis server host.
    port: 6379 # Redis server port.
#    password: jkzl_ehr
  data:
    elasticsearch: #ElasticsearchProperties
      cluster-name: jkzl #默认即为elasticsearch  集群名
@ -114,6 +123,10 @@ spring:
    url: jdbc:mysql://59.61.92.90:9069/wlyy_health_bank?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    username: wlyy
    password: jkzlehr@123
  redis:
    host: 59.61.92.90 # Redis server host.
    port: 9054  # Redis server port.
    password: jkzlehr
  data:
    elasticsearch: #ElasticsearchProperties
      cluster-name: jkzl #默认即为elasticsearch  集群名