package com.fastbee.data.controller.wechat; import com.fastbee.common.core.domain.AjaxResult; import com.fastbee.common.exception.ServiceException; import com.fastbee.common.utils.StringUtils; import com.fastbee.common.wechat.WeChatLoginBody; import com.fastbee.common.wechat.WeChatLoginResult; import com.fastbee.iot.wechat.WeChatService; import com.fastbee.iot.wechat.vo.WxBindReqVO; import com.fastbee.iot.wechat.vo.WxCancelBindReqVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 微信相关控制器 * @author fastb * @date 2023-07-31 11:29 */ @Api(tags = "微信相关模块") @RestController @RequestMapping("/wechat") public class WeChatController { @Resource private WeChatService weChatService; /** * 移动应用微信登录 * @param weChatLoginBody 微信登录参数 * @return 登录结果 */ @ApiOperation("移动应用微信登录") @PostMapping("/mobileLogin") public AjaxResult mobileLogin(@RequestBody WeChatLoginBody weChatLoginBody) { return AjaxResult.success(weChatService.mobileLogin(weChatLoginBody)); } /** * 小程序微信登录 * @param weChatLoginBody 微信登录参数 * @return 登录结果 */ @ApiOperation("小程序微信登录") @PostMapping("/miniLogin") public AjaxResult miniLogin(@RequestBody WeChatLoginBody weChatLoginBody) { WeChatLoginResult weChatLoginResult = weChatService.miniLogin(weChatLoginBody); return AjaxResult.success(weChatLoginResult); } /** * 小程序、移动应用微信绑定 * @param wxBindReqVO 微信绑定传参类型 * @return 结果 */ @ApiOperation("小程序、移动应用微信绑定") @PostMapping("/bind") public AjaxResult bind(@RequestBody WxBindReqVO wxBindReqVO) { if (StringUtils.isEmpty(wxBindReqVO.getSourceClient())) { throw new ServiceException("请传入验证方式"); } return weChatService.bind(wxBindReqVO); } /** * 取消所有微信绑定 * @param wxCancelBindReqVO 微信解绑传参类型 * @return 结果 */ @ApiOperation("取消所有微信绑定") @PostMapping("/cancelBind") public AjaxResult cancelBind(@RequestBody WxCancelBindReqVO wxCancelBindReqVO) { if (wxCancelBindReqVO.getVerifyType() == null) { throw new ServiceException("请传入验证方式"); } return weChatService.cancelBind(wxCancelBindReqVO); } /** * 网站应用获取微信绑定二维码信息 * @return 二维码信息 */ @ApiOperation("网站应用获取微信绑定二维码信息") @GetMapping("/getWxBindQr") public AjaxResult getWxBindQr(HttpServletRequest httpServletRequest) { // 返回二维码信息 return weChatService.getWxBindQr(httpServletRequest); } /** * 网站应用内微信扫码绑定回调接口 * @param code 用户凭证 * @param state 时间戳 * @param httpServletRequest 请求信息 * @param httpServletResponse 响应信息 */ @ApiOperation("网站应用内微信扫码绑定回调地址") @GetMapping("/wxBind/callback") public void wxBindCallback(String code, String state, String wxBindId, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { //回调接口 httpServletResponse.sendRedirect(weChatService.wxBindCallback(code, state, wxBindId, httpServletRequest, httpServletResponse)); } /** * 网站应用获取微信绑定结果信息 * @param wxBindMsgId 微信绑定结果信息id * @return msg */ @ApiOperation("网站应用获取微信绑定结果信息") @GetMapping("/getWxBindMsg") public AjaxResult getWxBindMsg(String wxBindMsgId) { if (StringUtils.isEmpty(wxBindMsgId)) { return AjaxResult.error("请传入wxBindMsgId"); } // 返回二维码信息 return weChatService.getWxBindMsg(wxBindMsgId); } }