Browse Source

申请应用

wangtao 3 năm trước cách đây
mục cha
commit
17cd899884

+ 1 - 1
lb-app/src/main/java/com/ydd/app/service/ApiDevelopService.java

@@ -36,7 +36,7 @@ public interface ApiDevelopService {
 
     ResponseResult audit( DevelopAuditDto developAuditDto);
 
-    ResponseResult online( DevelopAuditDto developAuditDto);
+    //ResponseResult online( DevelopAuditDto developAuditDto);
 
     ResponseResult refreshToken(String refreshToken);
 

+ 28 - 24
lb-app/src/main/java/com/ydd/app/service/impl/ApiDevelopServiceImpl.java

@@ -108,7 +108,7 @@ public class ApiDevelopServiceImpl implements ApiDevelopService {
         member = new Member();
         member.setMobile(merchantDto.getUserAccount());
         member.setNickname(merchantDto.getUserAccount());
-        member.setStatus(Constants.DISABLE);
+        member.setStatus(Constants.NORMAL);
         member.setAliasId(UUID.fastUUID().toString().replaceAll("-", ""));
         if (StringUtils.isNotBlank(merchantDto.getPassword())) {
             member.setPassword(Md5Utils.hash(merchantDto.getPassword()));
@@ -135,11 +135,12 @@ public class ApiDevelopServiceImpl implements ApiDevelopService {
     @Override
     public ResponseResult audit(DevelopAuditDto developAuditDto) {
         Merchant merchant = iMerchantService.getById(developAuditDto.getMerchantId());
-        Member member = iMemberService.getOne(new QueryWrapper<Member>().eq("member_type",2).eq("merchant_id",developAuditDto.getMerchantId()));
+        Member member = iMemberService.getOne(new QueryWrapper<Member>().eq("member_type", 2).eq("merchant_id", developAuditDto.getMerchantId()));
         if (StatusEnum.SHOW.status.equals(developAuditDto.getStatus())) {
             merchant.setStatus(2);
             try {
                 AppInfo appInfo_dev = new AppInfo();
+                appInfo_dev.setName(merchant.getMerchantName());
                 appInfo_dev.setSandbox(0);
                 appInfo_dev.setStartTime(DateUtils.parseDate(developAuditDto.getStartTime()));
                 appInfo_dev.setEndTime(DateUtils.parseDate(developAuditDto.getEndTime()));
@@ -147,10 +148,10 @@ public class ApiDevelopServiceImpl implements ApiDevelopService {
                 iAppInfoService.createAppInfo(appInfo_dev);
                 AppInfoToken token_dev = new AppInfoToken();
                 token_dev.setAppId(appInfo_dev.getAppId());
-                token_dev.setToken( Md5Utils.hash(member.getId().toString()));
+                token_dev.setToken(Md5Utils.hash(member.getId().toString()));
                 token_dev.setMemberId(member.getId());
-                token_dev.setRefreshToken( Md5Utils.hash(merchant.getId().toString()));
-                token_dev.setExpiresTime(DateUtils.addDays(new Date(),30));
+                token_dev.setRefreshToken(Md5Utils.hash(merchant.getId().toString()));
+                token_dev.setExpiresTime(DateUtils.addDays(new Date(), 30));
                 iAppInfoTokenService.save(token_dev);
 
             } catch (Exception e) {
@@ -161,47 +162,51 @@ public class ApiDevelopServiceImpl implements ApiDevelopService {
             merchant.setStatus(StatusEnum.STOP.status);
         }
         iMerchantService.updateById(merchant);
+        online(developAuditDto,member,merchant);
         return ResponseResult.success();
     }
 
-    @Override
-    public ResponseResult online(DevelopAuditDto developAuditDto) {
-        Member member = iMemberService.getOne(new QueryWrapper<Member>().eq("member_type",2).eq("merchant_id",developAuditDto.getMerchantId()));
+
+    public ResponseResult online(DevelopAuditDto developAuditDto, Member member,Merchant merchant ) {
+
         AppInfo appInfo_pro = new AppInfo();
+        appInfo_pro.setName(merchant.getMerchantName());
         appInfo_pro.setSandbox(1);
         appInfo_pro.setStartTime(DateUtils.parseDate(developAuditDto.getStartTime()));
         appInfo_pro.setEndTime(DateUtils.parseDate(developAuditDto.getEndTime()));
         appInfo_pro.setEarnestMoney(developAuditDto.getEarnestMoney());
+        appInfo_pro.setMerchantId(merchant.getId());
         try {
             iAppInfoService.createAppInfo(appInfo_pro);
-        }catch (Exception e){
+        } catch (Exception e) {
 
         }
         AppInfoToken token_pro = new AppInfoToken();
         token_pro.setAppId(appInfo_pro.getAppId());
-        token_pro.setToken( Md5Utils.hash(member.getId().toString()));
+        token_pro.setToken(Md5Utils.hash(member.getId().toString()));
         token_pro.setMemberId(member.getId());
-        token_pro.setRefreshToken( Md5Utils.hash(appInfo_pro.getId().toString()));
-        token_pro.setExpiresTime(DateUtils.addDays(new Date(),30));
+        token_pro.setRefreshToken(Md5Utils.hash(appInfo_pro.getId().toString()));
+        token_pro.setExpiresTime(DateUtils.addDays(new Date(), 30));
         iAppInfoTokenService.save(token_pro);
+
         tokenService.setMemberToken(token_pro.getToken(), member.getId());
         redisCache.setCacheObject(Constants.APP_REFRESH_TOKEN_KEY + token_pro.getRefreshToken(), member.getId(), 30, TimeUnit.DAYS);
         return ResponseResult.success();
     }
 
     @Override
-    public  ResponseResult refreshToken(String refreshToken){
-        Long memberId =  redisCache.getCacheObject(Constants.APP_REFRESH_TOKEN_KEY + refreshToken);
+    public ResponseResult refreshToken(String refreshToken) {
+        Long memberId = redisCache.getCacheObject(Constants.APP_REFRESH_TOKEN_KEY + refreshToken);
         if (memberId == null) {
             return ResponseResult.error(ResponseResultCodeEnum.REFRESH_TOKEN_INVALID);
         }
-        AppInfoToken token = iAppInfoTokenService.getOne(new QueryWrapper<AppInfoToken>().eq("refresh_token",refreshToken));
+        AppInfoToken token = iAppInfoTokenService.getOne(new QueryWrapper<AppInfoToken>().eq("refresh_token", refreshToken));
         if (token == null) {
             return ResponseResult.error(ResponseResultCodeEnum.REFRESH_TOKEN_INVALID);
         }
-        token.setToken( Md5Utils.hash(memberId.toString()));
-        token.setRefreshToken( Md5Utils.hash(token.getId().toString()));
-        token.setExpiresTime(DateUtils.addDays(new Date(),30));
+        token.setToken(Md5Utils.hash(memberId.toString()));
+        token.setRefreshToken(Md5Utils.hash(token.getId().toString()));
+        token.setExpiresTime(DateUtils.addDays(new Date(), 30));
         iAppInfoTokenService.updateById(token);
         redisCache.deleteObject(Constants.APP_REFRESH_TOKEN_KEY + token.getRefreshToken());
         redisCache.setCacheObject(Constants.APP_REFRESH_TOKEN_KEY + token.getRefreshToken(), memberId, 30, TimeUnit.DAYS);
@@ -259,14 +264,13 @@ public class ApiDevelopServiceImpl implements ApiDevelopService {
 
     @Override
     public ResponseResult appSecretInfo(Long loginId) {
-        ResponseResult result = appInfoJudge(loginId);
-        if (result.getCode() != ResponseResultCodeEnum.SUCCESS.getCode()) {
-            return result;
+        Member member = iMemberService.getById(loginId);
+        if (Objects.isNull(member)) {
+            return ResponseResult.error(ResponseResultCodeEnum.REFRESH_TOKEN_INVALID);
         }
 
-        AppInfo appInfo = (AppInfo) result.getData();
-
-        List<AppInfo> appInfoList = iAppInfoService.list(new QueryWrapper<AppInfo>().eq("deleted", 0).eq("name", appInfo.getName()));
+        Merchant merchant = iMerchantService.getById(member.getMerchantId());
+        List<AppInfo> appInfoList = iAppInfoService.list(new QueryWrapper<AppInfo>().eq("deleted", 0).eq("merchant_id", merchant.getId()));
         return ResponseResult.success(appInfoList);
     }
 

+ 6 - 3
lb-app/src/main/java/com/ydd/app/service/impl/ApiOrderBackServiceImpl.java

@@ -51,6 +51,7 @@ import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 /**
  * 订单回调实现类
@@ -229,9 +230,11 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
                         if (orderDeliverys.size() > 0) {
                             return;
                         }*/
-                        int count = iOrderDeliveryService.count(new QueryWrapper<OrderDelivery>().eq("order_sn", order.getOrderSn())
-                                .ne("delivery_status", DeliveryStatusEnum.CANCEL.status).ne("out_trade_no", -1));
-                        if (count > 0 ) {
+                        List<OrderDelivery> list = iOrderDeliveryService.getDeliveryInfo(order.getOrderSn());
+                        list = list.stream().filter(item -> item.getDeliveryStatus()!=-1 && !"-1".equals(item.getOutTradeNo())).collect(Collectors.toList());
+//                        int count = iOrderDeliveryService.count(new QueryWrapper<OrderDelivery>().eq("order_sn", order.getOrderSn())
+//                                .ne("delivery_status", DeliveryStatusEnum.CANCEL.status).ne("out_trade_no", -1));
+                        if (list.size() > 0 ) {
                             return;
                         }
                     }

+ 32 - 5
lb-app/src/main/java/com/ydd/app/service/impl/ApiWaimaiServiceImpl.java

@@ -327,7 +327,7 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
             }
             String recipientAddressDesensitization = orderVo.getRecipientAddressDesensitization();
             String recipientAddress = orderVo.getRecipientAddress();
-            if(!recipientAddressDesensitization.contains("到店自取")){
+            if(StringUtils.isNotBlank(recipientAddressDesensitization)&&!recipientAddressDesensitization.contains("到店自取")){
                 ResObject<String> res = meituanClient.getRealRecipientAddress(shopWaimai.getAuthToken(), orderVo.getOrderId());
                 if (res.getCode() == 0) {
                     recipientAddress = res.getData();
@@ -450,6 +450,16 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
             if (StringUtils.isNotBlank(remark) && remark.contains("[预")) {
                 remark = remark.substring(remark.indexOf("[预"), remark.indexOf("[预") + 8) + "****" + remark.substring(remark.indexOf("[预") + 12, remark.length());
             }
+            if(StringUtils.isNotBlank( orderVo.getBackupRecipientPhone())){
+                try {
+                    List<String> backlist = JSONObject.parseArray(URLDecoder.decode(orderVo.getBackupRecipientPhone(), "utf-8"), String.class);
+                    if(CollectionUtils.isNotEmpty(backlist)){
+                        remark = remark + ",备用号码:" + backlist.get(0);
+                    }
+                }catch (Exception e){
+                    log.error("获取备用号码报错");
+                }
+            }
             waimaiOrder.setCaution(remark);
 //            Map<String, Double> map = AddressLngLatExchanger.addressToLngAndLag(recipientAddress);
 //
@@ -529,7 +539,11 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
             } catch (Exception e) {
                 log.error("推送外卖订单消息异常,订单号:" + waimaiOrder.getOutOrderId());
             }
-
+            Map<String, Object> params = new HashMap<>();
+            if(orderVo.getTotalWeight()!=null){
+                params.put("totalWeight",orderVo.getTotalWeight());
+                waimaiOrder.setParams(params);
+            }
             //产生配送订单
             addOrder(shop, waimaiOrder, waimai, SnCodeUtils.createSn());
 
@@ -610,7 +624,15 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
             } else {
                 order.setProductName("其他");
             }
-            order.setWeight(1);
+            Map<String, Object> params = waimaiOrder.getParams();
+            if(params!=null&&params.get("totalWeight")!=null){
+                order.setWeight(new  BigDecimal(params.get("totalWeight")+"").divide(new BigDecimal("1000")).setScale(0,BigDecimal.ROUND_HALF_UP).intValue());
+                if(order.getWeight()==0){
+                    order.setWeight(1);
+                }
+            }else{
+                order.setWeight(1);
+            }
             order.setDeleted(0);
             Merchant merchant = iMerchantService.getById(shop.getMerchantId());
             // 达达配送商
@@ -1275,7 +1297,7 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
                 waimaiOrder.setPickType(Integer.valueOf(data.getOrder().getBusiness_type()));
             }
             iWaimaiOrderService.save(waimaiOrder);
-
+            int totalWeight=0;
             //记录商品详情
             List<WaimaiOrderDetail> detailList = new ArrayList<>();
             if (data.getProducts() != null && data.getProducts().length > 0) {
@@ -1293,7 +1315,7 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
                         OrderGetProductFeatures[] product_features = product[j].getProduct_features();
                         OrderGetProductAttr[] attrs = product[j].getProduct_attr();
                         OrderGetProductProperties[] properties = product[j].getProperties();
-
+                        totalWeight += product[j].getTotal_weight().intValue();
                         if (product_features != null && product_features.length > 0) {
                             StringBuilder sb = new StringBuilder();
                             for (int k = 0; k < product_features.length; k++) {
@@ -1333,6 +1355,11 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
                         detailList.add(detail);
                         //   iWaimaiOrderDetailService.save(detail);
                     }
+                    Map<String, Object> params = new HashMap<>();
+                    if(totalWeight>0){
+                        params.put("totalWeight",totalWeight);
+                        waimaiOrder.setParams(params);
+                    }
                     iWaimaiOrderDetailService.saveBatch(detailList);
                 }
 

+ 11 - 0
lb-app/src/main/java/com/ydd/app/service/impl/MeiTuanSgConvertPrint.java

@@ -1,5 +1,7 @@
 package com.ydd.app.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.ydd.common.utils.StringUtils;
 import com.ydd.third.common.utils.DateUtils;
 import com.ydd.third.common.vo.waimai.MeituanSgOrderResultVo;
 import com.ydd.third.print.request.PrintOrderActDto;
@@ -72,6 +74,15 @@ public class MeiTuanSgConvertPrint {
         }else {
             dto.setCaution(URLDecoder.decode(orderVo.getCaution(), "Utf-8"));
         }
+        if (StringUtils.isNotBlank(orderVo.getBackupRecipientPhone())) {
+            try {
+                List<String> backlist = JSONObject.parseArray(URLDecoder.decode(orderVo.getBackupRecipientPhone(), "utf-8"), String.class);
+                if(CollectionUtils.isNotEmpty(backlist)){
+                    dto.setCaution(dto.getCaution() + ",备用号码:" + backlist.get(0));
+                }
+            } catch (Exception e) {
+            }
+        }
 //        if (!orderVo.getLogisticsCode().equals("0000") && !orderVo.getLogisticsCode().equals("5001") && !orderVo.getLogisticsCode().equals("00009003")){
 ////            String addRess = orderVo.getRecipientAddressDesensitization().replaceAll("\\d+", "*");
 //            dto.setRecipientAddress(orderVo.getRecipientAddressDesensitization());

+ 1 - 0
lb-module/src/main/java/com/ydd/module/domain/AppInfo.java

@@ -83,4 +83,5 @@ public class AppInfo implements Serializable {
     private Date endTime;
     private BigDecimal earnestMoney;
 
+    private Long merchantId;
 }