server/services/src/main/java/com/doumee/core/Jwt/JwtPayLoad.java
@@ -18,14 +18,14 @@ /** * 用户id */ private Integer memberId; private String memberId; private long expire; public JwtPayLoad() { } public JwtPayLoad(Integer memberId) { public JwtPayLoad(String memberId) { this.memberId = memberId; } @@ -52,7 +52,7 @@ return new JwtPayLoad(); } else { JwtPayLoad jwtPayLoad = new JwtPayLoad(); jwtPayLoad.setMemberId((Integer) map.get("memberId")); jwtPayLoad.setMemberId(map.get("memberId").toString()); return jwtPayLoad; } server/services/src/main/java/com/doumee/core/Jwt/JwtTokenUtil.java
@@ -126,7 +126,7 @@ /** * 生成token,根据userId和过期时间 */ public static String generateToken(Integer userId, Date exppiredDate, Map<String, Object> claims) { public static String generateToken(String userId, Date exppiredDate, Map<String, Object> claims) { final Date createdDate = new Date(); String secret = getJwtSecret(); server/services/src/main/java/com/doumee/core/Jwt/WebMvcConfig.java
@@ -81,7 +81,7 @@ throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"长时间未操作,请重新登录"); } //获取账号ID Integer memberId = JwtTokenUtil.getJwtPayLoad(token).getMemberId(); String memberId = JwtTokenUtil.getJwtPayLoad(token).getMemberId(); 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(),"用户已删除,请联系管理员"); server/services/src/main/java/com/doumee/core/constants/ResponseStatus.java
@@ -1,6 +1,5 @@ package com.doumee.core.constants; import javafx.scene.input.KeyCodeCombination; import lombok.AllArgsConstructor; import lombok.Getter; server/services/src/main/java/com/doumee/dao/business/web/response/AccountResponse.java
@@ -1,5 +1,6 @@ package com.doumee.dao.business.web.response; import com.doumee.core.constants.Constants; import com.doumee.dao.system.model.SystemUser; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -20,9 +21,13 @@ @ApiModelProperty(value = "用户token") private String token; @ApiModelProperty(value = "sessionKey") private String sessionKey; @ApiModelProperty(value = "用户信息") private UserResponse userResponse; @ApiModelProperty(value = "返回状态:0=登录成功;1=未维护手机号,请维护手机号;2=登录失败") private Integer status; private Integer status = Constants.ZERO; } server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java
@@ -49,14 +49,14 @@ @ApiModelProperty(value = "小程序是否停止服务 0否 1是") private Integer isStopServe; @ApiModelProperty(value = "小程序是否营业 0否 1是") private Integer isBusiness; @ApiModelProperty(value = "未开始营业提示语") private String unBusinessTips; @ApiModelProperty(value = "小程序停止服务提示") private String stopServeTips; @ApiModelProperty(value = "小程序营业开始时间点") private String businessStartTime; @ApiModelProperty(value = "小程序营业结束时间点") private String businessEndTime; @ApiModelProperty(value = "骑行情况") private MemberRidesResponse memberRidesResponse; server/services/src/main/java/com/doumee/dao/business/web/response/UserResponse.java
@@ -15,7 +15,7 @@ public class UserResponse { @ApiModelProperty(value = "用户主键") private Integer id; private String id; @ApiModelProperty(value = "姓名") private String name; server/services/src/main/java/com/doumee/service/business/GoodsorderService.java
@@ -172,12 +172,12 @@ /** * 验证是否为营业时间 */ void checkBusiness(); Boolean checkBusiness(); /** * 验证是否处于停止运营时间 */ void checkTemporaryStop(); Boolean checkTemporaryStop(); Goodsorder findOneByWrapper(QueryWrapper<Goodsorder> wrapper); server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -57,6 +57,8 @@ import java.net.UnknownHostException; import java.sql.Ref; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -243,7 +245,9 @@ homeResponse.setLeaseVideoUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_TIPS_VIDEO).getCode()); homeResponse.setPricingRules(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PRICING_RULE).getCode()); homeResponse.setStopServeTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_TIPS).getCode()); homeResponse.setIsStopServe(Constants.ZERO); homeResponse.setIsStopServe(this.checkTemporaryStop()?1:0); homeResponse.setIsBusiness(this.checkBusiness()?0:1); homeResponse.setUnBusinessTips("营业时间为"+ systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_STARTTIME).getCode() +" ~ "+systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_ENDTIME).getCode()+",请在营业时间内使用本系统"); homeResponse.setAdList(adMapper.selectList(new QueryWrapper<Ad>() .eq("isdeleted",Constants.ZERO) .eq("status",Constants.ZERO) @@ -637,9 +641,13 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"已支付过定金,无法重复该操作"); } //是否处于小程序停止服务时间内 this.checkTemporaryStop(); if(this.checkTemporaryStop()){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_TIPS).getCode()); }; //是否处于营业时间 this.checkBusiness(); if(this.checkBusiness()){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"营业时间为"+ systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_STARTTIME).getCode() +" ~ "+systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_ENDTIME).getCode()+",请在营业时间内使用本系统"); }; Goodsorder goodsorder = new Goodsorder(); goodsorder.setId(Constants.getUUID()); goodsorder.setCreateDate(new Date()); @@ -675,21 +683,24 @@ * 验证营业时间 */ @Override public void checkBusiness(){ public Boolean checkBusiness(){ String businessStartTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_STARTTIME).getCode(); String businessEndTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_ENDTIME).getCode(); String nowTime = DateUtil.getDate(new Date(),"HH:mm"); LocalTime currentTime = LocalTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm"); String nowTime = currentTime.format(formatter); if(Integer.valueOf(nowTime.replace(":",""))<= Integer.valueOf(businessStartTime.replace(":","")) ||Integer.valueOf(nowTime.replace(":","")) > Integer.valueOf(businessEndTime.replace(":",""))){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"营业时间为06:00 ~ 23:59,请在营业时间内使用本系统"); return true; } return false; } /** * 临时停止服务 未交押金的用户,无法扫车使用;已经交过押金的用户可以继续扫码骑行; */ @Override public void checkTemporaryStop(){ public Boolean checkTemporaryStop(){ if(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.IS_STOP_SERVE).getCode().equals(Constants.ONE)){ String stopServeStartTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_STARTTIME).getCode(); String stopServeEndTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_ENDTIME).getCode(); @@ -697,9 +708,10 @@ long s = DateUtil.StringToDate(stopServeStartTime).getTime(); long e = DateUtil.StringToDate(stopServeEndTime).getTime(); if(e>System.currentTimeMillis()&&s<=System.currentTimeMillis()){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_TIPS).getCode()); return true; } } return false; } server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -318,31 +318,29 @@ 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) { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "微信登录异常!请联系管理员"); } } server/services/src/main/resources/application-dev.yml
@@ -44,12 +44,12 @@ ########################微信支付相关配置######################## wx: pay: appId: wx6b8c6d9df01fbe1e appSecret: 8ae8fbe2e4b9866439a87d64a42b9214 appId: wxcd2b89fd2ff065f8 appSecret: 1ceb7c9dff3c4330d653adc3ca55ea24 mchId: 1229817002 mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM notifyUrl: https://dmtest.ahapp.net/martempo_interface/web/api/wxPayNotify keyPath: D:/work/svn/cert/apiclient_cert.p12 notifyUrl: http://xiaopiqiu.natapp1.cc/api/wxPayNotify keyPath: D:\DouMee\config\doumeeTest\apiclient_cert.p12 ########################mqtt相关配置######################## mqtt: server/web/src/main/java/com/doumee/api/web/PaymentCallback.java
@@ -47,7 +47,7 @@ if ("SUCCESS".equals(result.getReturnCode())) { // 支付成功 switch (result.getAttach()) { //家长支付订单 //支付订单回调 case "createGoodsOrder": { goodsorderService.payNotify(outTradeNo,paymentNo); break;