网站首页 > 开源技术 正文
来到头条号的第一天分享一下今天的经历
1、实现小程序手机号解密
@AutoLog(value = "获取微信小程序session_key和openid并解密手机号")
@ApiOperation(value="获取微信小程序session_key和openid并解密手机号", notes="获取微信小程序session_key和openid并解密手机号")
@GetMapping(value = "/getSessionKey")
public Result<?> getSessionKey(@RequestParam("encryptedData")String encryptedData,
@RequestParam("iv")String iv,@RequestParam(name = "jsCode") String jsCode) throws IOException {
//请求参数
String params = "appid=" + appId + "&secret=" + secret + "&js_code=" + jsCode + "&grant_type=" + grantType;
//发送请求
String sr = HttpRequest.sendGet("https://api.weixin.qq.com/sns/jscode2session", params);
//解析相应内容(转换成json对象)
Gson gson = new Gson();
JsonObject json = gson.fromJson(sr, JsonObject.class);
//System.out.println(json);
// JSONObject json = JSONObject.fromObject(sr);
if (json.get("session_key") == null) {
return Result.error("解密失败,请刷新后重试");
}
//获取会话密钥(session_key)
String session_key = json.get("session_key").toString();
//用户的唯一标识(openid)
String openid = json.get("openid").toString();
byte[] resByte =
WechatDecryptDataUtil.decryptOfDiyIV(Base64.getDecoder().decode(encryptedData),
Base64.getDecoder().decode(session_key), Base64.getDecoder().decode(iv));
return Result.OK(resByte);
}
2、实现检测项目数据去重
queryWrapper.select("DISTINCT sys_check_countrystandard");
3、小程序检测标准接口实现
@AutoLog(value = "检测项目树表-获取子数据")
@ApiOperation(value="检测项目树表-获取子数据去重,不为NULL", notes="检测项目树表-获取子数据")
@GetMapping(value = "/childListNotNull")
// @PermissionData(pageComponent="modules/watertree/GyssProjectWatertreeList")
public Result<?> queryPageListNotNull(GyssProjectWatertree gyssProjectWatertree,HttpServletRequest req) {
QueryWrapper<GyssProjectWatertree> queryWrapper = QueryGenerator.initQueryWrapper(gyssProjectWatertree, req.getParameterMap());
queryWrapper.orderByAsc("project_sort");
queryWrapper.isNotNull("sys_check_countrystandard");
queryWrapper.select("DISTINCT sys_check_countrystandard");
List<GyssProjectWatertree> list = gyssProjectWatertreeService.list(queryWrapper);
IPage<GyssProjectWatertree> pageList = new Page<>(1, 10, list.size());
pageList.setRecords(list);
return Result.OK(pageList);
}
4、搜索历史功能实现
@AutoLog(value = "小程序搜索历史关键字-分页列表查询")
@ApiOperation(value="小程序搜索历史关键字-分页列表查询", notes="小程序搜索历史关键字-分页列表查询")
@GetMapping(value = "/list")
@PermissionData(pageComponent = "modules/keyword/SmallProgramKeywordList")
public Result<?> queryPageList(SmallProgramKeyword smallProgramKeyword,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<SmallProgramKeyword> queryWrapper = QueryGenerator.initQueryWrapper(smallProgramKeyword, req.getParameterMap());
Page<SmallProgramKeyword> page = new Page<SmallProgramKeyword>(pageNo, pageSize);
IPage<SmallProgramKeyword> pageList = smallProgramKeywordService.page(page, queryWrapper);
return Result.OK(pageList);
}
猜你喜欢
- 2024-09-08 Try catch 太烦人了?只需一步一次搞定 Exception
- 2024-09-08 vue多实体参数怎么传?(vue如何传参)
- 2024-09-08 Mybatis-Plus常用的查询方法——看这一篇就够了!「图文例子」
- 2024-09-08 你这代码写得真丑,满屏的try-catch,全局异常处理不会吗?下
- 2024-09-08 mybatis-plus 团队新作 mybatis-mate 轻松搞定企业级数据处理
- 2024-09-08 「Spring Cloud」新闻头条微服务项目:自媒体文章管理
- 2024-09-08 最快MyBatis-Plus入门使用(mybatis-plus-plus)
- 2024-09-08 再也不用写CURD代码了,Mybatis-plus帮你全搞定
- 2024-09-08 MyBatis-Plus快速入门(一)(mybatis-plus-plus)
- 2024-09-08 Mybatis-Plus 详解(二)(mybatisplus in)
你 发表评论:
欢迎- 07-10公司网站建站选择:人工建站和源码建站分析
- 07-10多用途游戏娱乐新闻网站HTML5模板
- 07-10站长教你搭建属于自己的网站(搭建网站的步骤)
- 07-10php宝塔搭建部署实战响应式塑料封条制品企业网站模板源码
- 07-10自适应响应式汽车配件类网站源码 html5高端大气汽车网站织梦模板
- 07-10网站标签怎么设置?(网站标签怎么设置比较好)
- 07-10PageAdmin企业网站制作中踩过的坑
- 07-10豆包给我输出的html在线象棋源码(有点简单)
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)