From 4fabfe4dbd2eb28d07a4350597d314958cc1c281 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 09 十月 2025 11:16:43 +0800
Subject: [PATCH] 优化

---
 server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java |  126 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 109 insertions(+), 17 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 20b977d..9154af3 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -2,6 +2,7 @@
 
 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.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -12,6 +13,7 @@
 import com.doumee.core.constants.Constants;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
@@ -23,9 +25,13 @@
 import com.doumee.dao.business.web.response.AccountResponse;
 import com.doumee.dao.business.web.response.HomeResponse;
 import com.doumee.dao.business.web.response.UserResponse;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.MemberService;
+import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,16 +50,50 @@
  * @date 2023/09/27 18:06
  */
 @Service
+@Slf4j
 public class MemberServiceImpl implements MemberService {
 
     @Autowired
     private MemberMapper memberMapper;
+    @Autowired
+    private SystemUserMapper systemUserMapper;
 
 
     @Override
     public String create(Member member) {
         memberMapper.insert(member);
         return member.getId();
+    }
+
+
+    @Override
+    public String createManageMember(Member member) {
+        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+
+        QueryWrapper<Member> wrapper = new QueryWrapper<>();
+        wrapper.lambda()
+                .eq(Member::getIsdeleted,Constants.ZERO)
+                .eq(Member::getType,Constants.ONE)
+                .eq(Member::getCardNo,member.getCardNo());
+        long integer = memberMapper.selectCount(wrapper);
+
+        if (integer > 0){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍗″彿瀛樺湪閲嶅");
+        }
+        Member insert = new Member();
+        insert.setCreateDate(new Date());
+        insert.setCreator(principal.getId());
+        insert.setEditDate(new Date());
+        insert.setEditor(principal.getId());
+        insert.setIsdeleted(Constants.ZERO);
+        insert.setName(member.getName());
+        insert.setNickname(member.getNickname());
+        insert.setStatus(member.getStatus());
+        insert.setRegisterDate(new Date());
+        insert.setCardNo(member.getCardNo());
+        insert.setType(Constants.ONE);
+        memberMapper.insert(insert);
+        return insert.getId();
     }
 
     @Override
@@ -81,6 +121,29 @@
     }
 
     @Override
+    public void update(Member member) {
+
+        QueryWrapper<Member> wrapper = new QueryWrapper<>();
+        wrapper.lambda()
+                .eq(Member::getIsdeleted,Constants.ZERO)
+                .eq(Member::getType,Constants.ONE)
+                .eq(Member::getCardNo,member.getCardNo());
+        Member member1 = memberMapper.selectOne(wrapper);
+        if (Objects.nonNull(member1) && !member1.getId().equals(member.getId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍗″彿瀛樺湪閲嶅");
+        }
+        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        Member update = new Member();
+        update.setId(member.getId());
+        update.setName(member.getName());
+        update.setStatus(member.getStatus());
+        update.setEditDate(new Date());
+        update.setEditor(principal.getId());
+        memberMapper.updateById(member);
+
+    }
+
+    @Override
     public void updateByIdInBatch(List<Member> members) {
         if (CollectionUtils.isEmpty(members)) {
             return;
@@ -98,7 +161,7 @@
     @Override
     public Member findOne(Member member) {
         QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
-        return memberMapper.selectOne(wrapper);
+        return memberMapper.selectOne(wrapper.last(" limit 1"));
     }
 
     @Override
@@ -106,7 +169,7 @@
         QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
         return memberMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<Member> findPage(PageWrap<Member> pageWrap) {
         IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -136,7 +199,7 @@
             queryWrapper.lambda().eq(Member::getInfo, pageWrap.getModel().getInfo());
         }
         if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().eq(Member::getName, pageWrap.getModel().getName());
+            queryWrapper.lambda().like(Member::getName, pageWrap.getModel().getName());
         }
         if (pageWrap.getModel().getNickname() != null) {
             queryWrapper.lambda().eq(Member::getNickname, pageWrap.getModel().getNickname());
@@ -174,7 +237,7 @@
             queryWrapper.lambda().eq(Member::getPassword, pageWrap.getModel().getPassword());
         }
         if (pageWrap.getModel().getCardNo() != null) {
-            queryWrapper.lambda().eq(Member::getCardNo, pageWrap.getModel().getCardNo());
+            queryWrapper.lambda().like(Member::getCardNo, pageWrap.getModel().getCardNo());
         }
         if (pageWrap.getModel().getCardSign() != null) {
             queryWrapper.lambda().eq(Member::getCardSign, pageWrap.getModel().getCardSign());
@@ -192,6 +255,23 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
+        return PageData.from(memberMapper.selectPage(page, queryWrapper));
+    }
+
+
+    @Override
+    public PageData<Member> findManagerMemberPage(PageWrap<Member> pageWrap) {
+
+        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        if (pageWrap.getModel().getName() != null) {
+            queryWrapper.lambda().like(Member::getName, pageWrap.getModel().getName());
+        }
+        if (pageWrap.getModel().getCardNo() != null) {
+            queryWrapper.lambda().like(Member::getCardNo, pageWrap.getModel().getCardNo());
+        }
+        queryWrapper.lambda().eq(Member::getType, Constants.ONE);
         return PageData.from(memberMapper.selectPage(page, queryWrapper));
     }
 
@@ -243,9 +323,11 @@
      */
     @Override
     public AccountResponse wxLogin(String code) {
+        log.error("================================"+code+ JSONObject.toJSONString( WxMiniConfig.wxMaService.getWxMaConfig()));
         try {
             //鑾峰彇寰俊鏁忔劅鏁版嵁
             WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code);
+            log.error("================================"+ JSONObject.toJSONString(session));
             String openId = session.getOpenid();
             String unionId = session.getUnionid();
             if (StringUtils.isBlank(openId)) {
@@ -256,31 +338,30 @@
             if(Objects.isNull(member)){
                 //鏂板鐢ㄦ埛 闇�瑕佽繘琛岀敤鎴风粦瀹氭墜鏈哄彿
                 member = new Member();
+                member.setId(Constants.getUUID());
                 member.setCreateDate(new Date());
                 member.setIsdeleted(Constants.ZERO);
                 member.setOpenid(openId);
                 member.setUnionid(unionId);
                 member.setType(Constants.ZERO);
+                member.setRegisterDate(new Date());
                 member.setOrigin(Constants.ZERO.toString());
                 member.setStatus(Constants.ZERO);
                 memberMapper.insert(member);
-                accountResponse.setStatus(Constants.ONE);
-            }else{
-                UserResponse userResponse = getUserInfo(member.getId());
-                if(StringUtils.isBlank(member.getPhone())){
-                    accountResponse.setStatus(Constants.ONE);
-                }else{
-                    JwtPayLoad payLoad = new JwtPayLoad(userResponse.getId());
-                    accountResponse.setToken(JwtTokenUtil.generateToken(payLoad));
-                }
-                accountResponse.setUserResponse(userResponse);
             }
-
+            UserResponse userResponse = getUserInfo(member.getId());
+            if(StringUtils.isBlank(member.getPhone())){
+                accountResponse.setStatus(Constants.ONE);
+            }
+            JwtPayLoad payLoad = new JwtPayLoad(member.getId());
+            accountResponse.setToken(JwtTokenUtil.generateToken(payLoad));
+            accountResponse.setSessionKey(session.getSessionKey());
+            accountResponse.setUserResponse(userResponse);
             return accountResponse;
         } catch (WxErrorException e) {
+            log.error(e.getMessage());
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
         }
-
     }
 
 
@@ -321,9 +402,20 @@
         UserResponse userResponse = new UserResponse();
         BeanUtils.copyProperties(member,userResponse);
         userResponse.setMobile(member.getPhone());
+        if(member.getSysuserId()!=null){
+            SystemUser user= systemUserMapper.selectById(member.getSysuserId());
+            if(user !=null && !Constants.equalsInteger(user.getDeleted(),Constants.ONE)
+                    &&  !Constants.equalsInteger(user.getStatus(),Constants.ONE)){
+                SystemUser u = new SystemUser();
+                u.setId(user.getId());
+                u.setUsername(user.getUsername());
+                u.setNickname(user.getNickname());
+                u.setRealname(user.getRealname());
+                userResponse.setSysuser(u);
+            }
+        }
         return userResponse;
     }
-
 
 
 }

--
Gitblit v1.9.3