package com.fs.app.controller.course;


import com.fs.common.core.controller.BaseController;
import com.fs.common.core.domain.R;
import com.fs.course.service.IFsCourseRedPacketLogService;
import com.fs.course.service.IFsUserCourseOrderService;
import com.fs.course.service.IFsUserVipOrderService;
import com.fs.his.param.WxSendRedPacketParam;
import com.fs.his.service.IFsInquiryOrderService;
import com.fs.his.service.IFsPackageOrderService;
import com.fs.his.service.IFsStoreOrderService;
import com.fs.his.service.IFsStorePaymentService;
import com.fs.sop.service.ISopUserLogsInfoService;
import com.fs.system.service.ISysConfigService;
import com.github.binarywang.wxpay.service.WxPayService;
import io.swagger.annotations.Api;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Api("课程转账")
@RestController
@RequestMapping("/app/wxpay")
public class CourseTransferController {
    protected final Logger logger = LoggerFactory.getLogger(BaseController.class);

    @Autowired
    private IFsStorePaymentService  paymentService;

    @Autowired
    private ISopUserLogsInfoService iSopUserLogsInfoService;

    @PostMapping("/sendRedPacket")
    public R sendRedPacket(@RequestBody WxSendRedPacketParam param){
       return paymentService.sendRedPacketTest(param);
    }

    @PostMapping( "/TransferNotify")
    public String TransferNotify(@RequestBody String notifyData,HttpServletRequest request, HttpServletResponse response) throws Exception {
        return paymentService.transferNotify(notifyData,request);
    }

    @PostMapping( "/v3TransferNotify")
    public String v3TransferNotify(@RequestBody String notifyData,HttpServletRequest request, HttpServletResponse response) throws Exception {
        return paymentService.v3TransferNotify(notifyData,request);
    }

    @GetMapping("/test")
    public void test(){
        iSopUserLogsInfoService.updateSopUserInfoByExternalId(1L,123456L);
    }


    /**
     * 分公司配置回调地址
     * @param companyId
     * @param notifyData
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @PostMapping( "/transferNotifyWithCompanyId/{companyId}")
    public String transferNotifyWithCompanyId(@PathVariable("companyId") Long companyId,@RequestBody String notifyData,HttpServletRequest request, HttpServletResponse response) throws Exception {

        return paymentService.TransferNotifyWithCompanyId(companyId,notifyData,request);
    }

}
