Procházet zdrojové kódy

Merge branch 'dev' of http://192.168.1.220:10080/jiwei/wlyy2.0 into dev1

# Conflicts:
#	svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/util/ISqlUtils.java
wangzhinan před 6 roky
rodič
revize
df7f014b4e

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

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

@ -58,5 +58,6 @@ 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";
    }
}

+ 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());
        }
    }
}

+ 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 " +

+ 115 - 24
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
@ -790,12 +787,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 +802,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(creditsDetailDO1.getIntegrate()+2);
                            creditsDetailDO1.setTradeDirection(1);
                            CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
                            AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
@ -831,7 +827,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,20 +839,19 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
                            taskPatientDetailDao.save(taskPatientDetailDO);
                            creditsDetailDOS.clear();
                            creditsDetailDOS.add(creditsDetailDO2);
                        }
                        }*/
                    }
                }else{
                    CreditsDetailDO creditsDetailDO1 = new CreditsDetailDO();
                    if (creditsDetailDO.getStepNumber() == step1){
                    if (creditsDetailDO.getStepNumber() < step1 && creditsDetailDO.getStepNumber() >0){
                        creditsDetailDO1.setIntegrate(0);
                        creditsDetailDO1.setTradeDirection(1);
                    }else if (creditsDetailDO.getStepNumber() >= step1 && creditsDetailDO.getStepNumber() < step2){
                        creditsDetailDO1.setIntegrate(1);
                        creditsDetailDO1.setTradeDirection(1);
                    }else if (creditsDetailDO.getStepNumber() == step2){
                    }else if (creditsDetailDO.getStepNumber() >=step2){
                        creditsDetailDO1.setIntegrate(3);
                        creditsDetailDO1.setTradeDirection(1);
                    }else if (creditsDetailDO.getStepNumber() == step3){
                        creditsDetailDO1.setIntegrate(8);
                        creditsDetailDO1.setTradeDirection(1);
                    }
                    creditsDetailDO1.setSaasId("dev");
                    creditsDetailDO1.setTradeType("ACTIVITY_TASK");
@ -881,7 +876,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 +887,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 +904,101 @@ 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");
                        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];
    }
}

+ 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){

+ 13 - 0
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/
@ -85,6 +90,10 @@ spring:
    url: jdbc:mysql://172.17.110.160:3306/wlyy_health_bank?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    username: ssgg
    password: ssgg
  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  集群名