hurixing пре 8 месеци
родитељ
комит
b46d3b054a

+ 1 - 1
hcp-core/src/main/java/com/yingyangfly/core/service/LearnPackageService.java

@@ -22,7 +22,7 @@ public interface LearnPackageService {
 
     List<LearningPackage> getList(String orgCode,String status);
 
-    List<LearningPackage> tencentLearnPackage();
+    List<LearningPackage> tencentLearnPackage(Long doctorId);
 
     List<LearningPackage> listBackstage(String  packageType,String packageName,String status,String orgCode);
 }

+ 18 - 3
hcp-core/src/main/java/com/yingyangfly/core/service/impl/AppUserService.java

@@ -44,6 +44,8 @@ import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -987,17 +989,30 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
      * 按钮开通  患者套餐
      */
     @Transactional(rollbackFor = Exception.class)
-    public void dealPackage(Long packageId,Long appUserId){
+    public void dealPackage(Long packageId,Long appUserId) throws ParseException {
         // 获取患者信息
         AppUser appUser = appUserMapper.selectById(appUserId);
         //获取 套餐信息
         LearningPackage learningPackage = learnPackageMapper.selectById(packageId);
         appUser.setPackageName(learningPackage.getPackageName());
         appUser.setPackageId(packageId);
-        if(org.apache.commons.lang3.StringUtils.isEmpty(appUser.getOrderStartTime())){
+        if(StringUtils.isEmpty(appUser.getOrderStartTime())){
             appUser.setOrderStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,new Date()));
         }
-        Date endDate = org.apache.commons.lang3.StringUtils.isEmpty(appUser.getOrderEndTime())? new Date(): DateUtils.parseDate(appUser.getOrderEndTime());
+        Date endDate = null;
+        // 判断是否购买过套餐
+        if (StringUtils.isEmpty(appUser.getOrderEndTime())) {
+            endDate = new Date();
+        }else {
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            if (new Date().compareTo(dateFormat.parse(appUser.getOrderEndTime())) <= 0){
+                //套餐有效内
+                endDate = DateUtils.parseDate(appUser.getOrderEndTime());
+            }else {
+                //套餐有效期外
+                endDate = new Date();
+            }
+        }
         Date  orderEndTime = DateUtils.addDays(endDate,learningPackage.getDays());
         log.info("<<<<<<<<<<<<<<<<套餐结束时间:{}>>>>>>>>>>>>>",orderEndTime);
         String packageEndDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, orderEndTime);

+ 26 - 1
hcp-core/src/main/java/com/yingyangfly/core/service/impl/LearnPackageServiceImpl.java

@@ -2,12 +2,14 @@ package com.yingyangfly.core.service.impl;
 import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yingyangfly.common.dto.ResultResponse;
 import com.yingyangfly.common.utils.DateUtils;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.yingyangfly.core.domain.LearningPackage;
 import com.yingyangfly.core.domain.SysOrg;
+import com.yingyangfly.core.domain.SysUser;
 import com.yingyangfly.core.dto.CurrentLoginUser;
 import com.yingyangfly.core.dto.LoginUser;
 import com.yingyangfly.core.mapper.LearningPackagMapper;
@@ -42,6 +44,9 @@ public class LearnPackageServiceImpl implements LearnPackageService {
     @Resource
     private SysOrgService sysOrgService;
 
+    @Resource
+    private SysUserService sysUserService;
+
     @Override
     public List<LearningPackage> list(String packageType, String packageName, String status,String orgCode) {
         if (StringUtils.isEmpty(orgCode)) {
@@ -178,14 +183,34 @@ public class LearnPackageServiceImpl implements LearnPackageService {
     }
 
     @Override
-    public List<LearningPackage> tencentLearnPackage() {
+    public List<LearningPackage> tencentLearnPackage(Long doctorId) {
+        LambdaQueryWrapper<LearningPackage> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(LearningPackage::getStatus,"0");
+        lambdaQueryWrapper.in(LearningPackage::getTimeType, Arrays.asList("B","C","D"));
+        if (doctorId != null){
+            SysUser doctor = sysUserService.getById(doctorId);
+            if (ObjectUtils.isNotNull(doctor)){
+                lambdaQueryWrapper.eq(LearningPackage::getOrgCode,doctor.getOrgCode());
+            }
+        }
+        lambdaQueryWrapper.orderByAsc(LearningPackage::getTimeType);
+        List<LearningPackage> learningPackages = learningPackagMapper.selectList(lambdaQueryWrapper);
+        if (CollectionUtils.isEmpty(learningPackages)){
+            learningPackages = tencentLearnPackage2("system");
+        }
+        return learningPackages;
+    }
+
+    public List<LearningPackage> tencentLearnPackage2(String ordCode){
         LambdaQueryWrapper<LearningPackage> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(LearningPackage::getStatus,"0");
         lambdaQueryWrapper.in(LearningPackage::getTimeType, Arrays.asList("B","C","D"));
         lambdaQueryWrapper.eq(LearningPackage::getOrgCode,"system");
+        lambdaQueryWrapper.orderByAsc(LearningPackage::getTimeType);
         return learningPackagMapper.selectList(lambdaQueryWrapper);
     }
 
+
     @Override
     public List<LearningPackage> listBackstage(String packageType, String packageName, String status, String orgCode) {
         if (StringUtils.isEmpty(orgCode)) {

+ 18 - 2
hcp-core/src/main/java/com/yingyangfly/core/service/impl/PayServiceImpl.java

@@ -37,6 +37,8 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -662,7 +664,7 @@ public class PayServiceImpl<createWXOrder> implements PayService {
         }
     }
 
-    private void dealPackage(PayOrder payOrder,AppUser appUser){
+    private void dealPackage(PayOrder payOrder,AppUser appUser) throws ParseException {
         log.info("<<<<<<<<<<购买套餐订单信息:{}>>>>>>>>>>>>>",JSON.toJSONString(payOrder));
         // 新用户生成测评
         log.info("<<<<<<<<<<<<用户信息:{}>>>>>>>>>>>>>>:",JSON.toJSONString(appUser));
@@ -679,7 +681,21 @@ public class PayServiceImpl<createWXOrder> implements PayService {
         if(StringUtils.isEmpty(appUser.getOrderStartTime())){
             appUser.setOrderStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,new Date()));
         }
-        Date endDate = StringUtils.isEmpty(appUser.getOrderEndTime())? new Date(): DateUtils.parseDate(appUser.getOrderEndTime());
+//        Date endDate = StringUtils.isEmpty(appUser.getOrderEndTime())? new Date(): DateUtils.parseDate(appUser.getOrderEndTime());
+        Date endDate = null;
+        // 判断是否购买过套餐
+        if (com.alibaba.excel.util.StringUtils.isEmpty(appUser.getOrderEndTime())) {
+            endDate = new Date();
+        }else {
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            if (new Date().compareTo(dateFormat.parse(appUser.getOrderEndTime())) <= 0){
+                //套餐有效内
+                endDate = DateUtils.parseDate(appUser.getOrderEndTime());
+            }else {
+                //套餐有效期外
+                endDate = new Date();
+            }
+        }
         Date  orderEndTime = DateUtils.addDays(endDate,learningPackage.getDays());
         log.info("<<<<<<<<<<<<<<<<套餐结束时间:{}>>>>>>>>>>>>>",orderEndTime);
         String packageEndDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, orderEndTime);

+ 2 - 2
hcp-platform/src/main/java/com/yingyangfly/platform/controller/LearningPackageController.java

@@ -90,8 +90,8 @@ public class LearningPackageController {
 
     @PostMapping("/tencent/learnPackage")
     @TraceLog
-    public ResultResponse tencentLearnPackage(){
-        List<LearningPackage> learningPackageList = learnPackageService.tencentLearnPackage();
+    public ResultResponse tencentLearnPackage(Long doctorId){
+        List<LearningPackage> learningPackageList = learnPackageService.tencentLearnPackage(doctorId);
         List<LearningPackageVo> learningPackageVos = EntityConverter.convertList(learningPackageList, LearningPackageVo.class);
         return ResultResponse.success(learningPackageVos);
     }