From b5d33341519df18767e88189b28c87238bd07358 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期日, 08 十月 2023 09:21:13 +0800
Subject: [PATCH] 111

---
 server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java      |   49 +++++++++
 server/web/src/main/java/com/doumee/api/web/HomeApi.java                                  |   28 +++++
 server/services/src/main/java/com/doumee/core/constants/Constants.java                    |   32 ++++++
 server/services/src/main/java/com/doumee/dao/business/web/response/AccountResponse.java   |    2 
 server/services/src/main/java/com/doumee/dao/business/GoodsorderMapper.java               |    5 +
 server/services/src/main/java/com/doumee/service/business/MemberService.java              |   11 ++
 server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java     |   86 +++++++++++++++--
 server/web/src/main/java/com/doumee/api/web/AccountApi.java                               |    2 
 server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java |   49 +++++++++
 server/services/src/main/java/com/doumee/core/Jwt/WebMvcConfig.java                       |    8 
 10 files changed, 253 insertions(+), 19 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/core/Jwt/WebMvcConfig.java b/server/services/src/main/java/com/doumee/core/Jwt/WebMvcConfig.java
index f84ca05..5040cd4 100644
--- a/server/services/src/main/java/com/doumee/core/Jwt/WebMvcConfig.java
+++ b/server/services/src/main/java/com/doumee/core/Jwt/WebMvcConfig.java
@@ -82,12 +82,12 @@
             }
             //鑾峰彇璐﹀彿ID
             Integer memberId = JwtTokenUtil.getJwtPayLoad(token).getMemberId();
-            Integer isDeleted = dao.queryForObject(" select COALESCE(ISDELETED,1)  from `member` where id  = ?", Integer.class, memberId);
-            if(isDeleted== Constants.ONE){
+            Integer isDeleted = dao.queryForObject(" select COALESCE(isdeleted,1)  from member where id  = ?", Integer.class, memberId);
+            if(isDeleted.equals(Constants.ONE)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
             }
-            Integer isForbidden = dao.queryForObject(" select COALESCE(STATUS,1)  from `member` where id  = ?", Integer.class, memberId);
-            if(isForbidden== Constants.ONE){
+            Integer isForbidden = dao.queryForObject(" select COALESCE(STATUS,1)  from member where id  = ?", Integer.class, memberId);
+            if(isForbidden.equals(Constants.ONE)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
             }
             Integer count = dao.queryForObject("select count(1) from `member` where id  = ?", Integer.class, memberId);
diff --git a/server/services/src/main/java/com/doumee/core/constants/Constants.java b/server/services/src/main/java/com/doumee/core/constants/Constants.java
index 92b1709..51d2fe3 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -23,10 +23,10 @@
   public static final String FALSE = "f";
   public static final String TOKEN ="TOKEN" ;
     public static final String SYSTEM ="SYSTEM" ;
+    public static final String MINI_PROGRAMME ="MINI_PROGRAMME" ;
     public static final String IMG_DIR = "IMG_DIR";
     public static final String FILE_DIR ="FILE_DIR" ;
     public static final String PRIVATE_KEY = "PRIVATE_KEY";
-    public static final String MINI_PROGRAMME ="MINI_PROGRAMME" ;
     public static String REDIS_DEBUG_STR="test_";
 
   /**
@@ -38,6 +38,13 @@
     int all =2;
     int partful = 3;
   }
+    public interface goodsorderStatus{
+        int waitPay =0;
+        int pay =1;
+        int cancel =2;
+        int fail = 3;
+        int over = 4;
+    }
 
   public interface RedisKeys {
         public static final String submission_period_key = "sp_";
@@ -61,6 +68,29 @@
   public static final String RESOURCE_PATH = "RESOURCE_PATH";
   public static final String UPLOAD_FILE = "UPLOAD_FILE";
   public static final String AVATAR_FILE = "AVATAR_FILE";
+  //鐢ㄦ埛鍗忚
+  public static final String AGREEMENT = "AGREEMENT";
+  //璁′环瑙勫垯
+  public static final String PRICING_RULE = "PRICING_RULE";
+    //灏忕▼搴忎富棰樺悕绉�
+    public static final String PROJECT_NAME = "PROJECT_NAME";
+    //灏忕▼搴忔湇鍔$鐢佃瘽
+    public static final String SERVER_PHONE = "SERVER_PHONE";
+    //灏忕▼搴忕璧佹祦绋嬭棰�
+    public static final String RENT_TIPS_VIDEO = "RENT_TIPS_VIDEO";
+    //绉熻祦椤荤煡
+    public static final String LEASE_NOTICE = "LEASE_NOTICE";
+    //绉熻祦椤荤煡鍥剧墖
+    public static final String LEASE_NOTICE_URL = "LEASE_NOTICE_URL";
+    //鎶奸噾
+    public static final String RENT_DEPOSIT = "RENT_DEPOSIT";
+    //娓╅Θ鎻愮ず
+    public static final String TIPS = "TIPS";
+
+
+
+
+
 
   public static final String FILES_DIR = "FILES_DIR";
   public static final String SCRATCH_REDIRECT_URL = "SCRATCH_REDIRECT_URL";
diff --git a/server/services/src/main/java/com/doumee/dao/business/GoodsorderMapper.java b/server/services/src/main/java/com/doumee/dao/business/GoodsorderMapper.java
index 6e4f7c5..c6304ec 100644
--- a/server/services/src/main/java/com/doumee/dao/business/GoodsorderMapper.java
+++ b/server/services/src/main/java/com/doumee/dao/business/GoodsorderMapper.java
@@ -8,4 +8,9 @@
  * @author T14
  */
 public interface GoodsorderMapper extends BaseMapper<Goodsorder> {
+
+
+
+
+
 }
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/AccountResponse.java b/server/services/src/main/java/com/doumee/dao/business/web/response/AccountResponse.java
index 5692bce..9497fa8 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/response/AccountResponse.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/AccountResponse.java
@@ -23,4 +23,6 @@
     @ApiModelProperty(value = "鐢ㄦ埛淇℃伅")
     private UserResponse userResponse;
 
+    @ApiModelProperty(value = "杩斿洖鐘舵�侊細0=鐧诲綍鎴愬姛锛�1=鏈淮鎶ゆ墜鏈哄彿锛岃缁存姢鎵嬫満鍙凤紱2=鐧诲綍澶辫触")
+    private Integer status;
 }
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java b/server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java
new file mode 100644
index 0000000..9af9f65
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java
@@ -0,0 +1,49 @@
+package com.doumee.dao.business.web.response;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/10/7 14:45
+ */
+@Data
+public class HomeResponse {
+
+    @ApiModelProperty(value = "鍏洯鍚嶇О")
+    private String parkName;
+
+    @ApiModelProperty(value = "鍏洯鏈嶅姟鐢佃瘽")
+    private String serverPhone;
+
+    @ApiModelProperty(value = "绉熻祦椤荤煡锛堝浘鐗囧湴鍧�锛�")
+    private String leaseNoticeUrl;
+
+    @ApiModelProperty(value = "绉熻祦娴佺▼瑙嗛浠嬬粛")
+    private String leaseVideoUrl;
+
+    @ApiModelProperty(value = "鎶奸噾閲戦")
+    private BigDecimal deposit;
+
+    @ApiModelProperty(value = "娓╅Θ鎻愮ず")
+    private String tips;
+
+    @ApiModelProperty(value = "绉熻祦椤荤煡")
+    private String leaseNotice;
+
+    @ApiModelProperty(value = "璁′环瑙勫垯")
+    private String pricingRules;
+
+    @ApiModelProperty(value = "鎶奸噾鐘舵�侊細0=鏈敮浠樻娂閲戯紱1=宸叉敮浠樻娂閲戯紱")
+    private Integer depositStatus;
+
+    @ApiModelProperty(value = "楠戣鐘舵�侊細2=楠戣涓紱3=宸茶繕杞︼紱锛�")
+    private String rideStatus;
+
+
+
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/MemberService.java b/server/services/src/main/java/com/doumee/service/business/MemberService.java
index 558f9ce..e43dbc6 100644
--- a/server/services/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/services/src/main/java/com/doumee/service/business/MemberService.java
@@ -106,9 +106,18 @@
     /**
      * 鎷夊彇鐧诲綍
      * @param code
-     * @param userId
      */
     AccountResponse wxLogin(String code);
 
+    /**
+     * 瑙f瀽鎵嬫満鍙�
+     * @param memberId
+     * @param encryptedData
+     * @param iv
+     * @param sessionKey
+     * @return
+     */
+    AccountResponse wxPhone(String memberId,String encryptedData, String iv,String sessionKey);
+
     UserResponse getUserInfo(String memberId);
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index 1ec5fd0..a7d1957 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -4,21 +4,30 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.Constants;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.GoodsorderMapper;
+import com.doumee.dao.business.MemberRidesMapper;
 import com.doumee.dao.business.join.GoodsorderJoinMapper;
 import com.doumee.dao.business.model.Bikes;
 import com.doumee.dao.business.model.Goodsorder;
 import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.MemberRides;
+import com.doumee.dao.business.web.response.HomeResponse;
 import com.doumee.service.business.GoodsorderService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Objects;
 
 @Service
 public class GoodsorderServiceImpl implements GoodsorderService {
@@ -30,6 +39,12 @@
 
     @Autowired
     GoodsorderJoinMapper goodsorderJoinMapper;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private MemberRidesMapper memberRidesMapper;
 
     @Override
     public String create(Goodsorder goodsorder) {
@@ -127,4 +142,38 @@
         QueryWrapper<Goodsorder> wrapper = new QueryWrapper<>(goodsorder);
         return goodsorderMapper.selectCount(wrapper);
     }
+
+
+
+    public HomeResponse getHome(String memberId){
+        HomeResponse homeResponse = new HomeResponse();
+        homeResponse.setParkName(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.PROJECT_NAME).getCode());
+        homeResponse.setServerPhone(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.SERVER_PHONE).getCode());
+        homeResponse.setLeaseNoticeUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.LEASE_NOTICE_URL).getCode());
+        homeResponse.setLeaseNotice(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.LEASE_NOTICE).getCode());
+        homeResponse.setDeposit(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode()));
+        homeResponse.setTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.TIPS).getCode());
+        homeResponse.setLeaseVideoUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_TIPS_VIDEO).getCode());
+        homeResponse.setPricingRules(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PRICING_RULE).getCode());
+        //鏌ヨ鏄惁瀛樺湪 宸叉敮浠樼殑 鎶奸噾璁㈠崟
+        Integer status = this.goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>()
+                .eq("member_id",memberId)
+                .eq("status",Constants.goodsorderStatus.pay));
+        homeResponse.setDepositStatus(status);
+        if(homeResponse.getDepositStatus()==Constants.goodsorderStatus.pay) {
+            //鏌ヨ褰撳墠楠戣鐘舵��
+            MemberRides memberRides = memberRidesMapper.selectOne(new QueryWrapper<MemberRides>().eq("member_id", memberId)
+                    .orderByDesc(" create_date ")
+                    .last(" limit 1  "));
+            if (Objects.isNull(memberRides)) {
+
+            }
+        }
+        return homeResponse;
+    }
+
+
+
+
+
 }
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 5d255d6..ef5e369 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
@@ -1,10 +1,12 @@
 package com.doumee.service.business.impl;
 
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.Jwt.JwtPayLoad;
 import com.doumee.core.Jwt.JwtTokenUtil;
 import com.doumee.core.constants.Constants;
@@ -18,14 +20,20 @@
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.web.request.RegisterRequest;
 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.service.business.MemberService;
 import me.chanjar.weixin.common.error.WxErrorException;
+import org.apache.commons.lang3.StringUtils;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.RequestParam;
 
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -39,6 +47,7 @@
 
     @Autowired
     private MemberMapper memberMapper;
+
 
     @Override
     public String create(Member member) {
@@ -210,7 +219,7 @@
             //鑾峰彇寰俊鏁忔劅鏁版嵁
             WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code);
             String openId = session.getOpenid();
-            if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
+            if (StringUtils.isBlank(openId)) {
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
             }
             member.setOpenid(openId);
@@ -226,26 +235,46 @@
     }
 
 
+    /**
+     * 寰俊灏忕▼搴忕櫥褰�
+     * @param code
+     * @return
+     */
     @Override
     public AccountResponse wxLogin(String code) {
         try {
             //鑾峰彇寰俊鏁忔劅鏁版嵁
             WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code);
             String openId = session.getOpenid();
-            if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
+            String unionId = session.getUnionid();
+            if (StringUtils.isBlank(openId)) {
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
             }
-            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId).eq("ISDELETED", Constants.ZERO).last("limit 1"));
+            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("openid", openId).eq("isdeleted", Constants.ZERO).last("limit 1"));
             AccountResponse accountResponse = new AccountResponse();
-            if (Objects.isNull(member)) {
-                return accountResponse;
+            if(Objects.isNull(member)){
+                //鏂板鐢ㄦ埛 闇�瑕佽繘琛岀敤鎴风粦瀹氭墜鏈哄彿
+                member = new Member();
+                member.setCreateDate(new Date());
+                member.setIsdeleted(Constants.ZERO);
+                member.setOpenid(openId);
+                member.setUnionid(unionId);
+                member.setType(Constants.ZERO);
+                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);
             }
 
-            memberMapper.updateById(member);
-            UserResponse userResponse = getUserInfo(member.getId());
-            JwtPayLoad payLoad = new JwtPayLoad(userResponse.getId());
-            accountResponse.setToken(JwtTokenUtil.generateToken(payLoad));
-            accountResponse.setUserResponse(userResponse);
             return accountResponse;
         } catch (WxErrorException e) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
@@ -253,15 +282,50 @@
 
     }
 
+
+    /**
+     * 瑙f瀽寰俊鎵嬫満鍙�
+     * @param memberId
+     * @param encryptedData
+     * @param iv
+     * @param sessionKey
+     * @return
+     */
+    @Override
+    public AccountResponse wxPhone(String memberId,String encryptedData, String iv,String sessionKey) {
+        try {
+            Member member =  memberMapper.selectById(memberId);
+            WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxMaService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv);
+            //鑾峰彇鎵嬫満鍙�
+            String mobile= userPhoneInfo.getPurePhoneNumber();
+            if(Objects.isNull(mobile)){
+               throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈В鏋愬埌鎵嬫満鍙�");
+            }
+            member.setPhone(mobile);
+            memberMapper.updateById(member);
+            AccountResponse accountResponse = new AccountResponse();
+            UserResponse userResponse = getUserInfo(member.getId());
+            JwtPayLoad payLoad = new JwtPayLoad(userResponse.getId());
+            accountResponse.setToken(JwtTokenUtil.generateToken(payLoad));
+            accountResponse.setUserResponse(userResponse);
+            accountResponse.setStatus(Constants.ZERO);
+            return accountResponse;
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈В鏋愬埌鎵嬫満鍙�");
+        }
+    }
+
+
     @Override
     public UserResponse getUserInfo(String id) {
         Member member = memberMapper.selectById(id);
         UserResponse userResponse = new UserResponse();
         BeanUtils.copyProperties(member,userResponse);
         userResponse.setMobile(member.getPhone());
-
         return userResponse;
     }
 
 
+
 }
diff --git a/server/web/src/main/java/com/doumee/api/web/AccountApi.java b/server/web/src/main/java/com/doumee/api/web/AccountApi.java
index 44011bc..995aca2 100644
--- a/server/web/src/main/java/com/doumee/api/web/AccountApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/AccountApi.java
@@ -52,8 +52,6 @@
     }
 
 
-
-
     @Trace
     @ApiOperation(value = "寰俊鎺堟潈", notes = "灏忕▼搴忕")
     @GetMapping("/wxLogin")
diff --git a/server/web/src/main/java/com/doumee/api/web/HomeApi.java b/server/web/src/main/java/com/doumee/api/web/HomeApi.java
new file mode 100644
index 0000000..004bce6
--- /dev/null
+++ b/server/web/src/main/java/com/doumee/api/web/HomeApi.java
@@ -0,0 +1,28 @@
+package com.doumee.api.web;
+
+import com.doumee.core.annotation.trace.Trace;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/10/7 14:43
+ */
+
+@Api(tags = "2銆侀椤典笟鍔�")
+@Trace(exclude = true)
+@RestController
+@RequestMapping("/web/home")
+@Slf4j
+public class HomeApi extends ApiController{
+
+
+
+
+
+
+}

--
Gitblit v1.9.3