编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

程序员来到头条号的第一天(今日头条程序员)

wxchong 2024-09-08 10:48:05 开源技术 7 ℃ 0 评论

来到头条号的第一天分享一下今天的经历

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);
}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表