package com.nova.sankuai.controller.v1; import com.nova.sankuai.domain.api.weiyaquanyi.WeiyaOrderNotifyDTO; import com.nova.sankuai.domain.vo.vipcard.VipCardVo; import com.nova.sankuai.infra.utils.ResultJson; import com.nova.sankuai.security.UserDetail; import com.nova.sankuai.service.IVipCardOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.Arrays; import java.util.List; import java.util.Map; /** * @author weikangdi * @create 2021/12/22 */ @Api(tags = "会员服务") @Slf4j @RestController @RequestMapping(value = "/api/v1/vipCardOrder") @AllArgsConstructor public class VipCardOrderController { private final IVipCardOrderService vipCardOrderService; @PostMapping(value = "/notifyOrder") @ApiOperation(value = "烈熊购买会员回调接口") public ResultJson notifyOrder(HttpServletRequest request) { Map parameterMap = request.getParameterMap(); vipCardOrderService.notifyOrder(parameterMap); return ResultJson.success(); } @PostMapping(value = "/weiyaOrderNotify") @ApiOperation(value = "纬雅权益支付结果回调通知") public ResultJson weiyaOrderNotify(@RequestBody WeiyaOrderNotifyDTO nofityDTO) { vipCardOrderService.weiyaOrderNotify(nofityDTO); return ResultJson.success(); } @PostMapping(value = "/alipayNotifyOrder") @ApiOperation(value = "支付宝购买会员回调接口") public String alipayNotifyOrder(HttpServletRequest request) { log.info("支付宝回调: req={}", request); Map parameterMap = request.getParameterMap(); vipCardOrderService.alipayNotifyOrder(parameterMap); log.info("支付宝回调响应:{}", request); // 返回给支付宝平台,必须返回该字符串 return "success"; } @PostMapping(value = "/alipayNotifyOrderTest") @ApiOperation(value = "支付宝购买会员回调接口 - 测试") public String alipayNotifyOrderTest(HttpServletRequest request) { Map parameterMap = request.getParameterMap(); parameterMap.forEach((k, v) -> log.info(">> alipayNotifyOrderTestRequestParams {} = {}", k, Arrays.toString(v))); // 返回给支付宝平台,必须返回该字符串 return "success"; } @RequestMapping(value = "/notifyByYinSheng", method = {RequestMethod.POST, RequestMethod.GET}) public String notifyByYinSheng(@RequestParam Map params) { return vipCardOrderService.notifyByYinSheng(params); } @GetMapping(value = "/getVipCardList") @ApiOperation(value = "会员卡列表查询接口") @PreAuthorize("hasAuthority('channelInfo.editMemberDefault')") public ResultJson> getVipCardList(String appId, @AuthenticationPrincipal UserDetail userDetail) { List result = vipCardOrderService.getVipCardList(appId, userDetail.getPhone()); return ResultJson.ok(result); } }