liubing 3 years ago
parent
commit
87393d443b

+ 4 - 1
common/common-entity/sql记录

@ -1081,4 +1081,7 @@ CREATE TABLE `base_wx_pay_http_log` (
-- 2021-06-30
alter table base.base_door_coach_order add column pay_status TINYINT(2) DEFAULT null COMMENT '0待扣费 1已支付 2已退款';
alter table base.base_life_care_order add column pay_status TINYINT(2) DEFAULT null COMMENT '0待扣费 1已支付 2已退款';
alter table base.base_life_care_order add column pay_status TINYINT(2) DEFAULT null COMMENT '0待扣费 1已支付 2已退款';
-- 2021-07-01 lb
alter table base.base_business_order_refund add column refuse_desc varchar(255) DEFAULT null COMMENT '拒绝退款说明';

+ 10 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/order/BusinessOrderRefundDO.java

@ -27,9 +27,10 @@ public class BusinessOrderRefundDO extends IntegerIdentityEntity {
    private String appId;//公众号id
    private String mchId;//商户号
    private String refundDesc;//退款原因
    private Integer status;//状态1待退款2已退款 3同意退款
    private Integer status;//状态1待退款2已退款 3同意退款 4拒绝退款
    private Date refundTime;//退款时间
    private String enclosure;//附件
    private String refuseDesc;//拒绝退款说明
    private Date createTime;
    private String createUser;
    private String createUserName;
@ -203,4 +204,12 @@ public class BusinessOrderRefundDO extends IntegerIdentityEntity {
    public void setEnclosure(String enclosure) {
        this.enclosure = enclosure;
    }
    public String getRefuseDesc() {
        return refuseDesc;
    }
    public void setRefuseDesc(String refuseDesc) {
        this.refuseDesc = refuseDesc;
    }
}

+ 117 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/order/PayOrderEndpoint.java

@ -0,0 +1,117 @@
package com.yihu.jw.base.endpoint.order;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.service.order.PayService;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import oracle.jdbc.proxy.annotation.Post;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * Created by Bing on 2021/7/1.
 */
@RestController
@Api(description = "支付订单管理")
@RequestMapping(value = "payManage")
public class PayOrderEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private PayService payService;
    @GetMapping(value = "getOrderList")
    @ApiOperation("查询订单列表")
    public PageEnvelop getOrderList(
            @ApiParam(name="name",value = "姓名")
            @RequestParam(value = "name",required = false)String name,
            @ApiParam(name="orderNo",value = "订单号")
            @RequestParam(value = "orderNo",required = false)String orderNo,
            @ApiParam(name="status",value = "订单状态")
            @RequestParam(value = "status",required = false)String status,
            @ApiParam(name="payType",value = "支付方式支付类型1微信2支付宝3易联众支付")
            @RequestParam(value = "payType",required = false)String payType,
            @ApiParam(name="orderType",value = "订单类型")
            @RequestParam(value = "orderType",required = false)Integer orderType,
            @ApiParam(name="orderCategory",value = "订单分类")
            @RequestParam(value = "orderCategory",required = false)Integer orderCategory,
            @ApiParam(name="page")
            @RequestParam(value = "page")Integer page,
            @ApiParam(name="pageSize")
            @RequestParam(value = "pageSize")Integer pageSize
    ){
        try {
            return payService.getOrderList(name, orderNo, status,payType, orderType, orderCategory, page, pageSize);
        }catch (Exception e){
            return failedPageEnvelopException2(e);
        }
    }
    @GetMapping(value = "getRefundOrderList")
    @ApiOperation("查询退款订单列表")
    public PageEnvelop getRefundOrderList(
            @ApiParam(name="name",value = "姓名")
            @RequestParam(value = "name",required = false)String name,
            @ApiParam(name="orderNo",value = "订单号")
            @RequestParam(value = "orderNo",required = false)String orderNo,
            @ApiParam(name="status",value = "订单状态")
            @RequestParam(value = "status",required = false)String status,
            @ApiParam(name="payType",value = "支付方式支付类型1微信2支付宝3易联众支付")
            @RequestParam(value = "payType",required = false)String payType,
            @ApiParam(name="orderType",value = "订单类型")
            @RequestParam(value = "orderType",required = false)Integer orderType,
            @ApiParam(name="orderCategory",value = "订单分类")
            @RequestParam(value = "orderCategory",required = false)Integer orderCategory,
            @ApiParam(name="page")
            @RequestParam(value = "page")Integer page,
            @ApiParam(name="pageSize")
            @RequestParam(value = "pageSize")Integer pageSize
    ){
        try {
            return payService.getRefundOrderList(name, orderNo, status, payType, orderType, orderCategory, page, pageSize);
        }catch (Exception e){
            return failedPageEnvelopException2(e);
        }
    }
    @PostMapping(value = "refuseRefund")
    @ApiOperation("拒绝退款")
    public ObjEnvelop refuseRefund(
            @ApiParam(name = "orderNo",required = true)
            @RequestParam(value = "orderNo")String orderNo,
            @ApiParam(name="refuseDesc")
            @RequestParam(value = "refuseDesc")String refuseDesc
    ){
        try {
            JSONObject result =  payService.refuseRefund(orderNo,refuseDesc);
            if (result.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                return ObjEnvelop.getError( result.getString(ResponseContant.resultMsg));
            }
            return ObjEnvelop.getSuccess("操作成功",result.get(ResponseContant.resultMsg));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @PostMapping(value = "agreeRefund")
    @ApiOperation("同意退款")
    public ObjEnvelop agreeRefund(
            @ApiParam(name = "orderNo",required = true)
            @RequestParam(value = "orderNo")String orderNo
    ){
        try {
            JSONObject result =  payService.agreeRefund(orderNo);
            if (result.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                return ObjEnvelop.getError( result.getString(ResponseContant.resultMsg));
            }
            return ObjEnvelop.getSuccess("操作成功",result.get(ResponseContant.resultMsg));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
}

+ 189 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/order/PayService.java

@ -0,0 +1,189 @@
package com.yihu.jw.base.service.order;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.entity.order.BusinessOrderRefundDO;
import com.yihu.jw.order.dao.BusinessOrderDao;
import com.yihu.jw.order.dao.BusinessOrderRefundDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.PageEnvelop;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * Created by Bing on 2021/7/1.
 */
@Service
public class PayService {
    private Logger log = LoggerFactory.getLogger(PayService.class);
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private BusinessOrderDao businessOrderDao;
    @Autowired
    private BusinessOrderRefundDao businessOrderRefundDao;
    /**
     * 订单列表
     * @param name
     * @param orderNo
     * @param status
     * @param payType
     * @param orderType
     * @param orderCategory
     * @param page
     * @param pageSize
     * @return
     */
    public PageEnvelop getOrderList(String name,String orderNo,String status,String payType,Integer orderType,Integer orderCategory,
                                    Integer page,Integer pageSize){
        page = page>0?page-1:0;
        String sql = " select *,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') create_time from base_business_order_pay where 1=1 ";
        String sqlCount = "select count(id) from base_business_order_pay where 1=1 ";
        String fliter="";
        if (StringUtils.isNotBlank(name)){
            fliter += " and patient_name like '%"+name+"%' ";
        }
        if (StringUtils.isNotBlank(orderNo)){
            fliter += " and order_no = '"+orderNo+"' ";
        }
        if (StringUtils.isNotBlank(status)){
            fliter += " and status = "+status;
        }
        if (StringUtils.isNotBlank(payType)){
            fliter += " and pay_type = "+payType;
        }
        if (orderType != null){
            fliter +=" and order_type = "+orderType;
        }
        if (orderCategory != null){
            fliter +=" and order_category = "+orderCategory;
        }
        Long count = jdbcTemplate.queryForObject(sqlCount+fliter,Long.class);
        fliter += " Order by create_time desc limit "+page*pageSize+","+pageSize;
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql+fliter);
        return PageEnvelop.getSuccessListWithPage("查询成功",list,page,pageSize,count);
    }
    /**
     * 售后订单列表
     * @param name
     * @param orderNo
     * @param status
     * @param payType
     * @param orderType
     * @param orderCategory
     * @param page
     * @param pageSize
     * @return
     */
    public PageEnvelop getRefundOrderList(String name,String orderNo,String status,String payType,Integer orderType,Integer orderCategory,
                                    Integer page,Integer pageSize){
        page = page>0?page-1:0;
        String sql = " select pay.patient,pay.patient_name,pay.order_no,pay.order_type,pay.order_category,pay.relation_code, " +
                " pay.relation_name,pay.description,pay.pay_type,pay.pay_price,pay.yk_order_id,DATE_FORMAT(re.create_time,'%Y-%m-%d %H:%i:%S') create_time, " +
                " re.enclosure,re.refund_desc,re.`status` from base_business_order_pay pay inner JOIN base_business_order_refund re on  " +
                " pay.order_no = re.order_no where pay.status>=3  ";
        String sqlCount = "select count(re.id) from base_business_order_pay pay inner JOIN " +
                " base_business_order_refund re on pay.order_no = re.order_no where pay.status>=3 ";
        String fliter="";
        if (StringUtils.isNotBlank(name)){
            fliter += " and pay.patient_name like '%"+name+"%' ";
        }
        if (StringUtils.isNotBlank(orderNo)){
            fliter += " and pay.order_no = '"+orderNo+"' ";
        }
        if (StringUtils.isNotBlank(status)){
            fliter += " and pay.status = "+status;
        }
        if (StringUtils.isNotBlank(payType)){
            fliter += " and pay.pay_type = "+payType;
        }
        if (orderType != null){
            fliter +=" and pay.order_type = "+orderType;
        }
        if (orderCategory != null){
            fliter +=" and pay.order_category = "+orderCategory;
        }
        Long count = jdbcTemplate.queryForObject(sqlCount+fliter,Long.class);
        fliter += " Order by create_time desc limit "+page*pageSize+","+pageSize;
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql+fliter);
        return PageEnvelop.getSuccessListWithPage("查询成功",list,page,pageSize,count);
    }
    /**
     * 拒绝退款
     * @param orderNo
     * @param refuseDesc
     * @return
     */
    public JSONObject refuseRefund(String orderNo,String refuseDesc){
        JSONObject result = new JSONObject();
        BusinessOrderDO businessOrderDO = businessOrderDao.selectByOrderNo(orderNo);
        if ( null== businessOrderDO){
             result.put(ResponseContant.resultFlag, ResponseContant.fail);
             result.put(ResponseContant.resultMsg, "订单不存在");
            return result;
        }
        if ( 3 != businessOrderDO.getStatus()){
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg, "订单未申请退款或已退款,无法操作");
            return result;
        }
        BusinessOrderRefundDO businessOrderRefundDO = businessOrderRefundDao.selectByOrderNo(orderNo);
        if (null == businessOrderRefundDO){
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg, "订单不存在");
            return result;
        }
        businessOrderDO.setStatus(4);
        businessOrderRefundDO.setStatus(4);
        businessOrderRefundDO.setRefuseDesc(refuseDesc);
        businessOrderDao.save(businessOrderDO);
        businessOrderRefundDao.save(businessOrderRefundDO);
        result.put(ResponseContant.resultFlag, ResponseContant.fail);
        result.put(ResponseContant.resultMsg, "success");
        return result;
    }
    public JSONObject agreeRefund(String orderNo){
        JSONObject result = new JSONObject();
        BusinessOrderDO businessOrderDO = businessOrderDao.selectByOrderNo(orderNo);
        if ( null== businessOrderDO){
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg, "订单不存在");
            return result;
        }
        if ( 3 != businessOrderDO.getStatus()){
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg, "订单未申请退款或已退款,无法操作");
            return result;
        }
        BusinessOrderRefundDO businessOrderRefundDO = businessOrderRefundDao.selectByOrderNo(orderNo);
        if (null == businessOrderRefundDO){
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg, "订单不存在");
            return result;
        }
        businessOrderDO.setStatus(4);
        businessOrderRefundDO.setStatus(3);
        //退款流程
        return result;
    }
}

+ 21 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/third/platForm/PatientInfoPlatFormEndpoint.java

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.care.endpoint.BaseController;
import com.yihu.jw.care.service.assistance.EmergencyAssistanceService;
import com.yihu.jw.care.service.common.DictService;
import com.yihu.jw.care.service.doorCoach.DoctorDoorCoachOrderService;
import com.yihu.jw.care.service.doorCoach.PatientDoorCoachOrderService;
import com.yihu.jw.care.service.lifeCare.LifeCareOrderService;
@ -14,6 +15,7 @@ import com.yihu.jw.entity.care.doorCoach.BaseDoorCoachOrderDO;
import com.yihu.jw.entity.care.lifeCare.LifeCareOrderDO;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
@ -54,6 +56,8 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
    private EmergencyAssistanceService assistanceService;
    @Autowired
    private BaseServiceNewsService baseServiceNewsService;
    @Autowired
    private DictService dictService;
    private BaseController baseController = new BaseController();
@ -253,5 +257,22 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
        }
    }
    @ApiOperation("查询字典")
    @GetMapping(value= "findDict")
    public MixEnvelop findDict(@ApiParam(name = "name", value = "name", required = false)
                               @RequestParam(value = "name", required = false)String name,
                               @ApiParam(name = "modelName", value = "modelName", required = false)
                               @RequestParam(value = "modelName", required = false)String modelName,
                               @ApiParam(name = "code", value = "code", required = false)
                               @RequestParam(value = "code", required = false)String code,
                               @ApiParam(name = "value", value = "value", required = false)
                               @RequestParam(value = "value", required = false)String value,
                               @ApiParam(name = "page", value = "page", required = false)
                               @RequestParam(value = "page", required = false) Integer page,
                               @ApiParam(name = "pageSize", value = "pageSize", required = false)
                               @RequestParam(value = "pageSize", required = false)Integer pageSize){
        return dictService.findDictsByNameCode(modelName,name,code,value,page,pageSize);
    }
}

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/pay/PayService.java

@ -484,7 +484,7 @@ public class PayService {
                break;
            case "3":
                //desc = "上门辅导";
               // doorCoachOrderService.payOrderAfter(orderDO.getRelationCode());
//                doorCoachOrderService.payOrderAfter(orderDO.getRelationCode());
                break;
            case "4":
                //desc = "生活照料服务";