From dfafe88917bd344d570277f14b7ea7bf03fa93d4 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 19 二月 2025 18:33:41 +0800 Subject: [PATCH] jtt808初始化 --- server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java | 114 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 90 insertions(+), 24 deletions(-) diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java index b6147fa..3dff2f5 100644 --- a/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java +++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java @@ -13,6 +13,8 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.DateUtil; +import com.doumee.core.utils.HttpsUtil; +import com.doumee.core.utils.StringTools; import com.doumee.core.utils.Utils; import com.doumee.dao.business.ActionLogMapper; import com.doumee.dao.business.BikesMapper; @@ -244,6 +246,8 @@ Arrays.asList(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey(),Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey())); queryWrapper .selectAs(MemberRides::getId,MemberRidesDTO::getId) + .selectAs(MemberRides::getDiscountPrice,MemberRidesDTO::getDiscountPrice) + .selectAs(MemberRides::getType,MemberRidesDTO::getType) .selectAs(Member::getOpenid,MemberRidesDTO::getOpenid) .selectAs(MemberRides::getBikeCode,MemberRidesDTO::getBikeCode) .selectAs(MemberRides::getCloseStatus,MemberRidesDTO::getCloseStatus) @@ -369,8 +373,33 @@ update.setBackUserid(user.getId()); update.setBackType(Constants.ONE); update.setStatus(Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey()); - update.setBackSiteId(collect.get(Constants.FORCE_BACK_SITE).getCode()); - update.setBackLockId(Constants.formatIntegerFromStr(collect.get(Constants.FORCE_BACK_LOCK).getCode())); + String logInfo = null; + Bikes bike =null; + if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ + //濡傛灉鏄嚜琛岃溅锛岀粦瀹氬埌铏氭嫙绔欑偣鍜岄攣澶� + update.setBackSiteId(collect.get(Constants.FORCE_BACK_SITE).getCode()); + update.setBackLockId(Constants.formatIntegerFromStr(collect.get(Constants.FORCE_BACK_LOCK).getCode())); + //鎻掑叆铏氭嫙閿佸ご鍜岀珯鐐逛笂------- + bike = new Bikes(); + bike.setIsdeleted(Constants.ZERO); + bike.setCode(model.getBikeCode()); + bike.setType(model.getType()); + bike.setSiteId(update.getBackSiteId()); + bike.setLockId(update.getBackLockId()); + if(bikesMapper.selectCount(new QueryWrapper<>(bike)) == 0){ + bike.setId(Constants.getUUID()); + bike.setParamId(model.getParamId()); + bike.setLastBackDate(model.getRentDate()); + bike.setStatus(Constants.ZERO); + bike.setType(Constants.ZERO); + bike.setForceBackInfo("寮哄埗杩樿溅缁戝畾"); + bikesMapper.insert(bike); + } + }else{ + //濡傛灉鏄數杞︼紝璇锋眰web绔帴鍙e叧闂溅杈嗕俊鎭� + bike = sendCloseElecBikeRequest(memberRides.getBikeCode(),Constants.ONE); + } + logInfo = bike!=null?bike.getForceBackInfo():null; Integer freeRentTime = Integer.valueOf(collect.get(Constants.FREE_RENT_TIME).getCode()); Integer rideTime = DateUtil.betweenMin(model.getRentDate(), update.getBackDate()); //璁$畻楠戣璁¤垂鏃堕暱 @@ -381,21 +410,6 @@ String beforeContent = JSONObject.toJSONString(model); //淇敼鍚� String after = JSONObject.toJSONString(update); - - //鎻掑叆铏氭嫙閿佸ご鍜岀珯鐐逛笂------- - Bikes bike = new Bikes(); - bike.setIsdeleted(Constants.ZERO); - bike.setCode(model.getBikeCode()); - bike.setSiteId(update.getBackSiteId()); - bike.setLockId(update.getBackLockId()); - if(bikesMapper.selectCount(new QueryWrapper<>(bike)) == 0){ - bike.setId(Constants.getUUID()); - bike.setParamId(model.getParamId()); - bike.setLastBackDate(model.getRentDate()); - bike.setStatus(Constants.ZERO); - bike.setInfo("寮哄埗杩樿溅缁戝畾"); - bikesMapper.insert(bike); - } ActionLog log = new ActionLog(); log.setId(Constants.getUUID()); @@ -410,6 +424,7 @@ log.setObjType(Constants.ActionLogObjType.memberrides); log.setResult(Constants.ZERO); log.setObjId(model.getId()); + log.setInfo(logInfo); log.setType(Constants.ACTIONLOG_TYPE.FORCE_BACK.getKey()); log.setContent(Constants.ACTIONLOG_TYPE.FORCE_BACK.getInfo()); log.setTitle(Constants.ACTIONLOG_TYPE.FORCE_BACK.getName()); @@ -419,7 +434,52 @@ actionLogMapper.insert(log); } + /** + * 濡傛灉鏄數杞︼紝璇锋眰web绔帴鍙e叧闂溅杈嗕俊鎭� + */ + private Bikes sendCloseElecBikeRequest(String bikeCode,int type) { + Bikes bike = bikesMapper.selectOne(new QueryWrapper<Bikes>().lambda() + .eq(Bikes::getType,Constants.ONE) + .eq(Bikes::getIsdeleted,Constants.ZERO) + .eq(Bikes::getCode,bikeCode) + ); + if(bike == null){ + return null; + } + bike.setForceBackInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣澶辫触锛�"); + if(StringUtils.isNotBlank(bike.getDeviceSn())){ + try { + //璇锋眰鍦板潃 + String url = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ELEC_BIKE_CONTRIL_API_URL).getCode(); + JSONObject param = new JSONObject(); + param.put("clientId",StringTools.leftTrip(bike.getDeviceSn(),'0')); + param.put("type",type);//0寮�閿� 1鍏抽攣 + String res = HttpsUtil.postJsonString(url,param.toJSONString()); + JSONObject json = JSONObject.parseObject(res); + if(json.get("code").equals("200")){ + //鍙戣捣鎸囦护鎴愬姛 + bike.setForceBackInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣鎴愬姛锛�"); + }else{ + bike.setForceBackInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣澶辫触锛�"+json.get("msg")); + } + }catch (Exception e){ + e.printStackTrace(); + } + }else{ + bike.setForceBackInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣澶辫触,鏈粦瀹氭帶鍒跺櫒sn锛�"); + } + bikesMapper.updateById(bike); + return bike; + } + public static void main(String[] args) { + String url = "http://localhost:10025/jtt808/device/8500"; + JSONObject param = new JSONObject(); + param.put("clientId",StringTools.leftTrip("0067244400211",'0')); + param.put("type",0);//0寮�閿� 1鍏抽攣 + String res = HttpsUtil.postJsonString(url,param.toJSONString()); + System.out.println(res); + } public ConcurrentMap<String,Integer> cacheOpenLock = new ConcurrentReferenceHashMap<>(); @Override @@ -477,6 +537,7 @@ locks =new Locks(); locks.setCode(Constants.formatIntegerFromStr(codes[1])); locks.setSiteId(codes[0]); + locks.setId(codes[1]); deviceService.getLockInfo(locks); throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "褰撳墠杞﹁締鏆傛椂鏃犳硶浣跨敤锛岃绋嶅悗閲嶈瘯鎴栨洿鎹㈠叾瀹冭溅杈嗭紒"); } @@ -495,10 +556,10 @@ memberRides.setRentLockId(locks.getCode()); memberRides.setOrdreId(goodsorder.getId()); memberRides.setRentDate(new Date()); + memberRides.setType(Constants.ZERO); 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); - memberRidesMapper.insert(memberRides); BeanUtils.copyProperties(memberRides, memberRidesDetailResponse); }else{ @@ -604,7 +665,7 @@ //杞﹁締璁板綍 Bikes bikes = dealBikesByParam(model); //鐘舵�侊紝0闂悎, 1鎵撳紑锛�2杩愯涓�, 3寮傚父 - if(locks.getStatus() == Constants.LockStatus.open){ + if(Constants.formatIntegerNum(locks.getStatus()) == Constants.LockStatus.open){ //濡傛灉鏄紑閿佷笟鍔★紝鍒ゆ柇鏄惁鏈夊紑閿佷腑鐨勪俊鎭� MemberRides memberRides = new MemberRides(); memberRides.setStatus(Constants.MEMBER_RIDES_STATUS.LOCKING.getKey()); @@ -621,7 +682,7 @@ update.setId(memberRides.getId()); //锛堟洿鏂拌姹傚紑閿佷腑鐨勯攣澶村叧鑱旂殑楠戣璁板綍锛� memberRidesMapper.updateById( update); - }else if(locks.getStatus() == Constants.LockStatus.closed ){ + }else if(Constants.formatIntegerNum(locks.getStatus()) == Constants.LockStatus.closed ){ //濡傛灉鏄叧閿佷笟鍔★紝鍒ゆ柇瑙﹀彂杩樿溅 if(StringUtils.isNotBlank(locks.getBikeCode())){ MemberRides mbikes = new MemberRides(); @@ -657,6 +718,10 @@ @Override public void autoRefreshLockStatus() { +// memberRidesMapper.update(null,new UpdateWrapper<MemberRides>().lambda() +// .eq(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.LOCKING.getKey()) +// .apply("" ) +// .set(MemberRides::getStatus, Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey())) QueryWrapper<MemberRides> wrapper = new QueryWrapper<>(); wrapper.lambda() @@ -665,10 +730,10 @@ List<MemberRides> memberRides = memberRidesMapper.selectList(wrapper); if (!CollectionUtils.isEmpty(memberRides)){ memberRides.forEach(s->{ - Integer between = DateUtil.between(s.getCreateDate(), new Date()); - // 澶т簬闃堝�� - if (between >= 2){ - s.setStatus(Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey()); + Integer between = DateUtil.betweenSeconds(s.getCreateDate(), new Date()); + // 澶т簬闃堝��,鑷姩璁句负寮�閿佹垚鍔燂紙濡傚疄闄呮湭寮�閿侊紝鑱旂郴绔欑偣绠$悊鍛樺悗鍙拌繘琛屽己鍒惰繕杞︽搷浣滐級 + if (between >= 20){ + s.setStatus(Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey()); s.setEditDate(new Date()); memberRidesMapper.updateById(s); } @@ -712,6 +777,7 @@ bikes.setEditDate(bikes.getCreateDate()); bikes.setSiteId(model.getSiteId()); bikes.setLockId(model.getCode()); + bikes.setType(Constants.ZERO); bikes.setCode(model.getBikeCode()); bikes.setParamId(getBileTypeByCode(model.getBikeCode())); bikesMapper.insert(bikes); -- Gitblit v1.9.3