Kaynağa Gözat

预缴金支付问题处理

wangzhinan 4 ay önce
ebeveyn
işleme
f114d13e8f

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/order/BusinessOrderService.java

@ -529,6 +529,7 @@ public class BusinessOrderService extends BaseJpaService<BusinessOrderDO,Busines
    }
    public Map<String,Object> selectOrderByRelationCode(String relationCode,String tradeType,String wechatId,boolean payFlag,String appletCode) throws Exception {
        WxWechatDO wxWechatDO = wechatDao.findByIdAndStatus(wechatId);
        tradeQuery(relationCode,"hop.trade.recharge");
        BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(relationCode);
        if (NumberUtils.isDigits(relationCode) ){
            BaseNatAppointmentDO baseNatAppointmentDO = baseNatAppointmentDao.findById(Integer.valueOf(relationCode)).get();
@ -573,6 +574,8 @@ public class BusinessOrderService extends BaseJpaService<BusinessOrderDO,Busines
                }
            }
        }
        String historyOrder = businessOrderDO.getHistoryOrder()+","+businessOrderDO.getOrderNo();
        businessOrderDO.setHistoryOrder(historyOrder);
        if (businessOrderDO.getOrderNo()!=null&&businessOrderDO.getOrderNo().contains("HLWYYQD")){
            businessOrderDO.setOrderNo("HLWYYQD"+businessOrderDO.getOrderType()+System.currentTimeMillis()+(int)(Math.random()*900)+100);
        }else {

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/order/dao/BusinessOrderDao.java

@ -38,4 +38,7 @@ public interface BusinessOrderDao extends JpaRepository<BusinessOrderDO, Integer
    @Query("from BusinessOrderDO  w where w.status=0 and w.lastPayTime<=?1")
    List<BusinessOrderDO> selectByLastPayTime(Long lastPayTime);
    @Query("from BusinessOrderDO  w where w.status=0 ")
    List<BusinessOrderDO> selectByNoUpdateStatus();
}

+ 34 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/job/UpdatePayStatusJob.java

@ -0,0 +1,34 @@
package com.yihu.jw.job;
import com.yihu.jw.service.channel.PrescriptionStatusUpdateService;
import com.yihu.jw.service.channel.UpdatePayStatusService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Trigger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
/**
 * Created by Trick on 2019/10/15.
 */
public class UpdatePayStatusJob implements Job {
    private static final Logger logger = LoggerFactory.getLogger(UpdatePayStatusJob.class);
    @Autowired
    private UpdatePayStatusService updatePayStatusService;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        logger.info("START========updatePayStatus========");
        try {
            Trigger trigger =jobExecutionContext.getTrigger();
            System.out.println("执行时间为"+trigger.getNextFireTime());
            updatePayStatusService.updatePayStatus();
            logger.info("END========updatePayStatus========");
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("END===ERROE===PrescriptionOverdueJob,message:"+e.getMessage());
        }
    }
}

+ 35 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/UpdatePayStatusService.java

@ -0,0 +1,35 @@
package com.yihu.jw.service.channel;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.order.BusinessOrderService;
import com.yihu.jw.order.dao.BusinessOrderDao;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * 更新微信支付未回调的数据
 */
@Component
@Transactional
public class UpdatePayStatusService {
    private static Logger logger = LoggerFactory.getLogger(UpdatePayStatusService.class);
    @Autowired
    private BusinessOrderDao businessOrderDao;
    @Autowired
    private BusinessOrderService businessOrderService;
    public void updatePayStatus() throws Exception {
        List<BusinessOrderDO> businessOrderDOList = businessOrderDao.selectByNoUpdateStatus();
        System.out.println("未支付多少条====="+businessOrderDOList.size());
        for (BusinessOrderDO orderDO:businessOrderDOList){
            businessOrderService.tradeQuery(orderDO.getRelationCode(),"hop.trade.recharge");
        }
    }
}

+ 1 - 6
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/util/OverdueJob.java

@ -1,11 +1,7 @@
package com.yihu.jw.util;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO;
import com.yihu.jw.job.PrescriptionOverdueJob;
import com.yihu.jw.service.channel.PrescriptionStatusUpdateService;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -20,7 +16,6 @@ import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
@Lazy(false)
@Component

+ 20 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/web/quota/JobController.java

@ -99,6 +99,9 @@ public class JobController extends BaseController {
    @Autowired
    private BaseDiseaseHospitalService diseaseHospitalService;
    @Autowired
    private UpdatePayStatusService updatePayStatusService;
    @Autowired
    public JobController(JobService jobService, QuartzHelper quartzHelper) {
        this.jobService = jobService;
@ -215,6 +218,15 @@ public class JobController extends BaseController {
                        logger.info("prescription_overdue_job  job exist");
                    }
                    break;
                case "update_pay_status_job":
                    if (!quartzHelper.isExistJob("update_pay_status_job")) {
                        String trigger = SystemConf.getInstance().getSystemProperties().getProperty("update_pay_status_job");
                        quartzHelper.addJob(UpdatePayStatusJob.class, trigger, "update_pay_status_job", new HashMap<String, Object>());
                        logger.info("update_pay_status_job  job success");
                    } else {
                        logger.info("update_pay_status_job  job exist");
                    }
                    break;
                case "data_ykupload_job" :
                    //互联网医院 监管平台上报
                    if (!quartzHelper.isExistJob("data_ykupload_job")) {
@ -1081,4 +1093,12 @@ public class JobController extends BaseController {
        }
    }
    @RequestMapping(value = "/updatePayStatus", method = RequestMethod.GET)
    @ApiOperation("updatePayStatus")
    public String updatePayStatus() throws Exception {
        updatePayStatusService.updatePayStatus();
        return success("操作成功");
    }
}

+ 1 - 0
svr/svr-internet-hospital-job/src/main/resources/system.properties

@ -16,6 +16,7 @@ data_ykupload_job=0 0 0 * * ?
#\u6BCF\u95F4\u96941\u5206\u949F\u89E6\u53D1
unsettled_prescription_notice_job=0 */1 * * * ?
pay_status_notice_job=0 */1 * * * ?
update_pay_status_job=0 0 0/1 * * ? 
im_online_guidance_job=0 */1 * * * ?