|
@@ -1,14 +1,30 @@
|
|
|
package com.ruoyi.web.controller.wx;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.ruoyi.common.constant.CacheConstants;
|
|
|
+import com.ruoyi.common.constant.Constants;
|
|
|
import com.ruoyi.common.core.controller.BaseController;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
+import com.ruoyi.common.core.domain.entity.SysDept;
|
|
|
+import com.ruoyi.common.core.domain.entity.SysUser;
|
|
|
+import com.ruoyi.common.core.domain.model.LoginUser;
|
|
|
+import com.ruoyi.common.enums.UserStatus;
|
|
|
+import com.ruoyi.common.exception.base.BaseException;
|
|
|
+import com.ruoyi.common.utils.ServletUtils;
|
|
|
+import com.ruoyi.common.utils.StringUtils;
|
|
|
+import com.ruoyi.common.utils.ip.IpUtils;
|
|
|
+import com.ruoyi.common.utils.uuid.IdUtils;
|
|
|
+import com.ruoyi.framework.web.service.SysLoginService;
|
|
|
import com.ruoyi.system.domain.wx.AppletLoginForm;
|
|
|
import com.ruoyi.system.domain.wx.AppletSessionDTO;
|
|
|
import com.ruoyi.system.domain.wx.WxPayOrderReqVo;
|
|
|
import com.ruoyi.system.domain.wx.WxPayRespVo;
|
|
|
import com.ruoyi.system.service.ISysPostService;
|
|
|
+import com.ruoyi.system.service.ISysUserService;
|
|
|
import com.ruoyi.system.service.IWxPayService;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
@@ -16,6 +32,9 @@ import utils.WxCodeSessionUtil;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
/**
|
|
|
* @Author: tjf
|
|
@@ -26,6 +45,12 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
@RequestMapping("/wx/pay")
|
|
|
public class WxPayController extends BaseController {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysLoginService loginService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ISysUserService userService;
|
|
|
+
|
|
|
@Resource
|
|
|
private IWxPayService wxPayService;
|
|
|
|
|
@@ -37,7 +62,7 @@ public class WxPayController extends BaseController {
|
|
|
|
|
|
@ApiOperation(value = "微信支付回调", notes = "微信支付回调")
|
|
|
@PostMapping("/payNotify")
|
|
|
- public AjaxResult payNotify(HttpServletRequest request){
|
|
|
+ public AjaxResult payNotify(HttpServletRequest request) {
|
|
|
//注意:回调接口需要暴露到公网上,且要放开token验证
|
|
|
wxPayService.payNotify(request);
|
|
|
return AjaxResult.success();
|
|
@@ -45,12 +70,25 @@ public class WxPayController extends BaseController {
|
|
|
|
|
|
/**
|
|
|
* 小程序登录
|
|
|
- * @param form
|
|
|
+ *
|
|
|
+ * @param form
|
|
|
* @return
|
|
|
*/
|
|
|
@PostMapping("/jsCode")
|
|
|
- public AjaxResult code2Session(@RequestBody AppletLoginForm form){
|
|
|
- AppletSessionDTO appletSessionDTO = WxCodeSessionUtil.jscode2Session(form);
|
|
|
- return AjaxResult.success(appletSessionDTO);
|
|
|
+ public AjaxResult code2Session(@RequestBody AppletLoginForm form) {
|
|
|
+ AjaxResult ajax = AjaxResult.success();
|
|
|
+ AppletSessionDTO dto = WxCodeSessionUtil.jscode2Session(form);
|
|
|
+ ajax.put(Constants.APPLETSESSIONDTO, dto);
|
|
|
+ String phoneNumber = dto.getPhoneNumber();
|
|
|
+ if (StringUtils.isBlank(phoneNumber)) {
|
|
|
+ throw new BaseException("对不起,未获取到手机号");
|
|
|
+ }
|
|
|
+ SysUser user = userService.getByPhone(phoneNumber);
|
|
|
+ if (user != null) {
|
|
|
+ // 生成令牌
|
|
|
+ String token = loginService.loginMiniPrograms(user.getUserName(), user.getPassword());
|
|
|
+ ajax.put(Constants.TOKEN, token);
|
|
|
+ }
|
|
|
+ return ajax;
|
|
|
}
|
|
|
}
|