| 
				
					 | 
			8 ماه پیش | |
|---|---|---|
| WxProgram | 10 ماه پیش | |
| bin | 1 سال پیش | |
| db | 10 ماه پیش | |
| doc | 1 سال پیش | |
| ruoyi-abuwx | 8 ماه پیش | |
| ruoyi-admin | 8 ماه پیش | |
| ruoyi-common | 1 سال پیش | |
| ruoyi-framework | 9 ماه پیش | |
| ruoyi-generator | 9 ماه پیش | |
| ruoyi-quartz | 1 سال پیش | |
| ruoyi-system | 10 ماه پیش | |
| ruoyi-ui | 9 ماه پیش | |
| sql | 1 سال پیش | |
| .gitignore | 1 سال پیش | |
| LICENSE | 1 سال پیش | |
| README.md | 1 سال پیش | |
| img.png | 1 سال پیش | |
| pom.xml | 10 ماه پیش | |
| ry.bat | 1 سال پیش | |
| ry.sh | 1 سال پیش | 
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png">
一直想做一款基于若依后台管理系统的微信小程序,最近比较闲了,所以想做个简单的东西。主要为了学习,走一遍整个过程,也是为像我这种小白提供些简单的学习内容。 这是一套前后端一起的脚手架,省去了好多需要写的东西,开箱即用 若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。

<!--hutool工具类-->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.0</version>
</dependency>
import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.abuwx.domain.AbucoderWxuser; import com.ruoyi.abuwx.service.IAbucoderWxuserService; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.http.HttpUtils; import com.ruoyi.common.utils.uuid.UUID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;
import java.util.HashMap; import java.util.Map;
@RestController @RequestMapping("/wxapi/") public class WxLoginController {
/**
 * 测试接口
 * @return
 */
@GetMapping("test")
public AjaxResult test(){
    return AjaxResult.success("小程序api调试成功!~");
}
@Autowired
private IAbucoderWxuserService iAbucoderWxuserService;
/**
 * 你自己的微信小程序APPID
 */
private final static String AppID = "你自己的appid";
/**
 * 你自己的微信APP密钥
 */
private final static String AppSecret = "你自己的密钥";
/**
 * 登录时获取的 code(微信官方提供的临时凭证)
 * @param object
 * @return
 */
@PostMapping("/wxlogin")
public AjaxResult wxLogin(@RequestBody JSONObject object){
    //微信官方提供的微信小程序登录授权时使用的URL地址
    String url  = "https://api.weixin.qq.com/sns/jscode2session";
    System.out.println(object);
    /**
     * 拼接需要的参数
     * appid = AppID 你自己的微信小程序APPID
     * js_code = AppSecret 你自己的微信APP密钥
     * grant_type=authorization_code = code 微信官方提供的临时凭证
     */
    String params = StrUtil.format("appid={}&secret={}&js_code={}&grant_type=authorization_code", AppID, AppSecret, object.get("code"));
    //开始发起网络请求,若依管理系统自带网络请求工具,直接使用即可
    String res = HttpUtils.sendGet(url,params);
    System.out.println("输出请求到的结果");
    System.out.println(res);
    JSONObject jsonObject = JSON.parseObject(res);
    String session_key = (String) jsonObject.get("session_key");
    String openid = (String) jsonObject.get("openid");
    if (StrUtil.isEmpty(openid)) {
        return AjaxResult.error("未获取到openid");
    }
    String token = UUID.randomUUID().toString();
    Map<String, Object> data = new HashMap<>();
    data.put("token", token);
    data.put("session_key", session_key);
    data.put("openid", openid);
    data.put("state",true);
    data.put("nickName",object.get("nickName"));
    data.put("avatarUrl",object.get("avatarUrl"));
    /**先通过openid来查询是否存在*/
    AbucoderWxuser abucoderWxuser = iAbucoderWxuserService.selectAbucoderWxuserOpenID(openid);
    if (abucoderWxuser == null){
        /**如果不存在就插入到我们的数据库里*/
        AbucoderWxuser  wxuser = new AbucoderWxuser();
        wxuser.setNickname(String.valueOf(object.get("nickName")));
        wxuser.setGender((Integer) object.get("gender"));
        wxuser.setAvatar(String.valueOf(object.get("avatarUrl")));
        wxuser.setOpenid(openid);
        wxuser.setCreateTime(DateUtils.getNowDate());
        wxuser.setCreateBy("Abu");
        iAbucoderWxuserService.insertAbucoderWxuser(wxuser);
    }else {
        /**如果存在就更新数据库里原有的数据*/
        abucoderWxuser.setNickname(String.valueOf(object.get("nickName")));
        abucoderWxuser.setGender((Integer) object.get("gender"));
        abucoderWxuser.setAvatar(String.valueOf(object.get("avatarUrl")));
        abucoderWxuser.setUpdateTime(DateUtils.getNowDate());
        abucoderWxuser.setUpdateBy("Abu");
        iAbucoderWxuserService.updateAbucoderWxuser(abucoderWxuser);
    }
    /**返回结果集到前段*/
    return AjaxResult.success(data);
}
}