From 7b005ca364613c9738dbc66f3e4fe3fb7bec043d Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期三, 17 五月 2023 17:02:30 +0800
Subject: [PATCH] demo补完

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java |  216 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 149 insertions(+), 67 deletions(-)

diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
index 13f5a73..e704f1e 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -2,8 +2,9 @@
 
 import cn.binarywang.wx.miniapp.api.WxMaService;
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
-import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.R;
@@ -11,10 +12,7 @@
 import com.ruoyi.common.core.utils.bean.BeanUtils;
 import com.ruoyi.common.core.utils.uuid.IdUtils;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.member.domain.dto.AppUserAuthorizeDto;
-import com.ruoyi.member.domain.dto.MerCashMemberPageDto;
-import com.ruoyi.member.domain.dto.MerMemberPageDto;
-import com.ruoyi.member.domain.dto.MerMemberTagEditDto;
+import com.ruoyi.member.domain.dto.*;
 import com.ruoyi.member.domain.pojo.member.MemberNurse;
 import com.ruoyi.member.domain.vo.*;
 import com.ruoyi.member.mapper.member.MemberMapper;
@@ -34,17 +32,12 @@
 import com.ruoyi.system.api.domain.poji.shop.Shop;
 import com.ruoyi.system.api.domain.poji.sys.SysUser;
 import com.ruoyi.system.api.domain.vo.AppOrderTotalVo;
-import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo;
 import com.ruoyi.system.api.model.AppMiniLoginDto;
 import com.ruoyi.system.api.model.AppMiniLoginVo;
-import lombok.extern.log4j.Log4j;
 import lombok.extern.log4j.Log4j2;
-import lombok.val;
 import com.ruoyi.common.core.utils.StringUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
 import org.apache.http.util.EntityUtils;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
@@ -191,66 +184,65 @@
     public AppUserAuthorizeVo getAppUserAuthorize(AppUserAuthorizeDto appUserAuthorizeDto){
         Member member = this.getById(appUserAuthorizeDto.getUserId());
         AppUserAuthorizeVo appUserAuthorizeVo = new AppUserAuthorizeVo();
-        //获取code接口在redis里存放的sessionkey用于解密
-        String sessionkey = stringRedisTemplate.opsForValue().get(SecurityConstant.SESSION_KEY+ member.getMiniOpenid());
-        if(StringUtils.isBlank(sessionkey)){
-            throw new ServiceException(AppErrorConstant.USER_NOT_LOGIN);
-        }
         String mobile = null;
-        try {
-            //解密微信加密用户信息和手机号
-            /*WxMaPhoneNumberInfo wxPhoneInfo;
-            if(StringUtils.isNotBlank(appUserAuthorizeDto.getPhoneEncryptedData())&&StringUtils.isNotBlank(appUserAuthorizeDto.getPhoneIv())){
-                wxPhoneInfo = wxMaService.getUserService().getPhoneNoInfo(sessionkey, appUserAuthorizeDto.getPhoneEncryptedData(), appUserAuthorizeDto.getPhoneIv());
-            }else{
-                throw new ServiceException(AppErrorConstant.AUTHORIZE_MISS);
+        if(StringUtils.isBlank(member.getMobile())){
+            //获取code接口在redis里存放的sessionkey用于解密
+            String sessionkey = stringRedisTemplate.opsForValue().get(SecurityConstant.SESSION_KEY+ member.getMiniOpenid());
+            if(StringUtils.isBlank(sessionkey)){
+                throw new ServiceException(AppErrorConstant.USER_NOT_LOGIN);
             }
-            if(StringUtils.isBlank(wxPhoneInfo.getPhoneNumber())){
-                throw new ServiceException(AppErrorConstant.AUTHORIZE_FAILED);
-            }
-            mobile = wxPhoneInfo.getPhoneNumber();*/
-            String accessToken = stringRedisTemplate.opsForValue().get("wx_access_token");
-            if (StringUtils.isBlank(accessToken)) {
-                String responseAccessToken = getAccessTokenByWX();
-                JSONObject jsonAccessToken = JSONObject.parseObject(responseAccessToken);
-                accessToken = jsonAccessToken.getString("access_token");
-                String errmsg = jsonAccessToken.getString("errmsg");
-                Long expiresIn = jsonAccessToken.getLong("expires_in");
+            try {
+                String accessToken = stringRedisTemplate.opsForValue().get("wx_access_token");
                 if (StringUtils.isBlank(accessToken)) {
-                    throw new ServiceException(errmsg);
-                } else {
-                    expiresIn = expiresIn - 100;
-                    stringRedisTemplate.opsForValue().set("wx_access_token", accessToken, expiresIn.intValue(), TimeUnit.SECONDS);
+                    String responseAccessToken = getAccessTokenByWX();
+                    JSONObject jsonAccessToken = JSONObject.parseObject(responseAccessToken);
+                    accessToken = jsonAccessToken.getString("access_token");
+                    String errmsg = jsonAccessToken.getString("errmsg");
+                    Long expiresIn = jsonAccessToken.getLong("expires_in");
+                    if (StringUtils.isBlank(accessToken)) {
+                        throw new ServiceException(errmsg);
+                    } else {
+                        expiresIn = expiresIn - 100;
+                        stringRedisTemplate.opsForValue().set("wx_access_token", accessToken, expiresIn.intValue(), TimeUnit.SECONDS);
+                    }
                 }
+                String responseUserPhoneNumber = getMobileByWX(accessToken, appUserAuthorizeDto.getMobileCode());
+                JSONObject jsonUserPhoneNumber = JSONObject.parseObject(responseUserPhoneNumber);
+                String errcode = jsonUserPhoneNumber.getString("errcode");
+                String errmsg = jsonUserPhoneNumber.getString("errmsg");
+                if (!errcode.equals("0")) {
+                    throw new ServiceException(errmsg);
+                }
+                String phoneInfo = jsonUserPhoneNumber.getString("phone_info");
+                JSONObject jsonUserPhoneInfo = JSONObject.parseObject(phoneInfo);
+                mobile = jsonUserPhoneInfo.getString("purePhoneNumber");
+            } catch (Exception e) {
+                e.printStackTrace();
             }
-            String responseUserPhoneNumber = getMobileByWX(accessToken, appUserAuthorizeDto.getMobileCode());
-            JSONObject jsonUserPhoneNumber = JSONObject.parseObject(responseUserPhoneNumber);
-            String errcode = jsonUserPhoneNumber.getString("errcode");
-            String errmsg = jsonUserPhoneNumber.getString("errmsg");
-            if (!errcode.equals("0")) {
-                throw new ServiceException(errmsg);
+            Member oldMember = this.getByMobile(mobile);
+            if(oldMember!=null){
+                member.setNickName(oldMember.getNickName());
+                member.setGender(oldMember.getGender());
+                member.setReferrer(oldMember.getReferrer());
+                member.setBirthday(oldMember.getBirthday());
+                member.setBindingFlag(1);
+                member.setRelationShopId(oldMember.getRelationShopId());
+                oldMember.setDelFlag(1);
+                oldMember.setMiniOpenid(oldMember.getMiniOpenid()+"已删除");
+                this.saveOrUpdate(oldMember);
+            }else{
+                //更新用户手机信息
+                SysUser sysUser = new SysUser();
+                sysUser.setUserId(appUserAuthorizeDto.getUserId());
+                sysUser.setPhonenumber(mobile);
+                sysUserService.updateUserMobile(sysUser);
+                member.setNickName(sysUser.getNickName());
             }
-            String phoneInfo = jsonUserPhoneNumber.getString("phone_info");
-            JSONObject jsonUserPhoneInfo = JSONObject.parseObject(phoneInfo);
-            mobile = jsonUserPhoneInfo.getString("purePhoneNumber");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        SysUser sysUser1 = sysUserService.getSysUserBYmobile(mobile).getData();
-        if(sysUser1!=null){
-            member.setUserId(sysUser1.getUserId());
-            member.setNickName(sysUser1.getNickName());
+            member.setMobile(mobile);
+            this.saveOrUpdate(member);
         }else{
-            //更新用户手机信息
-            SysUser sysUser = new SysUser();
-            sysUser.setUserId(appUserAuthorizeDto.getUserId());
-            sysUser.setPhonenumber(mobile);
-            sysUserService.updateUserMobile(sysUser);
-            member.setNickName(sysUser.getNickName());
+            mobile = member.getMobile();
         }
-        member.setMobile(mobile);
-        this.saveOrUpdate(member);
         appUserAuthorizeVo.setMobile(mobile);
         appUserAuthorizeVo.setNickName(member.getNickName());
         appUserAuthorizeVo.setOpenid(member.getMiniOpenid());
@@ -358,7 +350,7 @@
 
 
     /**
-     * @description: TODO
+     * @description: 商户获取会员信息
      * @author jqs34
      * @date 2023/5/4 22:50
      * @version 1.0
@@ -391,7 +383,7 @@
     }
 
     /**
-     *
+     * 更新会员绑定商户
      * @param appMemberBindingDto
      */
     @Override
@@ -403,7 +395,7 @@
     }
 
     /**
-     *
+     * 获取会员基础档案
      * @param userId
      * @return
      */
@@ -422,7 +414,7 @@
     }
 
     /**
-     *
+     * 获取会员标签
      * @param userId
      * @return
      */
@@ -455,7 +447,7 @@
     }
 
     /**
-     *
+     * 编辑会员标签
      * @param merMemberTagEditDto
      */
     @Override
@@ -464,4 +456,94 @@
         member.setUserTags(merMemberTagEditDto.getUserTags());
         this.saveOrUpdate(member);
     }
+
+
+    /**
+     * 添加会员
+     * @param merMemberAddDto
+     */
+    @Override
+    public void addMerMember(MerMemberAddDto merMemberAddDto){
+        String phonenumber = merMemberAddDto.getPhonenumber();
+        Member oldMember = this.getByMobile(phonenumber);
+        if(oldMember!=null){
+            throw new ServiceException(AppErrorConstant.MOBILE_USER_DOUBLE);
+        }
+        SysUser sysUser = sysUserService.getSysUserByMobile(phonenumber).getData();
+        if(sysUser==null){
+            sysUser = new SysUser();
+            sysUser.setUserName(phonenumber);
+            sysUser.setUserType("03");
+            sysUser.setNickName(merMemberAddDto.getNickName());
+            sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
+            String password = "hongruitang";
+            sysUser.setPassword(SecurityUtils.encryptPassword(password));
+            log.debug("sysUser"+sysUser.toString());
+            sysUser = sysUserService.registerUser(sysUser).getData();
+        }
+        log.info("sysUser1-----------------"+sysUser.toString());
+        String memberId = IdUtils.simpleUUID();
+        Member member = new Member();
+        member.setUserId(sysUser.getUserId());
+        member.setDelFlag(0);
+        member.setNickName(merMemberAddDto.getNickName());
+        member.setGender(merMemberAddDto.getGender());
+        member.setMobile(phonenumber);
+        member.setReferrer(merMemberAddDto.getReferrer());
+        member.setBirthday(merMemberAddDto.getBirthday());
+        member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
+        member.setMemberId(memberId);
+        member.setRelationShopId(1L);
+        member.setWxUnionid(null);
+        member.setMiniOpenid(null);
+        member.setBindingFlag(1);
+        member.setRelationShopId(merMemberAddDto.getShopId());
+        member.setCreateTime(new Date());
+        log.info("member-----------------"+member.toString());
+        this.saveOrUpdate(member);
+    }
+
+    /**
+     * 编辑会员
+     * @param merMemberEditDto
+     */
+    @Override
+    public void editMerMember(MerMemberEditDto merMemberEditDto){
+
+        Member member = this.getByUserId(merMemberEditDto.getEditUserId());
+        if(!member.getMobile().equals(merMemberEditDto.getPhonenumber())){
+            Member memberOld = getByMobile(merMemberEditDto.getPhonenumber());
+            if(memberOld!=null){
+                throw new ServiceException(AppErrorConstant.MOBILE_DOUBLE);
+            }
+        }
+        member.setRealName(merMemberEditDto.getNickName());
+        member.setMobile(merMemberEditDto.getPhonenumber());
+        member.setGender(merMemberEditDto.getGender());
+        member.setReferrer(merMemberEditDto.getReferrer());
+        member.setCustomerSource(merMemberEditDto.getCustomerSource());
+        member.setLevel(merMemberEditDto.getLevel());
+        member.setBirthday(merMemberEditDto.getBirthday());
+        member.setUpdateUserId(merMemberEditDto.getUserId());
+        member.setUpdateTime(new Date());
+        log.info("member-----------------"+member.toString());
+        this.saveOrUpdate(member);
+        SysUser sysUser = new SysUser();
+        sysUser.setUserId(merMemberEditDto.getEditUserId());
+        sysUser.setPhonenumber(merMemberEditDto.getPhonenumber());
+        sysUserService.updateUserMobile(sysUser);
+    }
+
+    /**
+     *
+     * @param mobile
+     * @return
+     */
+    @Override
+    public Member getByMobile(String mobile){
+        LambdaQueryWrapper<Member> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(Member::getDelFlag, 0).eq(Member::getMobile, mobile);
+        Member member = this.getOne(queryWrapper);
+        return member;
+    }
 }

--
Gitblit v1.7.1