package com.ydtech.modules.admin.controller; import com.alipay.api.AlipayApiException; import com.ydtech.core.page.HttpResult; import com.ydtech.exception.SystemException; import com.ydtech.modules.admin.components.UnionPayRequestApiComponent; import com.ydtech.modules.admin.model.SysUser; import com.ydtech.modules.admin.model.vo.*; import com.ydtech.modules.admin.service.AlipayService; import com.ydtech.modules.admin.service.SysUserService; import com.ydtech.modules.admin.service.WechatService; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.protocol.utils.AssertionUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @Api(tags = "支付宝业务") @Slf4j @RestController @RequestMapping("/alipay") @RequiredArgsConstructor public class AlipayController extends BaseController { private final AlipayService alipayService; private final SysUserService sysUserService; @PostMapping("/login") @ApiOperation(value = "登录") public HttpResult login(@RequestBody AlipayBindVo alipayBindVo) { try { return alipayService.login(alipayBindVo); } catch (AlipayApiException e) { log.info(e.getMessage()); throw new SystemException("支付宝授权失败"); } } @PostMapping("/bind") @ApiOperation(value = "工号绑定支付宝") HttpResult bind(@RequestBody AlipayBindVo alipayBindVo) throws AlipayApiException { try { String userId = getUserId(); return alipayService.bind(alipayBindVo, userId); } catch (AlipayApiException e) { throw new SystemException("支付宝授权失败"); } } @ApiOperation(value = "是否绑定支付宝") @GetMapping(value = "/isBindAlipay") public HttpResult isBindAlipay() { SysUser sysUser = sysUserService.getById(getUserId()); String alipayId = sysUser.getAlipay(); AssertionUtils.isStringEmpty(alipayId, "未绑定支付宝"); return HttpResult.ok(); } @Autowired private UnionPayRequestApiComponent unionPayRequestApiComponent; @GetMapping(value = "/test") public HttpResult test() { unionPayRequestApiComponent.invokeToken(); return HttpResult.ok(); } }