From b7d7bb82334af8574ad2510b9fa2220581e3f9f2 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 19 二月 2025 18:13:36 +0800
Subject: [PATCH] jtt808初始化

---
 server/platform/src/main/java/com/doumee/api/business/LocksController.java                 |    6 +++
 server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java                    |   36 ++++++++++++++++++
 server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java |   12 +++---
 server/services/src/main/java/com/doumee/dao/business/model/Bikes.java                     |    6 ++
 server/services/src/main/java/com/doumee/core/constants/Constants.java                     |    1 
 server/services/src/main/java/com/doumee/service/business/LocksService.java                |    3 +
 server/services/src/main/java/com/doumee/service/business/impl/LocksServiceImpl.java       |   33 ++++++++++++++++
 7 files changed, 90 insertions(+), 7 deletions(-)

diff --git a/server/platform/src/main/java/com/doumee/api/business/LocksController.java b/server/platform/src/main/java/com/doumee/api/business/LocksController.java
index 92cf29a..1e399eb 100644
--- a/server/platform/src/main/java/com/doumee/api/business/LocksController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/LocksController.java
@@ -8,6 +8,7 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Bikes;
 import com.doumee.dao.business.model.Locks;
 import com.doumee.service.business.DeviceService;
 import com.doumee.service.business.LocksService;
@@ -119,4 +120,9 @@
         locks.setSiteId(siteId);
         return ApiResponse.success(locksService.findLockBase64List(locks));
     }
+    @ApiOperation("鑾峰彇鐢佃溅灏忕▼搴忎簩缁寸爜")
+    @GetMapping("/findBikeBase")
+    public ApiResponse<Bikes> findBikeBase(@RequestParam String bikeId){
+        return ApiResponse.success(locksService.findBikeBase(bikeId));
+    }
 }
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 9ca52dd..2e621be 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
@@ -52,6 +52,7 @@
     public static final String HEART_TIME_EXPIRE_TIME ="HEART_TIME_EXPIRE_TIME" ;
     public static final String PARK_LAT_LNG_LIST = "PARK_LAT_LNG_LIST";
     public static final String LOW_BIKE_VOLTAGE ="LOW_BIKE_VOLTAGE" ;
+    public static final String EBIKE_PREFIX ="ebike-" ;
     public static String REDIS_DEBUG_STR="test_";
     public static final String AD = "AD";
     public static String REPAIR = "REPAIR";
diff --git a/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java b/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
index 68410dc..3800317 100644
--- a/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
+++ b/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
@@ -11,6 +11,7 @@
 import com.doumee.core.utils.ImageDesignerUtil;
 import com.doumee.dao.business.RefundMapper;
 import com.doumee.dao.business.TransactionsMapper;
+import com.doumee.dao.business.model.Bikes;
 import com.doumee.dao.business.model.Locks;
 import com.doumee.dao.business.model.Refund;
 import com.doumee.dao.business.model.Transactions;
@@ -290,6 +291,41 @@
             e.printStackTrace();
         }
     }
+    public void generateEbikeWXMiniCode(Bikes bikes, String token, String prePath, String path){
+        if(Objects.isNull(token)){
+            return;
+        }
+         String url =  "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+ token;
+        String release =   systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.MINI_PROGRAMME_REALEASE).getCode();
+        //鐢熸垚鍥剧墖涓婁紶OSS
+        Map<String,Object> body = new HashMap<>();
+        // 鍦烘櫙鐮侊紝涓庡墠绔害瀹氾紝鏈�缁堟槸闇�瑕佸墠绔В鏋�
+        body.put("scene",  Constants.EBIKE_PREFIX +bikes.getCode() );
+        // 姝e紡鐗堜负 "release"锛屼綋楠岀増涓� "trial"锛屽紑鍙戠増涓� "develop"銆傞粯璁ゆ槸姝e紡鐗堛��
+//        body.put("env_version", "release");
+        body.put("env_version", StringUtils.defaultString(release, "release"));
+        // 閫忔槑锛屾牴鎹綘鐨勫満鏅嚜琛岃缃産ody鍙傛暟
+        body.put("is_hyaline", false);
+        body.put("check_path", false);
+        body.put("width", 290);
+        body.put("page","pages/index/index");
+        log.info("=========================================="+url+"\n"+JSONObject.toJSONString(body));
+        try {
+            InputStream inputStream  =HttpsUtil.postJson(url,JSONObject.toJSONString(body));;
+            if (inputStream !=null) {
+                String nowDate = DateUtil.getNowShortDate();
+                String name =Constants.EBIKE_PREFIX+bikes.getCode()+"-"+nowDate+".png";
+                String fileName =prePath+path+"/"+name;
+//                File file = new File(prePath+path,locks.getSiteId()+"-"+locks.getCode()+"-"+nowDate+".png");
+//                FileUtils.copyInputStreamToFile(inputStream,file);
+                if(ImageDesignerUtil.graphicsGenerationIs(bikes.getCode(),inputStream,fileName)){
+                    bikes.setImgurl(name);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
     /**
      * 鐢熸垚灏忕▼搴忕爜
      * https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/qr-code/getUnlimitedQRCode.html
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Bikes.java b/server/services/src/main/java/com/doumee/dao/business/model/Bikes.java
index c9417fc..9a59e62 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Bikes.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Bikes.java
@@ -129,6 +129,10 @@
     @ApiModelProperty(value = "鏄惁浣庣數閲� 0鍚� 1鏄�")
     @TableField(exist = false )
     private Integer lowVoltage;
+    @ApiModelProperty(value = "寮哄埗杩樿溅缁撴灉澶囨敞")
+    @ExcelColumn(name="寮哄埗杩樿溅缁撴灉澶囨敞")
+    private String forceBackInfo;
 
-
+    @ApiModelProperty(value = "灏忕▼搴忕爜")
+    private String imgurl;
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/LocksService.java b/server/services/src/main/java/com/doumee/service/business/LocksService.java
index caf2c5a..4056db7 100644
--- a/server/services/src/main/java/com/doumee/service/business/LocksService.java
+++ b/server/services/src/main/java/com/doumee/service/business/LocksService.java
@@ -2,6 +2,7 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Bikes;
 import com.doumee.dao.business.model.Locks;
 
 import javax.servlet.http.HttpServletResponse;
@@ -107,4 +108,6 @@
     long count(Locks locks);
 
     void exportImages(String siteid, HttpServletResponse response);
+
+    Bikes findBikeBase(String bikeId);
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/LocksServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/LocksServiceImpl.java
index 63c8345..fccf2b8 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/LocksServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/LocksServiceImpl.java
@@ -3,6 +3,7 @@
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.wx.WxMiniConfig;
+import com.doumee.dao.business.BikesMapper;
 import com.google.common.collect.Lists;
 
 import com.doumee.biz.system.SystemDictDataBiz;
@@ -67,6 +68,8 @@
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private BikesMapper bikesMapper;
 
     @Override
     public String create(Locks locks) {
@@ -155,6 +158,36 @@
         }
         return new ArrayList<>();
     }
+    @Override
+    public    Bikes findBikeBase(String bikeId) {
+        Locks re = new Locks();
+        LoginUserInfo loginUserInfo =  (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String fullPath = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.FILE_DIR).getCode() +
+                systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROJECTS).getCode() ;
+
+       Bikes bikes = bikesMapper.selectById(bikeId);
+       if(bikes == null){
+           throw new BusinessException(ResponseStatus.DATA_EMPTY);
+       }
+        String code = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
+        String prePath = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.IMG_DIR).getCode();
+            // 妫�鏌ユ槸鍚︽湁鍥剧墖淇℃伅娌℃湁鏇存柊淇濆瓨鍥剧墖
+        if (StringUtils.isBlank(bikes.getImgurl())){
+            try {
+                wxMiniUtilService.generateEbikeWXMiniCode(bikes, WxMiniConfig.wxMaService.getAccessToken(),prePath,code);
+            }catch (Exception e){
+            }
+            if (StringUtils.isNotBlank(bikes.getImgurl())){
+                bikes.setEditor(loginUserInfo.getId());
+                bikes.setEditDate(new Date());
+                bikesMapper.updateById(bikes);
+            }
+        }
+        if (StringUtils.isNotBlank(bikes.getImgurl())){
+            bikes.setImgurl(fullPath+bikes.getInfo());
+        }
+        return bikes;
+    }
 
 
     @Override
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 c7a2291..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
@@ -392,14 +392,14 @@
                 bike.setLastBackDate(model.getRentDate());
                 bike.setStatus(Constants.ZERO);
                 bike.setType(Constants.ZERO);
-                bike.setInfo("寮哄埗杩樿溅缁戝畾");
+                bike.setForceBackInfo("寮哄埗杩樿溅缁戝畾");
                 bikesMapper.insert(bike);
             }
         }else{
             //濡傛灉鏄數杞︼紝璇锋眰web绔帴鍙e叧闂溅杈嗕俊鎭�
             bike =   sendCloseElecBikeRequest(memberRides.getBikeCode(),Constants.ONE);
         }
-        logInfo = bike!=null?bike.getInfo():null;
+        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());
         //璁$畻楠戣璁¤垂鏃堕暱
@@ -446,7 +446,7 @@
         if(bike == null){
             return null;
         }
-        bike.setInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣澶辫触锛�");
+        bike.setForceBackInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣澶辫触锛�");
         if(StringUtils.isNotBlank(bike.getDeviceSn())){
             try {
                 //璇锋眰鍦板潃
@@ -458,15 +458,15 @@
                 JSONObject json = JSONObject.parseObject(res);
                 if(json.get("code").equals("200")){
                     //鍙戣捣鎸囦护鎴愬姛
-                    bike.setInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣鎴愬姛锛�");
+                    bike.setForceBackInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣鎴愬姛锛�");
                 }else{
-                    bike.setInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣澶辫触锛�"+json.get("msg"));
+                    bike.setForceBackInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣澶辫触锛�"+json.get("msg"));
                 }
             }catch (Exception e){
                 e.printStackTrace();
             }
         }else{
-            bike.setInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣澶辫触,鏈粦瀹氭帶鍒跺櫒sn锛�");
+            bike.setForceBackInfo("寮哄埗杩樿溅鍏抽棴杞﹂攣澶辫触,鏈粦瀹氭帶鍒跺櫒sn锛�");
         }
         bikesMapper.updateById(bike);
         return bike;

--
Gitblit v1.9.3