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