From f66cd5340a8c9a5264c82549f25e4d88cf2d815a Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 27 五月 2024 15:54:18 +0800
Subject: [PATCH] Merge branch 'dev-mitao'
---
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 177 insertions(+), 1 deletions(-)
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java
index 21a995e..cc602ea 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java
@@ -1,10 +1,33 @@
package com.ruoyi.member.service.impl;
-import com.ruoyi.member.domain.pojo.Member;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.core.enums.GenderEnum;
+import com.ruoyi.common.core.exception.ServiceException;
+import org.apache.commons.io.IOUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.member.dto.MemberDTO;
+import com.ruoyi.system.api.domain.Member;
import com.ruoyi.member.mapper.MemberMapper;
import com.ruoyi.member.service.IMemberService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.http.HttpEntity;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.Map;
/**
* <p>
@@ -17,4 +40,157 @@
@Service
public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> implements IMemberService {
+
+ public static RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(5000).build();
+ // 配置您申请的KEY,在个人中心->我的数据,接口名称上方查看
+ public static final String APPKEY = "";
+ //明文查询地址
+ public static String query_url = "http://op.juhe.cn/idcard/query?key=" + APPKEY;
+
+
+ @Resource
+ private IMemberService iMemberService;
+ @Override
+ public Member loginThird(MemberDTO memberDTO) {
+ try {
+ if (memberDTO.getType() == 1) {
+ LambdaQueryWrapper<Member> wrapper= Wrappers.lambdaQuery();
+ wrapper.eq(Member::getZfbOpenid,memberDTO.getOpenid());
+ Member member=iMemberService.getOne(wrapper);
+ if (member==null){
+ Member m=new Member();
+ m.setZfbOpenid(memberDTO.getOpenid());
+ m.setNickname("未知");
+ m.setLevel(0);
+ m.setAvatar("");
+ iMemberService.save(m);
+ return m;
+ }else {
+
+ return member;
+ }
+
+ }
+ if (memberDTO.getType() == 2) {
+ LambdaQueryWrapper<Member> wrapper= Wrappers.lambdaQuery();
+ wrapper.eq(Member::getWxOpenid,memberDTO.getOpenid());
+ Member member=iMemberService.getOne(wrapper);
+ if (member==null){
+ Member m=new Member();
+ m.setZfbOpenid(memberDTO.getOpenid());
+ m.setNickname("未知");
+ m.setLevel(0);
+ m.setAvatar("");
+ iMemberService.save(m);
+ return m;
+ }else {
+
+ return member;
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+
+ }
+ return null;
+ }
+
+ @Override
+ public Member getMembeid(MemberDTO memberDTO) {
+ return iMemberService.getById(memberDTO.getMemberid());
+ }
+
+ @Override
+ public void updateMembeid(MemberDTO memberDTO) {
+ Member member= iMemberService.getById(memberDTO.getMemberid());
+ if (memberDTO.getAvatar()!=null){
+ member.setAvatar(memberDTO.getAvatar());
+ }
+ if (memberDTO.getNickname()!=null){
+ member.setNickname(memberDTO.getNickname());
+ }
+ iMemberService.updateById(member);
+
+ }
+
+ @Override
+ public void authentificationMembe(MemberDTO memberDTO) {
+ Member member= iMemberService.getById(memberDTO.getMemberid());
+ member.setPhone(memberDTO.getPhone());
+ member.setIdNumber(memberDTO.getIdNumber());
+ member.setRealName(memberDTO.getRealName());
+
+ String realname = "";// 姓名
+ String idcard = "";// 身份证
+ int type = 1;// 普通版,不需要加密
+ Map<String, Object> params = new HashMap<>();
+ params.put("realname", realname);
+ params.put("idcard", idcard);
+
+ CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = null;
+ String result = null;
+ String url = query_url;
+ try {
+ url = new StringBuffer(url).append("&").append(urlencode(params)).toString();
+ HttpGet httpget = new HttpGet(url);
+ httpget.setConfig(config);
+ response = httpClient.execute(httpget);
+ HttpEntity resEntity = response.getEntity();
+ if (resEntity != null) {
+ result = IOUtils.toString(resEntity.getContent(), "UTF-8");
+ }
+ EntityUtils.consume(resEntity);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ response.close();
+ httpClient.close();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ JSONObject jsonObject= JSON.parseObject(result);
+ String object= jsonObject.get("result").toString();
+ JSONObject jsonObject1= JSON.parseObject(object);
+ if (Integer.valueOf(jsonObject1.get("res").toString())==2){
+ throw new ServiceException("实名认证失败");
+ }
+
+ String sex=getGender(idcard);
+ if (sex.equals("女")){
+ member.setGender(GenderEnum.FEMALE);
+ }
+ if (sex.equals("男")){
+ member.setGender(GenderEnum.MALE);
+ }
+
+ iMemberService.updateById(member);
+ }
+
+ public static String getGender(String idNumber) {
+ int genderNum = Integer.parseInt(idNumber.substring(16, 17));
+ return genderNum % 2 == 0 ? "女" : "男";
+ }
+
+
+ public static String urlencode(Map<String, ?> data) {
+ StringBuilder sb = new StringBuilder();
+ for (Map.Entry<String, ?> i : data.entrySet()) {
+ try {
+ sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue() + "", "UTF-8")).append("&");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ }
+ String result = sb.toString();
+ result = result.substring(0, result.lastIndexOf("&"));
+ return result;
+ }
+
+
}
+
+
+
--
Gitblit v1.7.1