server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java
@@ -41,7 +41,10 @@ private String pricingRules; @ApiModelProperty(value = "押金状态:0=未支付押金;1=已支付押金;") private Integer depositStatus; private Integer depositStatus = 0; @ApiModelProperty(value = "订单主键") private String goodsOrderId; @ApiModelProperty(value = "骑行状态:-1=未骑行;0=请求开锁中 ;1=骑行中; 2=已还车; 3=开锁失败;") private Integer rideStatus; server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesResponse.java
@@ -47,9 +47,9 @@ @ApiModelProperty(value = "起步价时间", example = "1") private Integer baseTime; @ApiModelProperty(value = "超出单价", example = "1") private Integer unitPrice; @ApiModelProperty(value = "超出单价") private BigDecimal unitPrice; @ApiModelProperty(value = "超出时间单位", example = "1") @ApiModelProperty(value = "超出时间单位") private Integer unitTime; } server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -252,14 +252,16 @@ .eq("isdeleted",Constants.ZERO) .eq("status",Constants.ZERO) .orderByDesc("create_date") )); //查询是否存在 已支付的 押金订单 Integer status = this.goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>() .eq("member_id",memberId) .eq("status",Constants.goodsorderStatus.pay)); homeResponse.setDepositStatus(status); ));; homeResponse.setRideStatus(-1); if(homeResponse.getDepositStatus()==Constants.goodsorderStatus.pay) { //查询是否存在 已支付的 押金订单 Goodsorder goodsorder = this.goodsorderMapper.selectOne(new QueryWrapper<Goodsorder>() .eq("member_id",memberId) .eq("status",Constants.goodsorderStatus.pay) .last(" limit 1 ")); if(!Objects.isNull(goodsorder)&&goodsorder.getStatus().equals(Constants.goodsorderStatus.pay)){ homeResponse.setDepositStatus(Constants.goodsorderStatus.pay); homeResponse.setGoodsOrderId(goodsorder.getId()); //查询当前骑行状态 MemberRides memberRides = memberRidesJoinMapper.selectOne(new QueryWrapper<MemberRides>().eq("member_id", memberId) .orderByDesc(" create_date ") @@ -277,8 +279,8 @@ memberRidesResponse.setBikeCode(memberRides.getBikeCode()); memberRidesResponse.setBasePrice(memberRides.getBasePrice()); memberRidesResponse.setBaseTime(memberRides.getBaseTime()); memberRidesResponse.setUnitTime(memberRidesResponse.getUnitTime()); memberRidesResponse.setUnitPrice(memberRidesResponse.getUnitPrice()); memberRidesResponse.setUnitTime(memberRides.getUnitTime()); memberRidesResponse.setUnitPrice(memberRides.getUnitPrice()); homeResponse.setMemberRidesResponse(memberRidesResponse); } } @@ -605,7 +607,7 @@ memberRidesResponse.setBikeCode(s.getBikeCode()); memberRidesResponse.setBasePrice(s.getBasePrice()); memberRidesResponse.setBaseTime(s.getBaseTime()); memberRidesResponse.setUnitPrice(s.getUnitTime()); memberRidesResponse.setUnitPrice(s.getUnitPrice()); memberRidesResponse.setUnitTime(s.getUnitTime()); if ( Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey()!=(Constants.formatIntegerNum(s.getStatus()))){ //如果是骑行中 server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -5,6 +5,7 @@ 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.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; @@ -13,6 +14,10 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.dao.business.ActionLogMapper; import com.doumee.dao.business.BikesMapper; import com.doumee.dao.business.LocksMapper; import com.doumee.dao.business.MemberRidesMapper; import com.doumee.dao.business.*; import com.doumee.dao.business.join.MemberRidesJoinMapper; import com.doumee.dao.business.model.*; @@ -32,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Objects; @@ -61,9 +67,11 @@ private SitesMapper sitesMapper; @Autowired private BikesMapper bikesMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired private GoodsorderService goodsorderService; @Override public String create(MemberRides memberRides) { @@ -366,26 +374,57 @@ //查询是否处于骑行中 if(memberRidesMapper.selectCount(new QueryWrapper<MemberRides>().eq("member_id",memberId).in("status",0,1))>Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"存在骑行中车辆,无法扫码"); }; } ; Locks locks = locksMapper.selectOne(new QueryWrapper<Locks>().eq("code",code).eq("isdeleted", Constants.ZERO).last("limit 1")); MqttLog flag = deviceService.openLock(locks); MemberRidesDetailResponse memberRidesDetailResponse = new MemberRidesDetailResponse(); if(flag.getResult() == 0){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"开锁失败"); if (Objects.isNull(locks)) { throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "扫码无效,未查询到锁头信息"); } //查询锁头是否存在车辆 以及是否正常 if (!locks.getStatus().equals(Constants.ZERO)) { throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "当前扫码锁头状态错误,无法进行开锁"); } if (StringUtils.isBlank(locks.getBikeCode())) { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "当前扫码锁头无车辆信息,无法进行开锁"); } //存储骑行记录 MemberRides memberRides = new MemberRides(); memberRides.setId(Constants.getUUID()); memberRides.setIsdeleted(Constants.ZERO); memberRides.setMemberId(memberId); memberRides.setCreateDate(new Date()); memberRides.setRentSiteId(locks.getSiteId()); memberRides.setRentLockId(locks.getId()); memberRides.setOrdreId(goodsorder.getId()); memberRides.setBalance(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode())); memberRides.setStatus(Constants.MEMBER_RIDES_STATUS.LOCKING.getKey()); memberRides.setCloseStatus(Constants.ZERO); //临时使用 Bikes bikes = bikesMapper.selectById(locks.getBikeCode()); if (Objects.isNull(bikes)) { throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "未查询到自行车信息"); } memberRides.setBikeCode(bikes.getId()); memberRides.setParamId(bikes.getParamId()); memberRides.setRentSiteId(locks.getSiteId()); memberRides.setRentLockId(locks.getId()); memberRides.setRentDate(new Date()); memberRides.setBasePrice(new BigDecimal(3990L)); memberRides.setBaseTime(1800); memberRides.setUnitTime(600); memberRides.setUnitPrice(new BigDecimal(1000L)); memberRidesMapper.insert(memberRides); MemberRidesDetailResponse memberRidesDetailResponse = new MemberRidesDetailResponse(); BeanUtils.copyProperties(memberRides,memberRidesDetailResponse); return memberRidesDetailResponse; } return memberRidesDetailResponse; } @Override server/web/src/main/java/com/doumee/api/web/PaymentCallback.java
@@ -56,8 +56,7 @@ } else { // 支付失败 switch (result.getAttach()) { //家长支付订单 case "createOrder": { case "createGoodsOrder": { break; } server/web/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -72,6 +72,7 @@ map.put("/system/logout", "anon"); map.put("/common/captcha", "anon"); map.put("/web/**", "anon"); map.put("/api/wxPayNotify", "anon"); //文件上传取消拦截 map.put("/public/**", "anon"); // - 放行swagger