Bläddra i källkod

云照护修改

LAPTOP-KB9HII50\70708 1 år sedan
förälder
incheckning
4fe6b40ab2

+ 17 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/sign/ServicePackageSignRecordDao.java

@ -0,0 +1,17 @@
package com.yihu.jw.care.dao.sign;
import com.yihu.jw.entity.base.servicePackage.ServicePackageSignRecordDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
 *
 * @author yeshijie on 2018/8/17.
 */
public interface ServicePackageSignRecordDao extends JpaRepository<ServicePackageSignRecordDO, String>, JpaSpecificationExecutor<ServicePackageSignRecordDO> {
    List<ServicePackageSignRecordDO> findByStatusAndPatient(Integer status, String patient);
}

+ 6 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/consult/FinishConsultJob.java

@ -1,6 +1,7 @@
package com.yihu.jw.care.job.consult;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.service.sign.ServicePackageService;
import com.yihu.jw.care.util.http.HttpUtils;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
@ -49,10 +50,15 @@ public class FinishConsultJob implements Job {
    private BaseDoctorDao doctorDao;
    @Autowired
    private ConsultDao consultDao;
    @Autowired
    private ServicePackageService servicePackageService;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        try{
            //签约超时未审核
            servicePackageService.unCheck();
            //在线咨询
            logger.info("FinishConsultJob start.....");
            StringBuffer sql = new StringBuffer();

+ 50 - 39
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/order/CancelPayOrderJob.java

@ -3,6 +3,7 @@ package com.yihu.jw.care.job.order;
import com.yihu.jw.care.dao.doorCoach.BaseDoorCoachOrderDao;
import com.yihu.jw.care.dao.lifeCare.LifeCareOrderDao;
import com.yihu.jw.care.job.consult.FinishConsultJob;
import com.yihu.jw.care.service.sign.ServicePackageService;
import com.yihu.jw.entity.care.doorCoach.BaseDoorCoachOrderDO;
import com.yihu.jw.entity.care.lifeCare.LifeCareOrderDO;
import com.yihu.jw.entity.order.BusinessOrderDO;
@ -32,50 +33,60 @@ public class CancelPayOrderJob implements Job {
    private BaseDoorCoachOrderDao baseDoorCoachOrderDao;
    @Autowired
    private LifeCareOrderDao lifeCareOrderDao;
    @Autowired
    private ServicePackageService servicePackageService;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        Long nowTime = System.currentTimeMillis();
        logger.info("CANCEL_PAY_ORDER_OVERTIME_JOB start 订单支付超时JOb开始----截至支付时间:"+nowTime);
        List<BusinessOrderDO> needFinishs= businessOrderDao.selectByLastPayTime(nowTime);
        List<BaseDoorCoachOrderDO> doorCoachOrderDOS = new ArrayList<>();
        List<LifeCareOrderDO> lifeCareOrderDOS = new ArrayList<>();
        try {
            //签约超时未支付
            servicePackageService.unPay();
            Long nowTime = System.currentTimeMillis();
            logger.info("CANCEL_PAY_ORDER_OVERTIME_JOB start 订单支付超时JOb开始----截至支付时间:"+nowTime);
            List<BusinessOrderDO> needFinishs= businessOrderDao.selectByLastPayTime(nowTime);
            List<BaseDoorCoachOrderDO> doorCoachOrderDOS = new ArrayList<>();
            List<LifeCareOrderDO> lifeCareOrderDOS = new ArrayList<>();
            for (BusinessOrderDO businessOrderDO:needFinishs) {
                businessOrderDO.setStatus(2);
                String type = businessOrderDO.getOrderCategory();
                String orderId = businessOrderDO.getRelationCode();
                switch (type){
                    case "3":
                        BaseDoorCoachOrderDO doorOrderDO = baseDoorCoachOrderDao.findOne(orderId);
                        if (doorOrderDO!=null){
                            if(doorOrderDO.getStatus()==0){
                                doorOrderDO.setStatus(-1);
                                doorOrderDO.setCancelReason("支付超时");
                                doorOrderDO.setCancelTime(new Date());
                                doorCoachOrderDOS.add(doorOrderDO);
                            }
                        }
                        break;
                    case "4":
                        LifeCareOrderDO lifeOrderDO = lifeCareOrderDao.findOne(orderId);
                        if (lifeOrderDO!=null){
                            if(lifeOrderDO.getStatus()==0){
                                lifeOrderDO.setStatus(-1);
                                lifeOrderDO.setCancelReason("支付超时");
                                lifeOrderDO.setCancelTime(new Date());
                                lifeCareOrderDOS.add(lifeOrderDO);
                            }
                        }
                        break;
                }
                businessOrderDO.setStatus(2);
                businessOrderDO.setUpdateTime(new Date());
            }
            businessOrderDao.save(needFinishs);
            baseDoorCoachOrderDao.save(doorCoachOrderDOS);
            lifeCareOrderDao.save(lifeCareOrderDOS);
        for (BusinessOrderDO businessOrderDO:needFinishs) {
           businessOrderDO.setStatus(2);
           String type = businessOrderDO.getOrderCategory();
           String orderId = businessOrderDO.getRelationCode();
           switch (type){
               case "3":
                   BaseDoorCoachOrderDO doorOrderDO = baseDoorCoachOrderDao.findOne(orderId);
                   if (doorOrderDO!=null){
                       if(doorOrderDO.getStatus()==0){
                           doorOrderDO.setStatus(-1);
                           doorOrderDO.setCancelReason("支付超时");
                           doorOrderDO.setCancelTime(new Date());
                           doorCoachOrderDOS.add(doorOrderDO);
                       }
                   }
                   break;
               case "4":
                   LifeCareOrderDO lifeOrderDO = lifeCareOrderDao.findOne(orderId);
                   if (lifeOrderDO!=null){
                       if(lifeOrderDO.getStatus()==0){
                           lifeOrderDO.setStatus(-1);
                           lifeOrderDO.setCancelReason("支付超时");
                           lifeOrderDO.setCancelTime(new Date());
                           lifeCareOrderDOS.add(lifeOrderDO);
                       }
                   }
                   break;
           }
           businessOrderDO.setStatus(2);
           businessOrderDO.setUpdateTime(new Date());
            logger.info("CANCEL_PAY_ORDER_OVERTIME_JOB end 订单支付超时JOb结束----"+needFinishs.size());
        }catch (Exception e){
            e.printStackTrace();
        }
        businessOrderDao.save(needFinishs);
        baseDoorCoachOrderDao.save(doorCoachOrderDOS);
        lifeCareOrderDao.save(lifeCareOrderDOS);
        logger.info("CANCEL_PAY_ORDER_OVERTIME_JOB end 订单支付超时JOb结束----"+needFinishs.size());
    }
}

+ 43 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/sign/ServicePackageService.java

@ -0,0 +1,43 @@
package com.yihu.jw.care.service.sign;
import com.yihu.jw.care.dao.sign.ServicePackageSignRecordDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
/**
 * 服务包处理
 * Created by yeshijie on 2023/10/30.
 */
@Service
public class ServicePackageService {
    @Autowired
    private JdbcTemplate jdbcTemslate;
    @Autowired
    private ServicePackageSignRecordDao servicePackageSignRecordDao;
//    场景1:服务包签约审核,用户申请服务后,超过7天未审核;
//    场景2:服务包签约审核,用户申请签约审核通过后,超时未发起支付(3天);
//    场景3:服务包无需签约审核,超时未支付(10分钟);
    public void unPay(){
        try {
            String sql = "UPDATE base_service_package_sign_record set `status`=-2,lost_reason='超时未支付,系统自动关闭申请' " +
                    "where status=2 and TIMESTAMPDIFF(MINUTE, update_time, NOW())>=pay_time";
            jdbcTemslate.execute(sql);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public void unCheck(){
        try {
            String sql = "UPDATE base_service_package_sign_record set `status`=-2,lost_reason='超时未审核,系统自动关闭申请' " +
                    "where status=0 and TIMESTAMPDIFF(DAY, update_time, NOW())>=7";
            jdbcTemslate.execute(sql);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}