Browse Source

[CMT]提交

wangzhinan 5 years ago
parent
commit
c8af478ecd

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

@ -83,5 +83,6 @@ public class HealthBankMapping {
        public static final String share = "/share";
        public static final String weekRewardAndIntegrate = "/weekRewardAndIntegrate";
        public static final String selectWeekReward="/selectWeekReward";
        public static final String reduceIntegrate ="/reduceIntegrate";
    }
}

+ 10 - 0
svr/svr-wlyy-health-bank/pom.xml

@ -91,6 +91,16 @@
            <artifactId>common-util</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </dependency>
        <!-- jkzl starter -->
        <dependency>
            <groupId>com.yihu</groupId>

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

@ -475,4 +475,26 @@ public class CreditsDetailController extends EnvelopRestEndpoint {
    }
    @PostMapping(value = HealthBankMapping.healthBank.reduceIntegrate)
    @ApiOperation(value ="失效积分")
    public MixEnvelop<CreditsDetailDO, CreditsDetailDO> reduceIntegrate(@ApiParam(name = "hospital",value = "社区code" )
                                                                         @RequestParam(value = "hospital",required = false)String hospital,
                                                                         @ApiParam(name = "startTime",value = "开始时间")
                                                                         @RequestParam(value = "startTime",required = false)String startTime,
                                                                         @ApiParam(name = "endTime",value = "结束时间")
                                                                         @RequestParam(value = "endTime",required = false)String endTime,
                                                                         @ApiParam(name = "year",value = "年份")
                                                                         @RequestParam(value = "year",required = false)Integer year){
        try {
            service.reduceIntegrate(hospital,startTime,endTime,year);
            MixEnvelop<CreditsDetailDO,CreditsDetailDO> envelop = new MixEnvelop<>();
            return envelop;
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 3 - 0
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/dao/CredittsLogDetailDao.java

@ -12,4 +12,7 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface CredittsLogDetailDao extends PagingAndSortingRepository<CreditsDetailDO,String>,JpaSpecificationExecutor<CreditsDetailDO>{
    @Query("select t from CreditsDetailDO t where t.transactionId=?1 and t.tradeType=?2 and t.status=1")
    CreditsDetailDO selectByTransactionId(String transactionId,String tradeType);
    @Query("select SUM(t.integrate) as total from CreditsDetailDO t where t.patientId=?1 and t.tradeDirection=-1 ")
    Long selectTotalByPatient(String patient);
}

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

@ -14,6 +14,7 @@ import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.BeanClassLoaderAware;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
@ -1619,7 +1620,71 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
        return creditsDetailDOS;
    }
    public void  reduceIntegrate(String hospital,String startTime,String endTime,Integer year){
        String sql ="SELECT hbcd.patient_id, " +
                "SUM(hbcd.integrate) AS total FROM wlyy_health_bank_credits_detail hbcd " +
                "WHERE hbcd.patient_id IN ( SELECT sf.patient AS patient FROM wlyy.wlyy_sign_family sf " +
                "WHERE sf.hospital = '"+hospital+"' AND sf. STATUS =- 4 AND sf.sign_year = "+year+" )AND hbcd.create_time < '"+endTime+"' " +
                "AND hbcd.trade_direction = 1 AND  hbcd.transaction_id IN ('402885ed63debfcc0163dec956200002','402885ed63debfcc0163deca5ca90003','402885ed63debfcc0163decbba230004','402885ed63debfcc0163decc0a1a0005') GROUP BY hbcd.patient_id";
        List<Map<String,Object>> addIntegrate = jdbcTemplate.queryForList(sql);
        if (addIntegrate==null||addIntegrate.size()==0){
            logger.info("居民列表为空");
        }
        for (Map<String,Object> map:addIntegrate){
            String patient = map.get("patient_id").toString();
            Long reduceIntegrate = credittsLogDetailDao.selectTotalByPatient(patient);
            if (reduceIntegrate == null){
                reduceIntegrate = Long.parseLong("0");
            }
            Long total = Long.parseLong(map.get("total").toString());
            if (total <=reduceIntegrate){
                logger.info("居民code"+patient+"不需要扣减");
            }else {
                Long between = total - reduceIntegrate;
                AccountDO accountDO = accountDao.selectByPatientId(patient);
                String sql1 = "select p.idcard from wlyy.wlyy_patient p where p.code ='"+patient+"'";
                List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql1);
                String idcard = null;
                if (maps!=null&&maps.size()!=0){
                    idcard = maps.get(0).get("idcard").toString();
                    accountDO.setIdCard(idcard);
                }
                TaskDO taskDO = taskDao.selectById("5e5d857d684d77f201684d7f58b3000a132");
                TaskPatientDetailDO patientDetailDO = taskPatientDetailDao.selectByTaskIdAndPatientId("5e5d857d684d77f201684d7f58b3000a132",patient);
                if (patientDetailDO == null){
                    TaskPatientDetailDO taskPatientDetailDO = new TaskPatientDetailDO();
                    taskPatientDetailDO.setSaasId("dev");
                    taskPatientDetailDO.setTaskId("5e5d857d684d77f201684d7f58b3000a132");
                    taskPatientDetailDO.setPatientId(patient);
                    taskPatientDetailDO.setDoctorId("system");
                    taskPatientDetailDO.setPatientIdcard(idcard);
                    taskPatientDetailDO.setCreateTime(new Date());
                    taskPatientDetailDO.setUpdateTime(new Date());
                    taskPatientDetailDO.setStatus(1);
                    taskPatientDetailDao.save(taskPatientDetailDO);
                }
                CreditsDetailDO creditsDetailDO = new CreditsDetailDO();
                creditsDetailDO.setAccountId(accountDO.getId());
                creditsDetailDO.setIdCard(accountDO.getIdCard());
                creditsDetailDO.setSaasId("dev");
                creditsDetailDO.setTradeType("ACTIVITY_TASK");
                creditsDetailDO.setTradeDirection(-1);
                creditsDetailDO.setIntegrate(between.intValue());
                creditsDetailDO.setDescription(taskDO.getTitle());
                creditsDetailDO.setStatus(1);
                creditsDetailDO.setHospital(hospital);
                creditsDetailDO.setCreateTime(new Date());
                creditsDetailDO.setUpdateTime(new Date());
                creditsDetailDO.setTransactionId(taskDO.getId());
                creditsDetailDO.setPatientId(patient);
                credittsLogDetailDao.save(creditsDetailDO);
                logger.info("===居民"+accountDO.getAccountName()+"("+patient+")失效"+creditsDetailDO.getIntegrate()+"===");
                accountDO.setTotal(accountDO.getTotal()-between.intValue());
                accountDao.save(accountDO);
            }
        }
    }
}

+ 100 - 0
svr/svr-wlyy-health-bank/src/main/resources/logback.xml

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="io.searchbox" level="WARN"/>
    <jmxConfigurator/>
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy/MM/dd-HH:mm:ss} %level [%thread] %caller{1} - %msg%n</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>
    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/datadisk/wlyy_logs/wlyy-health-bank.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/datadisk/wlyy_logs/wlyy-health-bank.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>15</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>
    <!--  <appender name="business_m" class="com.yihu.base.es.ElasticsearchAppender">
          <hosts>http://172.19.103.68:9200</hosts>
          <index>business</index>
          <type>business</type>
          <clusterName>jkzl</clusterName>
          <rolling>year</rolling>
      </appender>
      <appender name="interface_call_m" class="com.yihu.base.es.ElasticsearchAppender">
          <hosts>http://172.19.103.68:9200</hosts>
          <index>interface</index>
          <type>interface</type>
          <clusterName>jkzl</clusterName>
          <rolling>year</rolling>
      </appender>-->
    <!-- project default level -->
    <logger name="com.yihu.jw" level="INFO"/>
    <!--log4jdbc -->
    <logger name="jdbc.sqltiming" level="INFO"/>
    <!-- <logger name="com.yihu.wlyy.logs.BusinessLogs" level="INFO" additivity="false">
         <appender-ref ref="business_m"/>
     </logger>
     <logger name="com.yihu.wlyy.logs.InterfaceCallLogs" level="INFO" additivity="false">
         <appender-ref ref="interface_call_m"/>
     </logger>-->
    <!--积分失效日志 start-->
    <appender name="wlyy_reduce_integrate_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>/datadisk/wlyy_logs/wlyy_reduce_integrate.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <FileNamePattern>/datadisk/wlyy_logs/wlyy_reduce_integrate.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!-- 保留 15天数据,默认无限
            <maxHistory>15</maxHistory>-->
        </rollingPolicy>
        <encoder>
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern>
        </encoder>
    </appender>
    <logger name="com.yihu.jw.service.CreditsDetailService" level="INFO" additivity="false">
        <appender-ref ref="wlyy_reduce_integrate_log"/>
    </logger>
    <appender name="error_rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/datadisk/wlyy_logs/error/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/datadisk/wlyy_logs/error/error.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d %level %C.%M %m%n</pattern> <!-- %C.%M 可能会影响效率-->
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>
    <logger name="error_logger" level="ERROR" additivity="false">
        <appender-ref ref="error_rollingFile"/>
    </logger>
    <root level="INFO">
        <!--<appender-ref ref="console" />-->
        <appender-ref ref="rollingFile"/>
    </root>
</configuration>