hurixing 1 год назад
Родитель
Сommit
397422ae6c
20 измененных файлов с 330 добавлено и 65 удалено
  1. 1 1
      hcp-app/src/main/java/com/yingyangfly/app/controller/GameTaskController.java
  2. 1 1
      hcp-app/src/main/resources/application-dev.yml
  3. 21 0
      hcp-core/src/main/java/com/yingyangfly/core/domain/MentalEnergyTrend.java
  4. 9 0
      hcp-core/src/main/java/com/yingyangfly/core/mapper/MentalEnergyTrendMapper.java
  5. 3 0
      hcp-core/src/main/java/com/yingyangfly/core/security/filter/JwtAuthenticationFilter.java
  6. 5 0
      hcp-core/src/main/java/com/yingyangfly/core/service/GameTaskService.java
  7. 14 0
      hcp-core/src/main/java/com/yingyangfly/core/service/MentalEnergyTrendService.java
  8. 12 5
      hcp-core/src/main/java/com/yingyangfly/core/service/impl/AppUserService.java
  9. 4 4
      hcp-core/src/main/java/com/yingyangfly/core/service/impl/GamePlayRecordServiceImpl.java
  10. 37 0
      hcp-core/src/main/java/com/yingyangfly/core/service/impl/GameTaskServiceImpl.java
  11. 32 19
      hcp-core/src/main/java/com/yingyangfly/core/service/impl/LearnPackageServiceImpl.java
  12. 19 15
      hcp-core/src/main/java/com/yingyangfly/core/service/impl/MedicalConsultationServiceImpl.java
  13. 66 0
      hcp-core/src/main/java/com/yingyangfly/core/service/impl/MentalEnergyTrendServiceImpl.java
  14. 3 0
      hcp-core/src/main/java/com/yingyangfly/core/service/impl/PayServiceImpl.java
  15. 35 8
      hcp-core/src/main/java/com/yingyangfly/core/service/impl/ReviewServiceImpl.java
  16. 10 10
      hcp-large-screen/src/main/resources/application-dev.yml
  17. 15 0
      hcp-platform/src/main/java/com/yingyangfly/platform/job/RenewWarnJob.java
  18. 1 1
      hcp-platform/src/main/resources/application-dev.yml
  19. 12 0
      hcp-platform/src/test/java/com/yingyangfly/core/recommend/RecommendFacadeTest.java
  20. 30 1
      hcp-platform/src/test/java/com/yingyangfly/core/service/AppUserServiceTest.java

+ 1 - 1
hcp-app/src/main/java/com/yingyangfly/app/controller/GameTaskController.java

@@ -104,7 +104,7 @@ public class GameTaskController {
     @PostMapping(value = "/variationTendency")
     @TraceLog
     public ResultResponse variationTendency(@RequestBody Map<String,String> map) {
-        List<Map<String, Object>> list = gameTaskService.variationTendency(map);
+        List<Map<String, Object>> list = gameTaskService.newVariationTendency(map);
         return ResultResponse.success(list);
     }
 

+ 1 - 1
hcp-app/src/main/resources/application-dev.yml

@@ -101,6 +101,6 @@ baidu:
   appId: 116714556
   apiKey: IsH2OofFaYYB88lO1zHTLDsF
   secretKey: IkFp0lMRKN35g1Mw2LW9sFtylPfeTNl7
-query-daily-trai: https://yaorong.yaorongmedical.com/h5-training-daily/index.html
+query-daily-trai: http://60.205.122.15/h5-training-daily/index.html
 
 review-task-space: 30

+ 21 - 0
hcp-core/src/main/java/com/yingyangfly/core/domain/MentalEnergyTrend.java

@@ -0,0 +1,21 @@
+package com.yingyangfly.core.domain;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class MentalEnergyTrend {
+
+    private Long Id;
+
+    private Long appUserId;
+
+    private int mentalEnergy;
+
+    private String mentalEnergyDate;
+
+    private Date createTime;
+
+    private String createBy;
+}

+ 9 - 0
hcp-core/src/main/java/com/yingyangfly/core/mapper/MentalEnergyTrendMapper.java

@@ -0,0 +1,9 @@
+package com.yingyangfly.core.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yingyangfly.core.domain.MentalEnergyTrend;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface MentalEnergyTrendMapper extends BaseMapper<MentalEnergyTrend> {
+}

+ 3 - 0
hcp-core/src/main/java/com/yingyangfly/core/security/filter/JwtAuthenticationFilter.java

@@ -57,6 +57,9 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
             chain.doFilter(request, response);
             return;
         }
+        // 防重
+
+
         String authTimestamp = request.getHeader("timestamp");
         String sign = request.getHeader("sign");
         String contextPath = request.getServletPath();

+ 5 - 0
hcp-core/src/main/java/com/yingyangfly/core/service/GameTaskService.java

@@ -50,5 +50,10 @@ public interface GameTaskService extends IService<GameTask> {
     List<Map<String, Object>> durationVariationTendency(Map<String, String> map);
 
     ResultResponse variationTendencyByType(Map<String, String> map);
+
+    /**
+     * 综合能力变化趋势 2
+     */
+    List<Map<String, Object>> newVariationTendency(Map<String, String> map);
 }
 

+ 14 - 0
hcp-core/src/main/java/com/yingyangfly/core/service/MentalEnergyTrendService.java

@@ -0,0 +1,14 @@
+package com.yingyangfly.core.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yingyangfly.core.domain.MentalEnergyTrend;
+import org.springframework.stereotype.Service;
+
+@Service
+public interface MentalEnergyTrendService extends IService<MentalEnergyTrend> {
+
+    /**
+     * 定时任务记录每天患者的综合能力变化
+     */
+    void saveListJobTask();
+}

+ 12 - 5
hcp-core/src/main/java/com/yingyangfly/core/service/impl/AppUserService.java

@@ -291,6 +291,12 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
     @Transactional(rollbackFor = Exception.class)
     public ResultResponse saveAppUser(AppUser appUser) {
 
+        try {
+
+        boolean lock = redisClient.lock("hcp:patient:"+appUser.getMobile(), 2);
+        if (!lock) {
+            return ResultResponse.fail("手机号已经存在");
+        }
         CurrentLoginUser currentUser = tokenUtil.getCurrentUser();
         if(!StringUtils.isEmpty(appUser.getEquipmentPledgeYUAN())){
             BigDecimal equipmentPledge = new BigDecimal(appUser.getEquipmentPledgeYUAN()).multiply(new BigDecimal("100"));
@@ -326,9 +332,8 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
             appUser.setMentalEnergy(0);
             appUser.setCreateBy(currentUser.getUsername());
             appUser.setCreateTime(new Date());
-            Assert.isTrue(count(new LambdaQueryWrapper<AppUser>().eq(AppUser::getMobile,Sm4Util.encrypt(appUser.getMobile()))) ==0,
-                    "手机号已存在");
-            if (count(new LambdaQueryWrapper<AppUser>().eq(AppUser::getMobile,Sm4Util.encrypt(appUser.getMobile()))) !=0){
+            AppUser user = selectByMobile(Sm4Util.encrypt(appUser.getMobile()), null);
+            if (ObjectUtils.isNotNull(user)){
                 return ResultResponse.fail("手机号已经存在");
             }
 
@@ -359,7 +364,9 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
             appUserMapper.updateById(appUserUpdate);
             return ResultResponse.success(appUserDb.getId());
         }
-
+        }catch (Exception e) {
+            return ResultResponse.fail("操作失败!");
+        }
     }
 
     private MsgWarn buildMsgWarn(Long userId,String msgType,String msgTitle,String msgDesn,String orgCode,String orgName){
@@ -630,7 +637,7 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
             // 防机器
             redisClient.set("hcp:sms:mobile:"+mobile,random,60);
             //存入redis
-            redisClient.set("hcp:mobile:" + mobile, random, 120);
+            redisClient.set("hcp:mobile:" + mobile, random, 300);
             return ResultResponse.success(true);
         } else {
             return ResultResponse.fail("发送异常");

+ 4 - 4
hcp-core/src/main/java/com/yingyangfly/core/service/impl/GamePlayRecordServiceImpl.java

@@ -281,7 +281,7 @@ public class GamePlayRecordServiceImpl implements GamePlayRecordService {
 
         Criteria criteria = Criteria.where("user_id").is(userId)
                                                      .and("game_code").is(gameCode)
-                                                     .and("play_class").is(playClass).and("del_flag").is(0);;
+                                                     .and("play_class").is(playClass).and("del_flag").is(0).and("is_pass").is("0");;
         Aggregation aggregation = Aggregation.newAggregation(
                 Aggregation.match(criteria),
                 Aggregation.group("userId").sum("game_score").as("gameScore")
@@ -412,11 +412,11 @@ public class GamePlayRecordServiceImpl implements GamePlayRecordService {
 
         Criteria criteria = null;
         if(StringUtils.isEmpty(time)){
-            criteria  = Criteria.where("user_id").is(userId).and("del_flag").is(0);
+            criteria  = Criteria.where("user_id").is(userId);
         }else{
             Date startDate = DateUtils.parseDate(time+" 00:00:00");
             Date endDate = DateUtils.parseDate(time+" 23:59:59");
-            criteria  = Criteria.where("user_id").is(userId).and("create_time").gte(startDate).lte(endDate).and("del_flag").is(0);
+            criteria  = Criteria.where("user_id").is(userId).and("create_time").gte(startDate).lte(endDate);
         }
         Aggregation aggregation = Aggregation.newAggregation(
                 Aggregation.match(criteria),
@@ -498,7 +498,7 @@ public class GamePlayRecordServiceImpl implements GamePlayRecordService {
 
         Criteria criteria = Criteria.where("user_id").is(userId)
                                    .and("play_class").in(playClass.split(","))
-                                   .and("create_time").gte(DateUtils.parseDate(time+" 00:00:00")).lte(DateUtils.parseDate(time+" 23:59:59")).and("del_flag").is(0);
+                                   .and("create_time").gte(DateUtils.parseDate(time+" 00:00:00")).lte(DateUtils.parseDate(time+" 23:59:59"));
 
         Aggregation aggregation = Aggregation.newAggregation(
                 Aggregation.match(criteria),

+ 37 - 0
hcp-core/src/main/java/com/yingyangfly/core/service/impl/GameTaskServiceImpl.java

@@ -86,6 +86,9 @@ public class GameTaskServiceImpl extends ServiceImpl<GameTaskMapper, GameTask> i
     @Resource
     private MentalEnergyDetailMapper mentalEnergyDetailMapper;
 
+    @Resource
+    private MentalEnergyTrendService mentalEnergyTrendService;
+
     @Resource
     private MongoTemplate mongoTemplate;
 
@@ -846,6 +849,40 @@ public class GameTaskServiceImpl extends ServiceImpl<GameTaskMapper, GameTask> i
         return ResultResponse.success(returnList2);
     }
 
+    @Override
+    public List<Map<String, Object>> newVariationTendency(Map<String, String> map) {
+        List<Map<String, Object>> list = new ArrayList<>();
+        String time = map.get("time");
+        String userId = map.get("userId");
+        List<String> day = com.yingyangfly.core.util.DateUtil.getMonthDayList(time);
+        Collections.reverse(day);
+        for (String s : day) {
+            map.put(s, "0");
+        }
+        LambdaQueryWrapper<MentalEnergyTrend> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(MentalEnergyTrend::getAppUserId,userId);
+        lambdaQueryWrapper.in(MentalEnergyTrend::getMentalEnergyDate,day);
+        List<MentalEnergyTrend> mentalEnergyTrendList = mentalEnergyTrendService.list(lambdaQueryWrapper);
+        Map<String, Integer> mentalEnergyTrendMap = mentalEnergyTrendList.stream().collect(Collectors.toMap(MentalEnergyTrend::getMentalEnergyDate, MentalEnergyTrend::getMentalEnergy, (existing, replacement) -> existing));
+        for (String s : day) {
+            TreeMap<String, Object> m = new TreeMap<>();
+            m.put("time", s);
+            Integer integer = mentalEnergyTrendMap.get(s);
+            if (integer != null) {
+                m.put("mentalEnergyVal", integer);
+            } else {
+                if (time.equals(s)){
+                    AppUser appUser = appUserMapper.selectById(userId);
+                    m.put("mentalEnergyVal", appUser.getMentalEnergy());
+                }else {
+                    m.put("mentalEnergyVal", 0);
+                }
+            }
+            list.add(m);
+        }
+        return list;
+    }
+
 
     /**
      * 计算游戏关卡,根据脑力值和总关卡

+ 32 - 19
hcp-core/src/main/java/com/yingyangfly/core/service/impl/LearnPackageServiceImpl.java

@@ -45,33 +45,37 @@ public class LearnPackageServiceImpl implements LearnPackageService {
     private SysOrgService sysOrgService;
 
     @Override
-    public List<LearningPackage> list(String  packageType,String packageName,String status) {
-        QueryWrapper<LearningPackage> queryWrapper = new QueryWrapper<>();
-        if(!StringUtils.isEmpty(packageType)){
-            queryWrapper.eq("package_type",packageType);
-        }
-        if(!StringUtils.isEmpty(packageName)){
-            queryWrapper.like("package_name","%"+packageName+"%");
-        }
-        if(!StringUtils.isEmpty(status)){
-            queryWrapper.in("status",status.split(","));
-        }
-        LoginUser loginUser = tokenUtil.getUser();
-        queryWrapper.eq("org_code",loginUser.getSysUser().getOrgCode());
-        List<LearningPackage> learningPackages = learningPackagMapper.selectList(queryWrapper);
-        if (CollectionUtils.isEmpty(learningPackages)){
-            queryWrapper.eq("org_code","system");
-            learningPackages = learningPackagMapper.selectList(queryWrapper);
+    public List<LearningPackage> list(String packageType, String packageName, String status) {
+        List<LearningPackage> learningPackages = queryLearningPackages(packageType, packageName, status, tokenUtil.getUser().getSysUser().getOrgCode());
+        if (CollectionUtils.isEmpty(learningPackages)) {
+            learningPackages = queryLearningPackages(packageType, packageName, status, "system");
         }
-        for (LearningPackage learningPackage :learningPackages) {
+
+        for (LearningPackage learningPackage : learningPackages) {
             learningPackage.setPriceYUAN(AmountUtils.F2Y4STR(learningPackage.getPrice()));
             String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, new Date());
             learningPackage.setStartTime(startTime);
             Date endDate = DateUtils.addDays(new Date(), learningPackage.getDays());
-            learningPackage.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,endDate));
+            learningPackage.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, endDate));
         }
+
         return learningPackages;
+    }
 
+    private List<LearningPackage> queryLearningPackages(String packageType, String packageName, String status, String orgCode) {
+        QueryWrapper<LearningPackage> queryWrapper = new QueryWrapper<>();
+        if (!StringUtils.isEmpty(packageType)) {
+            queryWrapper.eq("package_type", packageType);
+        }
+        if (!StringUtils.isEmpty(packageName)) {
+            queryWrapper.like("package_name", "%" + packageName + "%");
+        }
+        if (!StringUtils.isEmpty(status)) {
+            queryWrapper.in("status", status.split(","));
+        }
+        queryWrapper.eq("org_code", orgCode);
+        queryWrapper.orderByAsc("time_type");
+        return learningPackagMapper.selectList(queryWrapper);
     }
 
     @Override
@@ -89,6 +93,11 @@ public class LearnPackageServiceImpl implements LearnPackageService {
             }
         }
         if(learningPackage.getId()!=null){
+            LearningPackage learningPackage1 = learningPackagMapper.selectById(learningPackage.getId());
+            Assert.isTrue(learningPackage !=null,"套餐不存在");
+            if (!learningPackage1.getOrgCode().equals(currentUser.getOrgCode())){
+                throw new RuntimeException("权限不足,请联系管理员");
+            }
             learningPackage.setUpdateTime(new Date());
             learningPackage.setUpdateBy(currentUser.getUsername());
             learningPackagMapper.updateById(learningPackage);
@@ -105,6 +114,10 @@ public class LearnPackageServiceImpl implements LearnPackageService {
     public void delete(Long id) {
         LearningPackage learningPackage = learningPackagMapper.selectById(id);
         Assert.isTrue(learningPackage !=null,"套餐不存在");
+        CurrentLoginUser currentUser = tokenUtil.getCurrentUser();
+        if (!learningPackage.getOrgCode().equals(currentUser.getOrgCode())){
+            throw new RuntimeException("权限不足,请联系管理员");
+        }
         learningPackagMapper.update(null,new LambdaUpdateWrapper<LearningPackage>().set(LearningPackage::getStatus,2).eq(LearningPackage::getId,id));
     }
 

+ 19 - 15
hcp-core/src/main/java/com/yingyangfly/core/service/impl/MedicalConsultationServiceImpl.java

@@ -220,20 +220,22 @@ public class MedicalConsultationServiceImpl extends ServiceImpl<MedicalConsultat
             Assert.isTrue(m.getStatus().intValue() ==1,"只有待接诊的咨询可以拒诊 "+m.getId());
             PayOrder payOrder = payService.getPayOrder(m.getId(),orderType);
             if(payOrder !=null){
-                // 退款
-                payService.refundAll(payOrder);
-                // 发送消息
-                MsgWarn warn = new MsgWarn();
-                warn.setMsgTitle("医疗咨询-退费");
-                warn.setMsgDesn("医生暂时繁忙,已经拒绝您的问诊要求,咨询费用1到3天原路退回您的支付账户。");
-                warn.setUserId(m.getAppUserId());
-                warn.setCreateTime(new Date());
-                warn.setUpdateTime(new Date());
-                warn.setStatus("1");
-                warn.setOrgCode(payOrder.getOrgCode());
-                warn.setOrgName(payOrder.getOrgName());
-                warn.setMsgType("A");
-                msgWarnService.save(warn);
+                if ("2".equals(payOrder.getPayStatus())){
+                    // 退款
+                    payService.refundAll(payOrder);
+                    // 发送消息
+                    MsgWarn warn = new MsgWarn();
+                    warn.setMsgTitle("医疗咨询-退费");
+                    warn.setMsgDesn("医生暂时繁忙,已经拒绝您的问诊要求,咨询费用1到3天原路退回您的支付账户。");
+                    warn.setUserId(m.getAppUserId());
+                    warn.setCreateTime(new Date());
+                    warn.setUpdateTime(new Date());
+                    warn.setStatus("1");
+                    warn.setOrgCode(payOrder.getOrgCode());
+                    warn.setOrgName(payOrder.getOrgName());
+                    warn.setMsgType("A");
+                    msgWarnService.save(warn);
+                }
             }
             return update(null,new LambdaUpdateWrapper<MedicalConsultation>()
                     .set(MedicalConsultation::getStatus,3)
@@ -260,7 +262,9 @@ public class MedicalConsultationServiceImpl extends ServiceImpl<MedicalConsultat
             PayOrder payOrder = payService.getPayOrder(m.getId(),orderType);
             if(payOrder !=null){
                 // 退款
-                payService.refundAll(payOrder);
+                if("2".equals(payOrder.getPayStatus())) {
+                    payService.refundAll(payOrder);
+                }
             }
             return update(null,new LambdaUpdateWrapper<MedicalConsultation>()
                     .set(MedicalConsultation::getStatus,5)

+ 66 - 0
hcp-core/src/main/java/com/yingyangfly/core/service/impl/MentalEnergyTrendServiceImpl.java

@@ -0,0 +1,66 @@
+package com.yingyangfly.core.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yingyangfly.common.utils.DateUtils;
+import com.yingyangfly.core.domain.AppUser;
+import com.yingyangfly.core.domain.MentalEnergyTrend;
+import com.yingyangfly.core.mapper.MentalEnergyTrendMapper;
+import com.yingyangfly.core.service.MentalEnergyTrendService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.List;
+
+@Slf4j
+@Service
+public class MentalEnergyTrendServiceImpl extends ServiceImpl<MentalEnergyTrendMapper, MentalEnergyTrend> implements MentalEnergyTrendService {
+
+    @Resource
+    private AppUserService appUserService;
+
+
+    @Override
+    public void saveListJobTask() {
+        // 获取所有正常使用的患者
+        LambdaQueryWrapper<AppUser> appUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        appUserLambdaQueryWrapper.ge(AppUser::getOrderEndTime,new Date());
+        List<AppUser> appUserList = appUserService.list(appUserLambdaQueryWrapper);
+        for (AppUser appUser : appUserList) {
+            try {
+                LambdaQueryWrapper<MentalEnergyTrend> trendLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                trendLambdaQueryWrapper.eq(MentalEnergyTrend::getAppUserId,appUser.getId());
+                trendLambdaQueryWrapper.eq(MentalEnergyTrend::getMentalEnergyDate, LocalDate.now());
+                Long aLong = baseMapper.selectCount(trendLambdaQueryWrapper);
+                MentalEnergyTrend mentalEnergyTrend = new MentalEnergyTrend();
+                if (aLong == 0) {
+                    mentalEnergyTrend.setAppUserId(appUser.getId());
+                    if (ObjectUtils.isNotNull(appUser.getMentalEnergy())){
+                        mentalEnergyTrend.setMentalEnergy(appUser.getMentalEnergy());
+                    }else {
+                        mentalEnergyTrend.setMentalEnergy(0);
+                    }
+                    mentalEnergyTrend.setMentalEnergyDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,new Date()));
+                    mentalEnergyTrend.setCreateBy("定时任务创建");
+                    mentalEnergyTrend.setCreateTime(new Date());
+                    baseMapper.insert(mentalEnergyTrend);
+                }else if (aLong == 1) {
+                    MentalEnergyTrend trend = baseMapper.selectOne(trendLambdaQueryWrapper);
+                    mentalEnergyTrend.setId(trend.getId());
+                    if (ObjectUtils.isNotNull(appUser.getMentalEnergy())){
+                        mentalEnergyTrend.setMentalEnergy(appUser.getMentalEnergy());
+                    }else {
+                        mentalEnergyTrend.setMentalEnergy(0);
+                    }
+                    baseMapper.updateById(mentalEnergyTrend);
+                }
+            }catch (Exception e) {
+                log.error("<<<<<<<<<<<<<<保存患者每天综合能力失败,用户:{},错误:{}>>>>>>>>>>>>>",appUser.getId(),e);
+            }
+        }
+    }
+}

+ 3 - 0
hcp-core/src/main/java/com/yingyangfly/core/service/impl/PayServiceImpl.java

@@ -297,6 +297,9 @@ public class PayServiceImpl implements PayService {
     @Transactional(rollbackFor = Exception.class)
     public ResultResponse refundPay(String  orderNo,String refundMoneyYUAN) throws Exception {
         PayOrder payOrder = getByOrderId(orderNo);
+        if ("B".equals(payOrder.getOrderType())){
+            return ResultResponse.fail("套餐暂时不支持退款服务");
+        }
         if(AmountUtils.Y2F4Long(refundMoneyYUAN) > payOrder.getPayMoney()){
             return ResultResponse.fail("退款金额大于支付金额,不允许退款");
         }

+ 35 - 8
hcp-core/src/main/java/com/yingyangfly/core/service/impl/ReviewServiceImpl.java

@@ -33,6 +33,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * mmse测评表服务实现类
@@ -77,6 +78,7 @@ public class ReviewServiceImpl extends ServiceImpl<ReviewMapper, Review> impleme
     @Override
     public void saveReviewRecord(List<ReviewRecord> list) {
         AppCurrentLoginUser appCurrentLoginUser = tokenUtil.getAppCurrentLoginUser();
+        Map<Long,ReviewRecord> map = list.stream().collect(Collectors.toMap(ReviewRecord::getReviewId, record -> record, (existing, replacement) -> existing));
         for (ReviewRecord reviewRecord : list) {
             //根据测评任务id 判断是否有测评过,有测评过直接返回异常
             String reviewTaskId = reviewRecord.getReviewTaskId();
@@ -87,9 +89,7 @@ public class ReviewServiceImpl extends ServiceImpl<ReviewMapper, Review> impleme
             if(aLong > 0){
                 throw new RuntimeException("您已提交测评申请,请勿重复提交!");
             }
-
-            log.info("getReviewAnswer:"+reviewRecord.getReviewAnswer());
-            reviewRecord = judgmentCorrect(reviewRecord);
+            reviewRecord = judgmentCorrect(reviewRecord,map);
             reviewRecord.setUserId(appCurrentLoginUser.getId());
             reviewRecord.setCreateBy(appCurrentLoginUser.getUsername());
             reviewRecord.setCreateTime(new Date());
@@ -398,7 +398,7 @@ public class ReviewServiceImpl extends ServiceImpl<ReviewMapper, Review> impleme
         return i;
     }
 
-    private static ReviewRecord judgmentCorrect(ReviewRecord reviewRecord) {
+    private static ReviewRecord judgmentCorrect(ReviewRecord reviewRecord,Map<Long,ReviewRecord> map) {
         if(reviewRecord.getReviewId() != null){
             if(reviewRecord.getReviewId() == 1 || reviewRecord.getReviewId() == 72 || reviewRecord.getReviewId() == 86){
                 String reviewAnswer = reviewRecord.getReviewAnswer();//获取当前答案
@@ -519,28 +519,55 @@ public class ReviewServiceImpl extends ServiceImpl<ReviewMapper, Review> impleme
                     reviewRecord.setScore("0");
                 }
             } else if (reviewRecord.getReviewId() == 15|| reviewRecord.getReviewId() == 53) {
-                if (reviewRecord.getReviewAnswer().equals("86")) {
+                Integer reviewAnswer = 0;
+                if (reviewRecord.getReviewId() == 15){
+                    reviewAnswer = Integer.parseInt(map.get(14L).getReviewAnswer()) -7;
+                }else {
+                    reviewAnswer = Integer.parseInt(map.get(52L).getReviewAnswer()) -7;
+                }
+                if (reviewRecord.getReviewAnswer().equals(reviewAnswer.toString())) {
                     reviewRecord.setCorrect("1");//0错误,1正确
                 } else {
                     reviewRecord.setCorrect("0");//0错误,1正确
                     reviewRecord.setScore("0");
                 }
             } else if (reviewRecord.getReviewId() == 16|| reviewRecord.getReviewId() == 54) {
-                if (reviewRecord.getReviewAnswer().equals("79")) {
+                Integer reviewAnswer = 0;
+                if (reviewRecord.getReviewId() == 16){
+                    reviewAnswer = Integer.parseInt(map.get(15L).getReviewAnswer()) -7;
+                }else {
+                    reviewAnswer = Integer.parseInt(map.get(53L).getReviewAnswer()) -7;
+                }
+
+                if (reviewRecord.getReviewAnswer().equals(reviewAnswer.toString())) {
                     reviewRecord.setCorrect("1");//0错误,1正确
                 } else {
                     reviewRecord.setCorrect("0");//0错误,1正确
                     reviewRecord.setScore("0");
                 }
             } else if (reviewRecord.getReviewId() == 17|| reviewRecord.getReviewId() == 55) {
-                if (reviewRecord.getReviewAnswer().equals("72")) {
+                Integer reviewAnswer = 0;
+                if (reviewRecord.getReviewId() == 17){
+                    reviewAnswer = Integer.parseInt(map.get(16L).getReviewAnswer()) -7;
+                }else {
+                    reviewAnswer = Integer.parseInt(map.get(54L).getReviewAnswer()) -7;
+                }
+
+                if (reviewRecord.getReviewAnswer().equals(reviewAnswer.toString())) {
                     reviewRecord.setCorrect("1");//0错误,1正确
                 } else {
                     reviewRecord.setCorrect("0");//0错误,1正确
                     reviewRecord.setScore("0");
                 }
             } else if (reviewRecord.getReviewId() == 18|| reviewRecord.getReviewId() == 56) {
-                if (reviewRecord.getReviewAnswer().equals("65")) {
+                Integer reviewAnswer = 0;
+                if (reviewRecord.getReviewId() == 18){
+                    reviewAnswer = Integer.parseInt(map.get(17L).getReviewAnswer()) -7;
+                }else {
+                    reviewAnswer = Integer.parseInt(map.get(55L).getReviewAnswer()) -7;
+                }
+
+                if (reviewRecord.getReviewAnswer().equals(reviewAnswer.toString())) {
                     reviewRecord.setCorrect("1");//0错误,1正确
                 } else {
                     reviewRecord.setCorrect("0");//0错误,1正确

+ 10 - 10
hcp-large-screen/src/main/resources/application-dev.yml

@@ -15,16 +15,16 @@ spring:
     mongodb:
       authentication-database: admin
       database: hcp-dev
-      host: 47.93.254.212
+      host: 60.205.122.15
       port: 3717
       username: root
-      password: SkyMedic$240307
+      password: SkyMedic$250107
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     name: master
-    url: jdbc:mysql://47.93.254.212:3485/hcp?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+    url: jdbc:mysql://60.205.122.15:3485/hcp?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
     username: root
-    password: SkyMedic$240307
+    password: csyr#test250106
     driver-class-name: com.mysql.cj.jdbc.Driver
     filters: stat
     maxActive: 100
@@ -45,10 +45,10 @@ spring:
     time-zone: GMT+8
 #redis
 redis:
-  host: 47.93.254.212
-  port: 6379
+  host: 60.205.122.15
+  port: 6369
   timeout: 3000
-  password: SkyMedic$240307
+  password: SkyMedic$250106
   database: 1 #默认0
   poolMaxIdle: 256
   poolMaxTotal: 100
@@ -90,8 +90,8 @@ vod:
   secretkey: XzeDeu03349B2iEWjy8xV4WxKYinhXCz
   subappid: 1300835310
 im:
-  sdkappid: 1400823270
-  secretkey: 227a119d8a54da08ad0ea2b96f006d1cddf933e0a57e0f517e691ce055722720
+  sdkappid: 1600012587
+  secretkey: 728d210b72f5aae4b973ded798e731e411abf1ccdbf090273b10f26b534733c5
 yingyang:
   security:
     check-pwd: false
@@ -129,6 +129,6 @@ baidu:
   appId: 116714556
   apiKey: IsH2OofFaYYB88lO1zHTLDsF
   secretKey: IkFp0lMRKN35g1Mw2LW9sFtylPfeTNl7
-query-daily-trai: https://yaorong.yaorongmedical.com/h5-training-daily/index.html
+query-daily-trai: http://60.205.122.15/h5-training-daily/index.html
 
 review-task-space: 30

+ 15 - 0
hcp-platform/src/main/java/com/yingyangfly/platform/job/RenewWarnJob.java

@@ -1,10 +1,13 @@
 package com.yingyangfly.platform.job;
 
+import com.yingyangfly.core.service.MentalEnergyTrendService;
 import com.yingyangfly.core.service.impl.AppUserService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
+
 /**
  * @description: 续费提醒bug
  * @author: hpt
@@ -16,6 +19,9 @@ public class RenewWarnJob {
     @Autowired
     private AppUserService  appUserService;
 
+    @Resource
+    private MentalEnergyTrendService mentalEnergyTrendService;
+
     public void run()  {
         log.info("<<<<<<<<<<<<<<<<续费功能提醒开始>>>>>>>>>>>>>>>>>>");
         appUserService.renewWarnJob();
@@ -27,4 +33,13 @@ public class RenewWarnJob {
         appUserService.expireLogOutJob();
         log.info("<<<<<<<<<<<<<<<<<<到期自动退出登录结束>>>>>>>>>>>>>>>>>>>>");
     }
+
+
+    // 记录患者每天综合能力变化
+    public void mentalEnergyTrend() {
+        log.info("<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
+        //  定时记录用户每天综合能力
+        mentalEnergyTrendService.saveListJobTask();
+        log.info("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
+    }
 }

+ 1 - 1
hcp-platform/src/main/resources/application-dev.yml

@@ -119,6 +119,6 @@ security:
       - /im/callback/**
       - /pay/callback/**/m**
 
-query-daily-trai: https://yaorong.yaorongmedical.com/h5-training-daily/index.html
+query-daily-trai: http://60.205.122.15/h5-training-daily/index.html
 
 review-task-space: 30

+ 12 - 0
hcp-platform/src/test/java/com/yingyangfly/core/recommend/RecommendFacadeTest.java

@@ -64,4 +64,16 @@ class RecommendFacadeTest {
         }
         gameService.updateBatchById(list);
     }
+
+    @Test
+    void test2() {
+        List<Game> list = gameService.list();
+        for (Game game : list) {
+            GameUser gameUser = new GameUser();
+            gameUser.setIsShow(game.getRecommendedCStatus());
+            LambdaQueryWrapper<GameUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper.eq(GameUser::getGameCode,game.getGameCode());
+            boolean update = gameUserService.update(gameUser, lambdaQueryWrapper);
+        }
+    }
 }

+ 30 - 1
hcp-platform/src/test/java/com/yingyangfly/core/service/AppUserServiceTest.java

@@ -1,9 +1,11 @@
 package com.yingyangfly.core.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.yingyangfly.HcpPlatPlatformApplication;
 import com.yingyangfly.common.utils.DateUtils;
 import com.yingyangfly.core.domain.AppUser;
+import com.yingyangfly.core.domain.MentalEnergyTrend;
 import com.yingyangfly.core.domain.PayOrder;
 import com.yingyangfly.core.domain.SysUser;
 import com.yingyangfly.core.mapper.PayOrderMapper;
@@ -18,7 +20,11 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
+import java.util.Collections;
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * ${TODO}
@@ -59,12 +65,35 @@ class AppUserServiceTest {
 
     @Test
     public void saveSysUser(){
-        String encrypt = Sm4Util.encrypt("18373810429");
+        String encrypt = Sm4Util.encrypt("18610244184");
         SysUser sysUser = sysUserService.selectByMobile(encrypt);
         System.out.println(sysUser);
+        System.out.println(encrypt);
         AppUser appUser = appUserService.selectByMobile(encrypt, "0");
         System.out.println(appUser);
 //        sysUserService.violentResetPwd(sysUser.getId(),"@Hrx123456");
     }
+
+    @Resource
+    private MentalEnergyTrendService mentalEnergyTrendService;
+
+    @Test
+    public void test() {
+        LambdaQueryWrapper<MentalEnergyTrend> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(MentalEnergyTrend::getAppUserId,"1878995050593210370");
+        List<String> day = com.yingyangfly.core.util.DateUtil.getMonthDayList("2025-02-19");
+        Collections.reverse(day);
+        lambdaQueryWrapper.in(MentalEnergyTrend::getMentalEnergyDate,day);
+        List<MentalEnergyTrend> mentalEnergyTrendList = mentalEnergyTrendService.list(lambdaQueryWrapper);
+        Map<String, Integer> collect = mentalEnergyTrendList.stream().collect(Collectors.toMap(MentalEnergyTrend::getMentalEnergyDate, MentalEnergyTrend::getMentalEnergy, (existing, replacement) -> existing));
+        Integer integer = collect.get("2025-02-19");
+        if (integer!=null){
+            System.out.println("测试1:"+integer);
+        }else {
+            System.out.println("测试2:"+0);
+        }
+
+        mentalEnergyTrendService.saveListJobTask();
+    }
     
 }