Browse Source

同步新代码

wangtao 3 năm trước cách đây
mục cha
commit
da56b4105f
35 tập tin đã thay đổi với 1115 bổ sung101 xóa
  1. 1 1
      lb-app/src/main/java/com/ydd/app/OrderEntityUtils.java
  2. 59 0
      lb-app/src/main/java/com/ydd/app/controller/DevelopmentApi.java
  3. 1 0
      lb-app/src/main/java/com/ydd/app/controller/MemberApi.java
  4. 32 0
      lb-app/src/main/java/com/ydd/app/dto/AppTokenDto.java
  5. 39 0
      lb-app/src/main/java/com/ydd/app/dto/DevelopAuditDto.java
  6. 139 0
      lb-app/src/main/java/com/ydd/app/dto/DevelopMerchantDto.java
  7. 2 0
      lb-app/src/main/java/com/ydd/app/dto/MerchantDto.java
  8. 4 0
      lb-app/src/main/java/com/ydd/app/dto/StoreStatusDto.java
  9. 2 1
      lb-app/src/main/java/com/ydd/app/interceptor/AuthorizationInterceptor.java
  10. 41 0
      lb-app/src/main/java/com/ydd/app/service/ApiDevelopService.java
  11. 216 0
      lb-app/src/main/java/com/ydd/app/service/impl/ApiDevelopServiceImpl.java
  12. 3 23
      lb-app/src/main/java/com/ydd/app/service/impl/ApiMerchantServiceImpl.java
  13. 72 0
      lb-app/src/main/java/com/ydd/app/service/impl/ApiMerchantShopAsynServiceImpl.java
  14. 9 5
      lb-app/src/main/java/com/ydd/app/service/impl/ApiOrderBackServiceImpl.java
  15. 3 0
      lb-app/src/main/java/com/ydd/app/service/impl/ApiOrderNewServiceImpl.java
  16. 22 10
      lb-app/src/main/java/com/ydd/app/service/impl/ApiOrderServiceImpl.java
  17. 62 33
      lb-app/src/main/java/com/ydd/app/service/impl/ApiOrderValuationServiceImpl.java
  18. 29 16
      lb-app/src/main/java/com/ydd/app/service/impl/ApiWaimaiServiceImpl.java
  19. 12 1
      lb-app/src/main/java/com/ydd/app/service/impl/OpenApiOrderValuationServiceImpl.java
  20. 1 1
      lb-common/src/main/java/com/ydd/common/constant/Constants.java
  21. 2 1
      lb-common/src/main/java/com/ydd/common/enums/ResponseResultCodeEnum.java
  22. 29 8
      lb-module/src/main/java/com/ydd/module/domain/AppInfo.java
  23. 74 0
      lb-module/src/main/java/com/ydd/module/domain/AppInfoToken.java
  24. 64 0
      lb-module/src/main/java/com/ydd/module/domain/DspDeliveryUu.java
  25. 2 0
      lb-module/src/main/java/com/ydd/module/domain/Merchant.java
  26. 14 0
      lb-module/src/main/java/com/ydd/module/mapper/AppInfoTokenMapper.java
  27. 14 0
      lb-module/src/main/java/com/ydd/module/mapper/DspDeliveryUuMapper.java
  28. 21 0
      lb-module/src/main/java/com/ydd/module/service/IAppInfoTokenService.java
  29. 22 0
      lb-module/src/main/java/com/ydd/module/service/IDspDeliveryUuService.java
  30. 44 0
      lb-module/src/main/java/com/ydd/module/service/impl/AppInfoTokenServiceImpl.java
  31. 37 0
      lb-module/src/main/java/com/ydd/module/service/impl/DspDeliveryUuServiceImpl.java
  32. 17 0
      lb-module/src/main/resources/mapper/module/AppInfoTokenMapper.xml
  33. 15 0
      lb-module/src/main/resources/mapper/module/DspDeliveryUuMapper.xml
  34. 8 1
      lb-third/lb-third-delivery/src/main/java/com/ydd/third/delivery/shunfeng/ShunfengClient.java
  35. 3 0
      lb-third/lb-third-delivery/src/main/java/com/ydd/third/delivery/uupt/service/UuptDeliveryService.java

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

@@ -1108,7 +1108,7 @@ public class OrderEntityUtils {
              * 美团:delivery_serviceCode 必传
              * 配送服务代码,详情见合同
              */
-            orderVo.setDeliveryServiceCode(100004); //配送服务代码,详情见合同,等确认后要修改
+            orderVo.setDeliveryServiceCode(100005); //配送服务代码,详情见合同,等确认后要修改
 
             /**
              * 美团

+ 59 - 0
lb-app/src/main/java/com/ydd/app/controller/DevelopmentApi.java

@@ -0,0 +1,59 @@
+package com.ydd.app.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ydd.app.dto.*;
+import com.ydd.app.service.ApiStoreService;
+import com.ydd.app.service.Insert;
+import com.ydd.app.service.Query;
+import com.ydd.app.service.Update;
+import com.ydd.common.annotation.AccessToken;
+import com.ydd.common.core.controller.BaseController;
+import com.ydd.common.core.domain.ResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Project:lb-server
+ * Class:ShopApi
+ * Description:TODO
+ * Time:2021/3/1 17:39
+ *
+ * @author zoe
+ */
+@Api(value = "开发者相关", tags = {"开发者相关"})
+@RestController
+@RequestMapping("/app")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class DevelopmentApi extends BaseController {
+
+    private final ApiStoreService apiStoreService;
+
+
+    /**
+     * 刷新token
+     */
+    @ApiOperation("刷新token")
+    @RequestMapping(value = "/refreshToken", method = RequestMethod.POST)
+    @AccessToken
+    public ResponseResult saveShop(@RequestBody @Validated AppTokenDto appTokenDto) {
+
+        return null;
+    }
+
+    @ApiOperation("申请开发者")
+    @RequestMapping(value = "/applyDevelop", method = RequestMethod.POST)
+    @AccessToken
+    public ResponseResult applyDevelop(@RequestBody @Validated DevelopMerchantDto merchantDto) {
+
+        return null;
+    }
+
+
+}

+ 1 - 0
lb-app/src/main/java/com/ydd/app/controller/MemberApi.java

@@ -124,6 +124,7 @@ public class MemberApi extends BaseController {
     @ApiOperation("修改配置")
     @RequestMapping(value = "/config", method = RequestMethod.POST)
     @AccessToken
+    @ControllerLog("修改用户配置")
     public BaseResult saveConfig(MemberDetailReq config) {
         apiMemberService.saveConfig(getLoginId(), config);
         return BaseResult.success();

+ 32 - 0
lb-app/src/main/java/com/ydd/app/dto/AppTokenDto.java

@@ -0,0 +1,32 @@
+package com.ydd.app.dto;
+
+import com.ydd.app.service.Insert;
+import com.ydd.app.service.Update;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * Project:lb-server
+ * Class:ShopReq
+ * Description:TODO
+ * Time:2022/4/6 18:24
+ *
+ * @author wangtao
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+public class AppTokenDto extends  BaseDto implements Serializable {
+
+    @NotBlank(message = "参数refreshToken不能为空" )
+    private String refreshToken;
+
+
+}

+ 39 - 0
lb-app/src/main/java/com/ydd/app/dto/DevelopAuditDto.java

@@ -0,0 +1,39 @@
+package com.ydd.app.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * Project:lb-server
+ * Class:MemberAddressReq
+ * Description:TODO
+ * Time:2021/2/23 11:03
+ *
+ * @author zoe
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+public class DevelopAuditDto implements Serializable {
+
+    private static final long serialVersionUID = -4475808205578413426L;
+
+    @ApiModelProperty(value = "商家id(修改时需要传)")
+    private Long merchantId;
+
+    private String startTime;
+
+    private String endTime;
+
+    private BigDecimal earnestMoney;
+
+    //审核结果  1 通过  0不通过
+    private int status;
+}

+ 139 - 0
lb-app/src/main/java/com/ydd/app/dto/DevelopMerchantDto.java

@@ -0,0 +1,139 @@
+package com.ydd.app.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * Project:lb-server
+ * Class:MemberAddressReq
+ * Description:TODO
+ * Time:2021/2/23 11:03
+ *
+ * @author zoe
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+public class DevelopMerchantDto implements Serializable {
+
+    private static final long serialVersionUID = -4475808205578413426L;
+
+    @ApiModelProperty(value = "商家id(修改时需要传)")
+    private Long merchantId;
+
+    private String userAccount;
+    private String password;
+    /** 收货地址 */
+    @NotBlank(message = "商家名称")
+    @ApiModelProperty(required = true,value = "商家名称")
+    private String merchantName;
+
+    /** 门店类型 1->单店,2->连锁店 */
+    @NotNull(message = "请填写门店类型")
+    @ApiModelProperty(required = true,value = "门店类型 1->单店,2->连锁店")
+    private Integer merchantType;
+
+    /** 商户营业执照类型 1->个体, 3->公司 */
+    @NotNull(message = "请填写商家类型")
+    @ApiModelProperty(required = true,value = "商户营业执照类型 1->个体, 3->公司")
+    private Integer licenseType;
+
+    /** 商家分类ID */
+    @NotNull(message = "请填写商家分类")
+    @ApiModelProperty(required = true,value = "商家分类ID")
+    private Long categoryId;
+
+    @ApiModelProperty(value = "商家主营业务")
+    private String categoryName;
+
+    /** 联系人 */
+    @NotBlank(message = "联系人")
+    @ApiModelProperty(required = true,value = "联系人")
+    private String contactName;
+
+    /** 手机号码 */
+    @NotBlank(message = "手机号码")
+    @ApiModelProperty(required = true,value = "手机号码")
+    private String mobile;
+
+    /** 所在省 */
+    @ApiModelProperty(required = true,value = "所在省")
+    private String provinceName;
+
+    /** 所在城市 */
+    @ApiModelProperty(required = true,value = "所在城市")
+    private String cityName;
+
+    /** 所在区 */
+    @ApiModelProperty(required = true,value = "所在区")
+    private String districtName;
+
+    @ApiModelProperty(required = true,value = "城市code")
+    private String cityCode;
+
+    /** 商家地理位置经度 */
+    @ApiModelProperty(value = "商家地理位置经度")
+    private String lng;
+
+    /** 商家地理位置纬度 */
+    @ApiModelProperty(value = "商家地理位置纬度")
+    private String lat;
+
+    /** 商家地址 */
+    @ApiModelProperty(required = true,value = "商家地址")
+    private String address;
+
+    /** 详细地址 */
+    @ApiModelProperty(required = true,value = "详细地址")
+    private String street;
+
+    /**
+     * poi地址
+     */
+    private String poiAddress;
+
+    /** 法人身份证正面照片 */
+    @NotBlank(message = "法人身份证正面照片")
+    @ApiModelProperty(required = true,value = "法人身份证正面照片")
+    private String idcardFront;
+
+    /** 法人身份证反面照片 */
+    @NotBlank(message = "法人身份证反面照片")
+    @ApiModelProperty(required = true,value = "法人身份证反面照片")
+    private String idcardBack;
+
+    /** 营业执照 */
+    @NotBlank(message = "营业执照")
+    @ApiModelProperty(required = true,value = "营业执照")
+    private String bizLicense;
+
+    @ApiModelProperty(value = "门店拥有人手持身份证营业执照图片")
+    private String bizLicenseIdcard;
+
+    /** 法人姓名 */
+    @ApiModelProperty(value = "法人姓名")
+    private String legalPerson;
+
+    /** 营业执照号码 */
+    @ApiModelProperty(value = "营业执照号码")
+    private String bizLicenseNo;
+
+    /** 身份证号码 */
+    @ApiModelProperty(value = "身份证号码")
+    private String idcardNo;
+
+    /** 食品经营许可 */
+    @ApiModelProperty(value = "食品经营许可")
+    private String foodLicensePic;
+
+    @ApiModelProperty(value = "经营类目")
+    private String fnProductType;
+
+    private Integer idcardType;
+}

+ 2 - 0
lb-app/src/main/java/com/ydd/app/dto/MerchantDto.java

@@ -133,4 +133,6 @@ public class MerchantDto implements Serializable {
 
     @ApiModelProperty(value = "经营类目")
     private String fnProductType;
+
+    private Integer idcardType;
 }

+ 4 - 0
lb-app/src/main/java/com/ydd/app/dto/StoreStatusDto.java

@@ -6,6 +6,8 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
@@ -30,6 +32,8 @@ public class StoreStatusDto extends BaseDto implements Serializable {
     @NotBlank(message = "参数deliveryIdStr不能为空",groups = Update.class)
     private String deliveryIdStr;
 
+    @Max(value = 1,message = "参数status无效")
+    @Min(value = 0,message = "参数status无效")
     @NotNull(message = "参数status不能为空",groups = Update.class)
     private Integer status;
 

+ 2 - 1
lb-app/src/main/java/com/ydd/app/interceptor/AuthorizationInterceptor.java

@@ -24,6 +24,7 @@ import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
 import javax.servlet.http.HttpServletRequest;
@@ -38,7 +39,7 @@ import javax.servlet.http.HttpServletResponse;
 @Slf4j
 @Configuration
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
-public class AuthorizationInterceptor extends HandlerInterceptorAdapter {
+public class AuthorizationInterceptor implements HandlerInterceptor {
 
     private final TokenService tokenService;
 

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

@@ -0,0 +1,41 @@
+package com.ydd.app.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ydd.app.dto.*;
+import com.ydd.common.core.domain.ResponseResult;
+import com.ydd.module.domain.DspDelivery;
+import com.ydd.module.domain.Shop;
+
+/**
+ * Project:lb-server
+ * Class:ApiShopService
+ * Description:TODO
+ * Time:2021/3/1 17:40
+ *
+ * @author zoe
+ */
+public interface ApiDevelopService {
+
+
+    /**
+     * 申请成为开发者
+     * @param loginId
+     * @param merchantDto
+     */
+    ResponseResult saveMerchant(Long loginId, DevelopMerchantDto merchantDto);
+
+
+
+    /**
+     * 更新资料
+     * @param loginId
+     * @param merchantDto
+     */
+    ResponseResult modify(Long loginId, DevelopMerchantDto merchantDto);
+
+    ResponseResult audit( DevelopAuditDto developAuditDto);
+
+    ResponseResult online( DevelopAuditDto developAuditDto);
+
+    ResponseResult refreshToken(String refreshToken);
+}

+ 216 - 0
lb-app/src/main/java/com/ydd/app/service/impl/ApiDevelopServiceImpl.java

@@ -0,0 +1,216 @@
+package com.ydd.app.service.impl;
+
+import cn.hutool.core.lang.UUID;
+import com.alibaba.fastjson.JSONObject;
+import com.baidu.aip.ocr.AipOcr;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.ydd.api.DeliveryService;
+import com.ydd.app.ShopEditUtils;
+import com.ydd.app.ShopEntityUtils;
+import com.ydd.app.dto.*;
+import com.ydd.app.service.*;
+import com.ydd.common.constant.Constants;
+import com.ydd.common.core.domain.ResponseResult;
+import com.ydd.common.core.redis.RedisCache;
+import com.ydd.common.enums.DeliveryTypeEnums;
+import com.ydd.common.enums.ResponseResultCodeEnum;
+import com.ydd.common.utils.DateUtils;
+import com.ydd.common.utils.SnCodeUtils;
+import com.ydd.common.utils.sign.Md5Utils;
+import com.ydd.ecloud.core.utils.JsonMapper;
+import com.ydd.framework.web.service.TokenService;
+import com.ydd.module.domain.*;
+import com.ydd.module.dto.DeliveryConfigDto;
+import com.ydd.module.dto.StoreDeliveryDto;
+import com.ydd.module.enums.*;
+import com.ydd.module.expection.CustomAppException;
+import com.ydd.module.service.*;
+import com.ydd.third.common.utils.AddressLngLatExchanger;
+import com.ydd.third.common.utils.CoordinateUtils;
+import com.ydd.third.common.vo.ResObject;
+import com.ydd.third.common.vo.shop.ShopResultVo;
+import com.ydd.third.common.vo.shop.ShopVo;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * Project:lb-server
+ * Class:ApiShopServiceImpl
+ * Description:TODO
+ * Time:2021/3/1 17:40
+ *
+ * @author zoe
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class ApiDevelopServiceImpl implements ApiDevelopService {
+
+    private final IMemberService iMemberService;
+
+    private final IShopService iShopService;
+
+    private final IMerchantService iMerchantService;
+
+    private final IAppInfoService iAppInfoService;
+    private final IAppInfoTokenService iAppInfoTokenService;
+
+    private final RedisCache redisCache;
+
+    private final TokenService tokenService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ResponseResult saveMerchant(Long loginId, DevelopMerchantDto merchantDto) {
+        merchantDto.setCategoryId(1l);
+        Member member = iMemberService.getMemberByMobile(merchantDto.getUserAccount());
+        if (member != null) {
+            return ResponseResult.error(ResponseResultCodeEnum.USER_MOBILE_EXIST);
+        }
+
+
+        Merchant merchant = new Merchant();
+        BeanUtils.copyProperties(merchantDto, merchant);
+        merchant.setStatus(MerchantStatusEnum.TO_BE_CERTIFIED.getStatus());
+        merchant.setCode(SnCodeUtils.createMerchantSn());
+
+        iMerchantService.save(merchant);
+        Shop shop = new Shop();
+        shop.setAddress(merchantDto.getAddress());
+        shop.setCategoryId(merchantDto.getCategoryId());
+        shop.setCode(SnCodeUtils.createShopSn());
+        shop.setContactName(merchantDto.getContactName());
+        shop.setLat(merchantDto.getLat());
+        shop.setLng(merchantDto.getLng());
+        shop.setMerchantId(merchant.getId());
+        shop.setMobile(merchantDto.getMobile());
+        shop.setName(merchantDto.getMerchantName());
+        shop.setStreet(merchantDto.getStreet());
+        shop.setProvinceName(merchantDto.getProvinceName());
+        shop.setCityName(merchantDto.getCityName());
+        shop.setDistrictName(merchantDto.getDistrictName());
+        shop.setCityCode(merchantDto.getCityCode());
+        shop.setBizLicense(merchantDto.getBizLicense());
+        shop.setBizLicenseNo(merchantDto.getBizLicenseNo());
+        shop.setLegalPerson(merchantDto.getLegalPerson());
+        shop.setIdcardNo(merchantDto.getIdcardNo());
+        shop.setIdcardFront(merchantDto.getIdcardFront());
+        shop.setIdcardBack(merchantDto.getIdcardBack());
+        shop.setBizLicenseIdcard(merchantDto.getBizLicenseIdcard());
+        shop.setFoodLicensePic(merchantDto.getFoodLicensePic());
+        shop.setPoiAddress(merchantDto.getPoiAddress());
+        iShopService.save(shop);
+
+        member = new Member();
+        member.setMobile(merchantDto.getUserAccount());
+        member.setNickname(merchantDto.getUserAccount());
+        member.setStatus(Constants.DISABLE);
+        member.setAliasId(UUID.fastUUID().toString().replaceAll("-", ""));
+        if (StringUtils.isNotBlank(merchantDto.getPassword())) {
+            member.setPassword(Md5Utils.hash(merchantDto.getPassword()));
+        }
+        member.setMerchantId(merchant.getId());
+        member.setMemberType(MemberTypeEnum.MERCHANT.type);
+        member.setShopId(shop.getId());
+        iMemberService.save(member);
+        return ResponseResult.success();
+    }
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ResponseResult modify(Long loginId, DevelopMerchantDto merchantDto) {
+
+        Merchant merchant = iMerchantService.getById(merchantDto.getMerchantId());
+        BeanUtils.copyProperties(merchantDto, merchant);
+        merchant.setStatus(MerchantStatusEnum.TO_BE_CERTIFIED.getStatus());
+        iMerchantService.updateById(merchant);
+        return ResponseResult.success();
+    }
+
+    @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()));
+        if (StatusEnum.SHOW.status.equals(developAuditDto.getStatus())) {
+            merchant.setStatus(2);
+            try {
+                AppInfo appInfo_dev = new AppInfo();
+                appInfo_dev.setSandbox(0);
+                appInfo_dev.setStartTime(DateUtils.parseDate(developAuditDto.getStartTime()));
+                appInfo_dev.setEndTime(DateUtils.parseDate(developAuditDto.getEndTime()));
+                appInfo_dev.setEarnestMoney(developAuditDto.getEarnestMoney());
+                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.setMemberId(member.getId());
+                token_dev.setRefreshToken( Md5Utils.hash(merchant.getId().toString()));
+                token_dev.setExpiresTime(DateUtils.addDays(new Date(),30));
+                iAppInfoTokenService.save(token_dev);
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        if (StatusEnum.STOP.status.equals(developAuditDto.getStatus())) {
+            merchant.setStatus(StatusEnum.STOP.status);
+        }
+        iMerchantService.updateById(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()));
+        AppInfo appInfo_pro = new AppInfo();
+        appInfo_pro.setSandbox(1);
+        appInfo_pro.setStartTime(DateUtils.parseDate(developAuditDto.getStartTime()));
+        appInfo_pro.setEndTime(DateUtils.parseDate(developAuditDto.getEndTime()));
+        appInfo_pro.setEarnestMoney(developAuditDto.getEarnestMoney());
+        try {
+            iAppInfoService.createAppInfo(appInfo_pro);
+        }catch (Exception e){
+
+        }
+        AppInfoToken token_pro = new AppInfoToken();
+        token_pro.setAppId(appInfo_pro.getAppId());
+        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));
+        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);
+        if (memberId == null) {
+            return ResponseResult.error(ResponseResultCodeEnum.REFRESH_TOKEN_INVALID);
+        }
+        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));
+        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);
+        return ResponseResult.success(token);
+    }
+}

+ 3 - 23
lb-app/src/main/java/com/ydd/app/service/impl/ApiMerchantServiceImpl.java

@@ -53,6 +53,7 @@ public class ApiMerchantServiceImpl implements ApiMerchantService {
     private final IAgentService iAgentService;
 
     private final ApiWaimaiPlatformService apiWaimaiPlatformService;
+    private final ApiMerchantShopAsynServiceImpl apiMerchantShopAsynService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -84,32 +85,11 @@ public class ApiMerchantServiceImpl implements ApiMerchantService {
         iMerchantService.save(merchant);
         member.setMerchantId(merchant.getId());
         member.setMemberType(MemberTypeEnum.MERCHANT.type);
-        createShop(merchant,member,loginId,merchantDto);
+        apiMerchantShopAsynService.createShop(merchant,member,loginId,merchantDto);
         apiWaimaiPlatformService.saveConfig(loginId, new DeliveryConfigDto());
     }
 
-    @Async
-    private void createShop(Merchant merchant,Member member,Long loginId,MerchantDto merchantDto){
-        //默认创建一个门店(消息推送)
-        ShopReq shopReq = new ShopReq();
-        BeanUtils.copyProperties(merchantDto, shopReq);
-        shopReq.setName(merchant.getMerchantName());
-        iMemberService.updateById(member);
-        Shop shop = apiShopService.saveShop(loginId, shopReq, true);
-        member.setShopId(shop.getId());
-        if (member.getAgentId() != null && merchant.getAgentId() == null) {
-            member.setAgentId(null);
-        }
-        iMemberService.updateById(member);
-        //创建默认管理员
-        ShopUser shopUser = new ShopUser();
-        shopUser.setShopId(shop.getId());
-        shopUser.setMemberId(loginId);
-        shopUser.setName(member.getNickname());
-        shopUser.setMerchantId(member.getMerchantId());
-        shopUser.setType(ShopUserTypeEnum.DINA_ZHANG.type);
-        iShopUserService.save(shopUser);
-    }
+
     @Override
     public MerchantDto findDetail(Long loginId, Integer merchantId) {
         Merchant merchant = iMerchantService.getById(merchantId);

+ 72 - 0
lb-app/src/main/java/com/ydd/app/service/impl/ApiMerchantShopAsynServiceImpl.java

@@ -0,0 +1,72 @@
+package com.ydd.app.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.ydd.app.dto.MerchantDto;
+import com.ydd.app.dto.ShopReq;
+import com.ydd.app.service.ApiMerchantService;
+import com.ydd.app.service.ApiShopService;
+import com.ydd.app.service.ApiWaimaiPlatformService;
+import com.ydd.common.utils.SnCodeUtils;
+import com.ydd.module.domain.*;
+import com.ydd.module.dto.DeliveryConfigDto;
+import com.ydd.module.enums.MemberTypeEnum;
+import com.ydd.module.enums.MerchantStatusEnum;
+import com.ydd.module.enums.ShopUserTypeEnum;
+import com.ydd.module.expection.CustomAppException;
+import com.ydd.module.service.*;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * Project:lb-server
+ * Class:ApiMerchantServiceImpl
+ * Description:TODO
+ * Time:2021/2/25 18:10
+ *
+ * @author zoe
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class ApiMerchantShopAsynServiceImpl  {
+
+
+    private final IMemberService iMemberService;
+
+    private final ApiShopService apiShopService;
+
+    private final IShopUserService iShopUserService;
+
+
+
+    @Async
+    public void createShop(Merchant merchant,Member member,Long loginId,MerchantDto merchantDto){
+        //默认创建一个门店(消息推送)
+        ShopReq shopReq = new ShopReq();
+        BeanUtils.copyProperties(merchantDto, shopReq);
+        shopReq.setName(merchant.getMerchantName());
+        iMemberService.updateById(member);
+        Shop shop = apiShopService.saveShop(loginId, shopReq, true);
+        member.setShopId(shop.getId());
+        if (member.getAgentId() != null && merchant.getAgentId() == null) {
+            member.setAgentId(null);
+        }
+        iMemberService.updateById(member);
+        //创建默认管理员
+        ShopUser shopUser = new ShopUser();
+        shopUser.setShopId(shop.getId());
+        shopUser.setMemberId(loginId);
+        shopUser.setName(member.getNickname());
+        shopUser.setMerchantId(member.getMerchantId());
+        shopUser.setType(ShopUserTypeEnum.DINA_ZHANG.type);
+        iShopUserService.save(shopUser);
+    }
+
+}

+ 9 - 5
lb-app/src/main/java/com/ydd/app/service/impl/ApiOrderBackServiceImpl.java

@@ -686,14 +686,18 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
             order.setStatus(PayStatusEnum.CANCEL.status);
             //退费处理
             BigDecimal deductFee = BigDecimal.ZERO;
-            if (dto.getDeductAmount() != null) {
+            if (dto.getDeductAmount() != null && order.getDadaDspType() == null) {
                 deductFee = dto.getDeductAmount();
             }
             if (redisCache.hasKey("deuctFee_" + order.getOrderSn())) {
-                BigDecimal result = redisCache.getCacheObject("deuctFee_" + order.getOrderSn());
-                if (result != null) {
-                    deductFee = result;
-                    order.setBreachFee(deductFee);
+                if (order.getDadaDspType() == null) {
+                    BigDecimal result = redisCache.getCacheObject("deuctFee_" + order.getOrderSn());
+                    if (result != null) {
+                        deductFee = result;
+                        order.setBreachFee(deductFee);
+                        redisCache.deleteObject(order.getOrderSn());
+                    }
+                } else {
                     redisCache.deleteObject(order.getOrderSn());
                 }
             }

+ 3 - 0
lb-app/src/main/java/com/ydd/app/service/impl/ApiOrderNewServiceImpl.java

@@ -666,6 +666,9 @@ public class ApiOrderNewServiceImpl implements ApiOrderNewService {
         }else if (waimaiOrder.getOrderType().equals(WaimaiOrderTypeEnum.MEI_TUAN_SG.getType())) {
             order.setOrderSource("101");
         }
+        else if (WaimaiOrderTypeEnum.JD_HOME.getType().equals(waimaiOrder.getOrderType())) {
+            order.setOrderSource("104");
+        }
         order.setPoiSeq(waimaiOrder.getDaySeq());
         // 外卖商品信息
         List<WaimaiOrderDetail> waiMaiOrderDetails = iWaimaiOrderDetailService.findList(order.getWaimaiOrderId());

+ 22 - 10
lb-app/src/main/java/com/ydd/app/service/impl/ApiOrderServiceImpl.java

@@ -149,6 +149,8 @@ public class ApiOrderServiceImpl implements ApiOrderService {
     private final ApiCacheUserAddress apiCacheUserAddress;
     private final IShopWaimaiService iShopWaimaiService;
     private final IShopDeliveryBindService iShopDeliveryBindService;
+    private final IMerchantService iMerchantService;
+    private final IDadaDspService iDadaDspService;
 
     @Override
     public ValuationRes valuation(Long loginId, OrderReq orderReq, Integer type) {
@@ -1614,18 +1616,28 @@ public class ApiOrderServiceImpl implements ApiOrderService {
             log.error("缓存收发件地址异常, {}", e.getMessage());
         }
         Order order = createOrder(product, req, loginId, member);
-        if (member.getAgentId() != null) {
-            order.setAgentId(member.getAgentId());
-            order.setAgentIdSource(member.getAgentSource());
-            if (member.getPersonnelId() != null){
-                order.setPersonnelId(member.getPersonnelId());
+        Merchant merchant = iMerchantService.getById(member.getMerchantId());
+        // 达达配送商
+        if (merchant != null && merchant.getDadaDspId() != null) {
+            DadaDsp dadaDsp = iDadaDspService.getById(merchant.getDadaDspId());
+            if (dadaDsp != null) {
+                order.setDadaDspId(dadaDsp.getId());
+                order.setDadaDspType(DadaDspRoleEnum.SELF_DELIVERY.type.equals(dadaDsp.getDspRole()) ? OrderDadaDspTypeEnum.DELIVERY.type : OrderDadaDspTypeEnum.DELIVERY_RAP.type);
             }
         } else {
-            // 判断区域,只给一级代理商
-            Agent agent = iAgentService.findByArea(order.getSendCityName(), order.getSendDistrictName());
-            if (agent != null) {
-                order.setAgentId(agent.getId());
-                order.setAgentIdSource(AgentSourceEnum.QU_YU.status);
+            if (member.getAgentId() != null) {
+                order.setAgentId(member.getAgentId());
+                order.setAgentIdSource(member.getAgentSource());
+                if (member.getPersonnelId() != null) {
+                    order.setPersonnelId(member.getPersonnelId());
+                }
+            } else {
+                // 判断区域,只给一级代理商
+                Agent agent = iAgentService.findByArea(order.getSendCityName(), order.getSendDistrictName());
+                if (agent != null) {
+                    order.setAgentId(agent.getId());
+                    order.setAgentIdSource(AgentSourceEnum.QU_YU.status);
+                }
             }
         }
         // 设置外卖平台, 订单流水号

+ 62 - 33
lb-app/src/main/java/com/ydd/app/service/impl/ApiOrderValuationServiceImpl.java

@@ -92,6 +92,7 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
     private final IPackageDeliveryService iPackageDeliveryService;
     private final IPackageCityConfigService iPackageCityConfigService;
     private final ApiDadaValuationService dadaValuationService;
+    private final IDspDeliveryUuService iDspDeliveryUuService;
 
     @Override
     public ValuationResultData orderValuation(Member member, OrderReq orderReq, Integer type) {
@@ -164,7 +165,7 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
                 for (Shop shop : shops) {
                     double distance = CoordinateUtils.getDistance(Double.parseDouble(sendAddress.getLng()), Double.parseDouble(sendAddress.getLat()), Double.parseDouble(shop.getLng()), Double.parseDouble(shop.getLat()));
                     if (distance > BillingConstant.SHOP_BILLING_DISTANCE) { //暂定小于一百米 是门店发单
-                        num ++;
+                        num++;
                     } else {
                         // 个人发单,发件地址附近100米内的门店作为发单门店
                         shopId = shop.getId();
@@ -215,7 +216,7 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
             } else if (platformType == 3) {
                 // 饿百零售
                 orderReq.setOrderSource("103");
-            }else if (platformType == 6) {
+            } else if (platformType == 6) {
                 // 京东到家
                 orderReq.setOrderSource("104");
             }
@@ -267,7 +268,7 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
             packageCommissionMap = commissionDetailDtoList.stream().collect(Collectors.groupingBy(PackageCommissionDetailDto::getDeliveryType));
         }
         // type = 2为自动配送, 等APP改版后可以拿掉
-        if (type == 2 && orderReq.getPreDeliveryIds()!=null) {
+        if (type == 2 && orderReq.getPreDeliveryIds() != null) {
             List<String> deliveryIds = Arrays.asList(orderReq.getPreDeliveryIds().split(","));
             deliveryInfos = deliveryInfos.stream().filter(a -> deliveryIds.contains(a.getId().toString())).collect(Collectors.toList());
             log.info("<===========>计价运力" + JsonMapper.nonEmptyMapper().toJson(deliveryInfos));
@@ -326,7 +327,7 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
     private List<ValuationRes> handleBillList(Long loginId, List<ValuationRes> list) {
         // 查询下单设置推荐屏蔽运力
         List<ValuationRes> billList = new ArrayList<>();
-        MemberConfig config = iMemberConfigService.getOne(new QueryWrapper<MemberConfig>().eq("member_id",loginId));
+        MemberConfig config = iMemberConfigService.getOne(new QueryWrapper<MemberConfig>().eq("member_id", loginId));
         if (config != null) {
             if (StringUtils.isNotEmpty(config.getBillDeliveryIds())) {
                 List<String> billDeliveryIds = Arrays.asList(config.getBillDeliveryIds().split(","));
@@ -504,18 +505,18 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
             orderReq.setOrderingSourceNo(waimaiOrder.getOutOrderId());
             orderReq.setZbOrderingSourceNo(waimaiOrder.getOutOrderId());
             // 查询美团跑腿的token
-           // DspWaimai waiMai = iDspWaimaiService.findOne(WaimaiTypeEnums.MEI_TUAN.getType());
+            // DspWaimai waiMai = iDspWaimaiService.findOne(WaimaiTypeEnums.MEI_TUAN.getType());
             List<WaimaiDto> waiMai = iDspWaimaiService.findList();
-            if (CollectionUtils.isNotEmpty(waiMai)){
-                for(WaimaiDto dto:waiMai){
-                    if(WaimaiOrderTypeEnum.MEI_TUAN.getType().equals(dto.getType())){
-                        ShopWaimai shopWaimai = iShopWaimaiService.findByThirdShopId(shopId, dto.getWaimaiId(),waimaiOrder.getThirdShopId());
-                        if (shopWaimai != null){
+            if (CollectionUtils.isNotEmpty(waiMai)) {
+                for (WaimaiDto dto : waiMai) {
+                    if (WaimaiOrderTypeEnum.MEI_TUAN.getType().equals(dto.getType())) {
+                        ShopWaimai shopWaimai = iShopWaimaiService.findByThirdShopId(shopId, dto.getWaimaiId(), waimaiOrder.getThirdShopId());
+                        if (shopWaimai != null) {
                             orderReq.setZbToken(shopWaimai.getAuthToken());
                         }
-                    }else if(WaimaiOrderTypeEnum.MEI_TUAN_SG.getType().equals(dto.getType())){
-                        ShopWaimai shopWaimai = iShopWaimaiService.findByThirdShopId(shopId, dto.getWaimaiId(),waimaiOrder.getThirdShopId());
-                        if (shopWaimai != null){
+                    } else if (WaimaiOrderTypeEnum.MEI_TUAN_SG.getType().equals(dto.getType())) {
+                        ShopWaimai shopWaimai = iShopWaimaiService.findByThirdShopId(shopId, dto.getWaimaiId(), waimaiOrder.getThirdShopId());
+                        if (shopWaimai != null) {
                             orderReq.setZbToken(shopWaimai.getAuthToken());
                         }
                     }
@@ -524,11 +525,11 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
 
         } else if (waimaiOrder.getOrderType().equals(WaimaiOrderTypeEnum.E_LE_ME.getType())) {
             orderReq.setOrderSource("102");
-        }else if (waimaiOrder.getOrderType().equals(WaimaiOrderTypeEnum.E_LE_ME_RETAIL.getType())) {
+        } else if (waimaiOrder.getOrderType().equals(WaimaiOrderTypeEnum.E_LE_ME_RETAIL.getType())) {
             orderReq.setOrderSource("103");
-        }else if (waimaiOrder.getOrderType().equals(WaimaiOrderTypeEnum.MEI_TUAN_SG.getType())) {
+        } else if (waimaiOrder.getOrderType().equals(WaimaiOrderTypeEnum.MEI_TUAN_SG.getType())) {
             orderReq.setOrderSource("101");
-        }else if (waimaiOrder.getOrderType().equals(WaimaiOrderTypeEnum.JD_HOME.getType())) {
+        } else if (waimaiOrder.getOrderType().equals(WaimaiOrderTypeEnum.JD_HOME.getType())) {
             orderReq.setOrderSource("104");
         }
         orderReq.setTakeRemark(takeRemark);
@@ -550,6 +551,17 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
         }
         orderReq.setOrderSn(SnCodeUtils.createSn());
         orderReq.setAmount(orderReq.getProductAmount());
+        if (DeliveryTypeEnums.UUPT.getType().equals(delivery.getType()) && delivery.getIsMine() != 1) {
+            List<DspDeliveryUu> uuList = iDspDeliveryUuService.list(new QueryWrapper<DspDeliveryUu>().eq("city_name", orderReq.getSendAddress().getCityName()));
+            if (CollectionUtils.isNotEmpty(uuList)) {
+                for (DspDeliveryUu uu : uuList) {
+                    if (uu.getProductId().equals(orderReq.getProductId())) {
+                        delivery.setShopId(uu.getOpenId());
+                        break;
+                    }
+                }
+            }
+        }
         OrderVo orderVo = OrderEntityUtils.createOrderVo(orderReq, delivery, deliveryConfig.isTest());
         // 获取用户配置
         MemberConfig memberConfig = iMemberConfigService.getShopMemberConfig(shopId, null);
@@ -558,21 +570,21 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
             List<ProductVo> productList = orderVo.getProductList();
             if (CollectionUtils.isNotEmpty(productList)) {
                 productList.forEach(productVo -> {
-                   productVo.setProductName("商品");
+                    productVo.setProductName("商品");
                 });
             }
 
             List<OpenApiGood> mtGoodList = orderVo.getMtGoods();
             if (CollectionUtils.isNotEmpty(mtGoodList)) {
                 mtGoodList.forEach(mtGood -> {
-                   mtGood.setGoodName("商品");
+                    mtGood.setGoodName("商品");
                 });
             }
 
             List<GoodsInfo> dadaGoodList = orderVo.getDadaGoods();
             if (CollectionUtils.isNotEmpty(dadaGoodList)) {
                 dadaGoodList.forEach(dadaGood -> {
-                   dadaGood.setSku_name("商品");
+                    dadaGood.setSku_name("商品");
                 });
             }
         }
@@ -587,21 +599,21 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
 
         if ((DeliveryTypeEnums.FENG_NIAO.getType().equals(delivery.getType())
                 || DeliveryTypeEnums.MEI_TUAN.getType().equals(delivery.getType())
-                 ||DeliveryTypeEnums.FENG_NIAO_PT.getType().equals(delivery.getType()))
+                || DeliveryTypeEnums.FENG_NIAO_PT.getType().equals(delivery.getType()))
                 && DefaultShopEnum.SHOW.status.equals(defaultShop)) {
             return null;
         }
 
-        if ((DeliveryTypeEnums.FENG_NIAO.getType().equals(delivery.getType())||DeliveryTypeEnums.FENG_NIAO_PT.getType().equals(delivery.getType())) && shopId == null) {
+        if ((DeliveryTypeEnums.FENG_NIAO.getType().equals(delivery.getType()) || DeliveryTypeEnums.FENG_NIAO_PT.getType().equals(delivery.getType())) && shopId == null) {
             return null;
         }
         // 美团跑腿未绑定不参与计价
-        if ((DeliveryTypeEnums.MEI_TUAN_ZB.getType().equals(delivery.getType()) ||DeliveryTypeEnums.MEI_TUAN_SG_ZB.getType().equals(delivery.getType()))&& delivery.getIsMine() == 0){
+        if ((DeliveryTypeEnums.MEI_TUAN_ZB.getType().equals(delivery.getType()) || DeliveryTypeEnums.MEI_TUAN_SG_ZB.getType().equals(delivery.getType())) && delivery.getIsMine() == 0) {
             return null;
         }
-        if ((DeliveryTypeEnums.MEI_TUAN_ZB.getType().equals(delivery.getType()) ||DeliveryTypeEnums.MEI_TUAN_SG_ZB.getType().equals(delivery.getType()))){
+        if ((DeliveryTypeEnums.MEI_TUAN_ZB.getType().equals(delivery.getType()) || DeliveryTypeEnums.MEI_TUAN_SG_ZB.getType().equals(delivery.getType()))) {
             SysConfig sysConfig = iSysConfigService.selectSysConfigByKey("MT_PT");
-            if (sysConfig.getConfigValue().equals("yes") && shopId != 1626){
+            if (sysConfig.getConfigValue().equals("yes") && shopId != 1626) {
                 return null;
             }
         }
@@ -626,21 +638,38 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
                         //uupt需重新计价
                         res.setIsMine(0);
                         orderVo.setIsMine(0);
-                        if (DeliveryTypeEnums.UUPT.getName().equals(orderVo.getLbClient())||DeliveryTypeEnums.SHAN_SONG.getName().equals(orderVo.getLbClient())) {
-                            orderVo.setOpenId("");
+                        if (DeliveryTypeEnums.UUPT.getName().equals(orderVo.getLbClient())) {
+                            List<DspDeliveryUu> uuList = iDspDeliveryUuService.list(new QueryWrapper<DspDeliveryUu>().eq("city_name", orderReq.getSendAddress().getCityName())
+                                    .eq("product_id", orderReq.getProductId()));
+                            if (CollectionUtils.isNotEmpty(uuList)) {
+                                orderVo.setOpenId(uuList.get(0).getOpenId());
+                                delivery.setShopId(uuList.get(0).getOpenId());
+                            } else {
+                                orderVo.setOpenId("");
+                                delivery.setShopId("");
+                            }
                             resObject = client.queryOrderDeliverFee(orderVo);
                             if (resObject.getCode() == 0) {
                                 transResObject(res, delivery, resObject, orderReq, orderVo);
-                            }else{
+                            } else {
                                 res = null;
                             }
 
                         }
-                        if (DeliveryTypeEnums.DADA.getType().equals(delivery.getType()) || DeliveryTypeEnums.DADA_YZ.getType().equals(delivery.getType())){
+                        if (DeliveryTypeEnums.SHAN_SONG.getName().equals(orderVo.getLbClient())) {
+                            resObject = client.queryOrderDeliverFee(orderVo);
+                            if (resObject.getCode() == 0) {
+                                transResObject(res, delivery, resObject, orderReq, orderVo);
+                            } else {
+                                res = null;
+                            }
+
+                        }
+                        if (DeliveryTypeEnums.DADA.getType().equals(delivery.getType()) || DeliveryTypeEnums.DADA_YZ.getType().equals(delivery.getType())) {
                             // 达达/优质余额不足,重新计价
                             log.info("余额不足----" + DeliveryTypeEnums.getNameByType(delivery.getType()) + "余额不足,重新计价");
                             ShopDelivery sd = iShopDeliveryService.getOne(new QueryWrapper<ShopDelivery>().eq("merchant_id", merchantId).eq("delivery_id", delivery.getId())
-                                    .eq("deleted", IsDeleteEnum.NORMAL.status).eq("shop_id", shopId).eq("bind_status",1));
+                                    .eq("deleted", IsDeleteEnum.NORMAL.status).eq("shop_id", shopId).eq("bind_status", 1));
                             if (sd != null && sd.getThirdShopId() != null) {
                                 orderVo.setShopNo(sd.getThirdShopId());
                                 delivery.setShopId(sd.getThirdShopId());
@@ -648,7 +677,7 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
                                 // 如果默认店铺被删了,则取列表第一个
                                 List<ShopDelivery> deliveries = iShopDeliveryService.list(new QueryWrapper<ShopDelivery>().eq("merchant_id", merchantId).eq("delivery_id", delivery.getId())
                                         .eq("deleted", IsDeleteEnum.NORMAL.status).isNotNull("third_shop_id"));
-                                if (CollectionUtils.isNotEmpty(deliveries)){
+                                if (CollectionUtils.isNotEmpty(deliveries)) {
                                     orderVo.setShopNo(deliveries.get(0).getThirdShopId());
                                     delivery.setShopId(deliveries.get(0).getThirdShopId());
                                 }
@@ -657,7 +686,7 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
                             resObject = client.queryOrderDeliverFee(orderVo);
                             if (resObject.getCode() == 0) {
                                 transResObject(res, delivery, resObject, orderReq, orderVo);
-                            }else{
+                            } else {
                                 res = null;
                             }
                         }
@@ -670,7 +699,7 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
                             resObject = client.queryOrderDeliverFee(reOrderVo);
                             if (resObject.getCode() == 0) {
                                 transResObject(res, delivery, resObject, orderReq, orderVo);
-                            }else{
+                            } else {
                                 res = null;
                             }
                         }
@@ -687,7 +716,7 @@ public class ApiOrderValuationServiceImpl implements ApiOrderValuationService {
                     resObject = client.queryOrderDeliverFee(orderVo);
                     if (resObject.getCode() == 0) {
                         transResObject(res, delivery, resObject, orderReq, orderVo);
-                    }else{
+                    } else {
                         res = null;
                     }
                 }

+ 29 - 16
lb-app/src/main/java/com/ydd/app/service/impl/ApiWaimaiServiceImpl.java

@@ -127,7 +127,7 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
 
     private final IAgentService iAgentService;
 
-   // private final IShopUserService iShopUserService;
+    // private final IShopUserService iShopUserService;
 
     private final IMerchantCategoryService iMerchantCategoryService;
 
@@ -322,6 +322,9 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
         if (waimaiOrder == null) {
             waimaiOrder = new WaimaiOrder();
             BeanUtils.copyProperties(orderVo, waimaiOrder);
+            if (waimaiOrder.getPickType() == null) {
+                waimaiOrder.setPickType(0);
+            }
             ResObject<String> res = meituanClient.getRealRecipientAddress(shopWaimai.getAuthToken(), orderVo.getOrderId());
             String recipientAddress = orderVo.getRecipientAddress();
             if (res.getCode() == 0) {
@@ -605,19 +608,29 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
             }
             order.setWeight(1);
             order.setDeleted(0);
-            Member member1 = iMemberService.findOne(shop.getMerchantId());
-            if (member1.getAgentId() != null) {
-                order.setAgentId(member1.getAgentId());
-                order.setAgentIdSource(member1.getAgentSource());
-                if (member1.getPersonnelId() != null) {
-                    order.setPersonnelId(member1.getPersonnelId());
+            Merchant merchant = iMerchantService.getById(shop.getMerchantId());
+            // 达达配送商
+            if (merchant != null && merchant.getDadaDspId() != null) {
+                DadaDsp dadaDsp = iDadaDspService.getById(merchant.getDadaDspId());
+                if (dadaDsp != null) {
+                    order.setDadaDspId(dadaDsp.getId());
+                    order.setDadaDspType(DadaDspRoleEnum.SELF_DELIVERY.type.equals(dadaDsp.getDspRole()) ? OrderDadaDspTypeEnum.DELIVERY.type : OrderDadaDspTypeEnum.DELIVERY_RAP.type);
                 }
             } else {
-                // 判断区域,只给一级代理商
-                Agent agent = iAgentService.findByArea(order.getSendCityName(), order.getSendDistrictName());
-                if (agent != null) {
-                    order.setAgentId(agent.getId());
-                    order.setAgentIdSource(AgentSourceEnum.QU_YU.status);
+                Member member1 = iMemberService.findOne(shop.getMerchantId());
+                if (member1.getAgentId() != null) {
+                    order.setAgentId(member1.getAgentId());
+                    order.setAgentIdSource(member1.getAgentSource());
+                    if (member1.getPersonnelId() != null) {
+                        order.setPersonnelId(member1.getPersonnelId());
+                    }
+                } else {
+                    // 判断区域,只给一级代理商
+                    Agent agent = iAgentService.findByArea(order.getSendCityName(), order.getSendDistrictName());
+                    if (agent != null) {
+                        order.setAgentId(agent.getId());
+                        order.setAgentIdSource(AgentSourceEnum.QU_YU.status);
+                    }
                 }
             }
             iOrderService.save(order);
@@ -659,7 +672,7 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
         }
         iOrderService.updateById(order);
         log.info("自动配送外卖信息===" + JSONObject.toJSONString(waimaiOrder));
-        if (waimaiOrder.getAutoOrder() == null&&waimaiOrder.getPickType().intValue()==0) { // 自动配送,并且是非自动拉取的订单, 非撤回订单
+        if (waimaiOrder.getAutoOrder() == null && waimaiOrder.getPickType() == 0) { // 自动配送,并且是非自动拉取的订单, 非撤回订单
             log.info("自动配送用户信息===" + JSONObject.toJSONString(config));
             // 即时单发单配置
             if (config != null && order.getTakeType() == 0) {
@@ -833,8 +846,8 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
             waimaiOrder.setOutOrderId(orderVo.getId());
             UserExtraInfo userExtraInfo = orderVo.getUserExtraInfo();
             waimaiOrder.setCaution(orderVo.getDescription());
-            if(userExtraInfo!=null&&StringUtils.isNotBlank(userExtraInfo.getGreeting())){
-                waimaiOrder.setCaution("[祝福语]:"+userExtraInfo.getGreeting()+" "+orderVo.getDescription());
+            if (userExtraInfo != null && StringUtils.isNotBlank(userExtraInfo.getGreeting())) {
+                waimaiOrder.setCaution("[祝福语]:" + userExtraInfo.getGreeting() + " " + orderVo.getDescription());
             }
             waimaiOrder.setPickType(orderVo.getOrderBusinessType());
             waimaiOrder.setOrderTime(orderVo.getCreatedAt());
@@ -1254,7 +1267,7 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
             } else {
                 waimaiOrder.setDeliveryTime(0L);
             }
-            if(StringUtils.isNotBlank(data.getOrder().getBusiness_type())){
+            if (StringUtils.isNotBlank(data.getOrder().getBusiness_type())) {
                 waimaiOrder.setPickType(Integer.valueOf(data.getOrder().getBusiness_type()));
             }
             iWaimaiOrderService.save(waimaiOrder);

+ 12 - 1
lb-app/src/main/java/com/ydd/app/service/impl/OpenApiOrderValuationServiceImpl.java

@@ -91,7 +91,7 @@ public class OpenApiOrderValuationServiceImpl implements OpenApiOrderValuationSe
     private final IShopDeliveryBindService iShopDeliveryBindService;
 
     private final RedisCache redisCache;
-
+    private final IDspDeliveryUuService iDspDeliveryUuService;
 
     @Override
     public ResponseResult valuation(OrderValuationReq valuationReq) {
@@ -322,6 +322,17 @@ public class OpenApiOrderValuationServiceImpl implements OpenApiOrderValuationSe
     private ValuationRes doValuation(OrderReq orderReq, DeliveryInfo delivery, Long merchantId, Long shopId) {
         orderReq.setOrderSn(SnCodeUtils.createSn());
         orderReq.setAmount(orderReq.getProductAmount());
+        if (DeliveryTypeEnums.UUPT.getType().equals(delivery.getType())&&delivery.getIsMine() != 1) {
+            List<DspDeliveryUu> uuList = iDspDeliveryUuService.list(new QueryWrapper<DspDeliveryUu>().eq("city_name", orderReq.getSendAddress().getCityName()));
+            if (CollectionUtils.isNotEmpty(uuList)) {
+                for(DspDeliveryUu uu:uuList){
+                    if(uu.getProductId().equals(orderReq.getProductId())){
+                        delivery.setShopId(uu.getOpenId());
+                        break;
+                    }
+                }
+            }
+        }
         OrderVo orderVo = OrderEntityUtils.createOrderVo(orderReq, delivery, deliveryConfig.isTest());
         // 获取用户配置
         MemberConfig memberConfig = iMemberConfigService.getShopMemberConfig(shopId, null);

+ 1 - 1
lb-common/src/main/java/com/ydd/common/constant/Constants.java

@@ -158,7 +158,7 @@ public class Constants
      * 后台登录用户可查看的代理商数据
      */
     public static final String SYS_USER_BIND_AGENT = "bindAgent";
-
+    public static final String APP_REFRESH_TOKEN_KEY = "app_refresh_tokens:";
     /**
      * 外部角色ID
      */

+ 2 - 1
lb-common/src/main/java/com/ydd/common/enums/ResponseResultCodeEnum.java

@@ -39,8 +39,9 @@ public enum ResponseResultCodeEnum {
     ID_CARD_VERIFY_FAIL(2013, "法人身份证号码校验失败"),
     BUSINESS_LICENCSE_VERIFY_FAIL(2014, "营业执照校验失败"),
     BUSINESS_LICENCSE_AND_FAREN_VERIFY_FAIL(2015, "营业执照法人跟身份证信息不匹配"),
-
+    USER_MOBILE_EXIST(2015, "手机号码已注册"),
     VALUATION_ERR(2021, "计价失败"),
+    REFRESH_TOKEN_INVALID(2022, "token已失效"),
 
 
     VALUATION_INVALID(2030, "计价已失效, 请重新计价"),

+ 29 - 8
lb-module/src/main/java/com/ydd/module/domain/AppInfo.java

@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -25,21 +26,29 @@ import java.util.Date;
 @TableName("lb_app_info")
 public class AppInfo implements Serializable {
 
-  private static final long serialVersionUID=1L;
+    private static final long serialVersionUID = 1L;
 
-    /** $column.columnComment */
+    /**
+     * $column.columnComment
+     */
     @TableId(value = "id")
     private Long id;
 
-    /** 应用名称 */
+    /**
+     * 应用名称
+     */
     @Excel(name = "应用名称")
     private String name;
 
-    /** appId */
+    /**
+     * appId
+     */
     @Excel(name = "appId")
     private String appId;
 
-    /** appSecret */
+    /**
+     * appSecret
+     */
     @Excel(name = "appSecret")
     private String appSecret;
 
@@ -49,17 +58,29 @@ public class AppInfo implements Serializable {
     // 订单状态通知
     private String orderStatusNotifyUrl;
 
-    /** 创建时间 */
+    /**
+     * 创建时间
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
-    /** 更新时间 */
+    /**
+     * 更新时间
+     */
     @TableField(update = "now()")
     private Date updateTime;
 
-    /** 删除标识位: 0正常 1删除 */
+    /**
+     * 删除标识位: 0正常 1删除
+     */
     @TableLogic
     private Integer deleted;
+    //0 测试环境 1生成环境
+    private Integer sandbox;
+    private Date startTime;
+
+    private Date endTime;
+    private BigDecimal earnestMoney;
 
 }

+ 74 - 0
lb-module/src/main/java/com/ydd/module/domain/AppInfoToken.java

@@ -0,0 +1,74 @@
+package com.ydd.module.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import com.ydd.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+
+import java.math.BigDecimal;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 【请填写功能名称】对象 lb_app_info_token
+ * 
+ * @author douya
+ * @date 2022-04-22
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("lb_app_info_token")
+public class AppInfoToken implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+    private Long memberId;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+    private String appId;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+    private String token;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+    private String refreshToken;
+
+    /** 失效时间 */
+    @Excel(name = "失效时间" , width = 30, dateFormat = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date expiresTime;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /** 更新时间 */
+    @TableField(update = "now()")
+    private Date updateTime;
+
+    /** 删除标识位: 0正常 1删除 */
+    @TableLogic
+    private Integer deleted;
+
+    @TableField(exist = false)
+    private Map<String, Object> params = new HashMap<>();
+}

+ 64 - 0
lb-module/src/main/java/com/ydd/module/domain/DspDeliveryUu.java

@@ -0,0 +1,64 @@
+package com.ydd.module.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ydd.common.annotation.Excel;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 【请填写功能名称】对象 lb_dsp_delivery_uu
+ * 
+ * @author douya
+ * @date 2022-04-19
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("lb_dsp_delivery_uu")
+public class DspDeliveryUu implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+    private String openId;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+    private String cityName;
+
+    /** 商品品类id */
+    @Excel(name = "商品品类id")
+    private Integer productId;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /** 更新时间 */
+    @TableField(update = "now()")
+    private Date updateTime;
+
+    /** 删除标识位: 0正常 1删除 */
+    @TableLogic
+    private Integer deleted;
+
+    @TableField(exist = false)
+    private Map<String, Object> params = new HashMap<>();
+}

+ 2 - 0
lb-module/src/main/java/com/ydd/module/domain/Merchant.java

@@ -199,6 +199,8 @@ private static final long serialVersionUID=1L;
      */
     private String appId;
 
+    private Integer idcardType;
+
     /**
      * 配送商名称
      */

+ 14 - 0
lb-module/src/main/java/com/ydd/module/mapper/AppInfoTokenMapper.java

@@ -0,0 +1,14 @@
+package com.ydd.module.mapper;
+
+import com.ydd.module.domain.AppInfoToken;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author douya
+ * @date 2022-04-22
+ */
+public interface AppInfoTokenMapper extends BaseMapper<AppInfoToken> {
+
+}

+ 14 - 0
lb-module/src/main/java/com/ydd/module/mapper/DspDeliveryUuMapper.java

@@ -0,0 +1,14 @@
+package com.ydd.module.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydd.module.domain.DspDeliveryUu;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author douya
+ * @date 2022-04-19
+ */
+public interface DspDeliveryUuMapper extends BaseMapper<DspDeliveryUu> {
+
+}

+ 21 - 0
lb-module/src/main/java/com/ydd/module/service/IAppInfoTokenService.java

@@ -0,0 +1,21 @@
+package com.ydd.module.service;
+
+import com.ydd.module.domain.AppInfoToken;
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author douya
+ * @date 2022-04-22
+ */
+public interface IAppInfoTokenService extends IService<AppInfoToken> {
+
+    /**
+     * 查询列表
+     * @param appInfoToken 实体
+     * @return 列表
+     */
+    List<AppInfoToken> queryList(AppInfoToken appInfoToken);
+}

+ 22 - 0
lb-module/src/main/java/com/ydd/module/service/IDspDeliveryUuService.java

@@ -0,0 +1,22 @@
+package com.ydd.module.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydd.module.domain.DspDeliveryUu;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author douya
+ * @date 2022-04-19
+ */
+public interface IDspDeliveryUuService extends IService<DspDeliveryUu> {
+
+    /**
+     * 查询列表
+     * @param dspDeliveryUu 实体
+     * @return 列表
+     */
+    List<DspDeliveryUu> queryList(DspDeliveryUu dspDeliveryUu);
+}

+ 44 - 0
lb-module/src/main/java/com/ydd/module/service/impl/AppInfoTokenServiceImpl.java

@@ -0,0 +1,44 @@
+package com.ydd.module.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.apache.commons.lang3.StringUtils;
+import com.ydd.module.mapper.AppInfoTokenMapper;
+import com.ydd.module.domain.AppInfoToken;
+import com.ydd.module.service.IAppInfoTokenService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author douya
+ * @date 2022-04-22
+ */
+@Service
+public class AppInfoTokenServiceImpl extends ServiceImpl<AppInfoTokenMapper, AppInfoToken> implements IAppInfoTokenService {
+
+    @Override
+    public List<AppInfoToken> queryList(AppInfoToken appInfoToken) {
+        LambdaQueryWrapper<AppInfoToken> lqw = Wrappers.lambdaQuery();
+        if (appInfoToken.getMemberId() != null){
+            lqw.eq(AppInfoToken::getMemberId ,appInfoToken.getMemberId());
+        }
+        if (appInfoToken.getAppId() != null){
+            lqw.eq(AppInfoToken::getAppId ,appInfoToken.getAppId());
+        }
+        if (StringUtils.isNotBlank(appInfoToken.getToken())){
+            lqw.eq(AppInfoToken::getToken ,appInfoToken.getToken());
+        }
+        if (StringUtils.isNotBlank(appInfoToken.getRefreshToken())){
+            lqw.eq(AppInfoToken::getRefreshToken ,appInfoToken.getRefreshToken());
+        }
+        if (appInfoToken.getExpiresTime() != null){
+            lqw.eq(AppInfoToken::getExpiresTime ,appInfoToken.getExpiresTime());
+        }
+        return this.list(lqw);
+    }
+}

+ 37 - 0
lb-module/src/main/java/com/ydd/module/service/impl/DspDeliveryUuServiceImpl.java

@@ -0,0 +1,37 @@
+package com.ydd.module.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydd.module.domain.DspDeliveryUu;
+import com.ydd.module.mapper.DspDeliveryUuMapper;
+import com.ydd.module.service.IDspDeliveryUuService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author douya
+ * @date 2022-04-19
+ */
+@Service
+public class DspDeliveryUuServiceImpl extends ServiceImpl<DspDeliveryUuMapper, DspDeliveryUu> implements IDspDeliveryUuService {
+
+    @Override
+    public List<DspDeliveryUu> queryList(DspDeliveryUu dspDeliveryUu) {
+        LambdaQueryWrapper<DspDeliveryUu> lqw = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(dspDeliveryUu.getOpenId())){
+            lqw.eq(DspDeliveryUu::getOpenId ,dspDeliveryUu.getOpenId());
+        }
+        if (StringUtils.isNotBlank(dspDeliveryUu.getCityName())){
+            lqw.like(DspDeliveryUu::getCityName ,dspDeliveryUu.getCityName());
+        }
+        if (dspDeliveryUu.getProductId() != null){
+            lqw.eq(DspDeliveryUu::getProductId ,dspDeliveryUu.getProductId());
+        }
+        return this.list(lqw);
+    }
+}

+ 17 - 0
lb-module/src/main/resources/mapper/module/AppInfoTokenMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydd.module.mapper.AppInfoTokenMapper">
+    
+    <resultMap type="AppInfoToken" id="AppInfoTokenResult">
+        <result property="id"    column="id"    />
+        <result property="memberId"    column="member_id"    />
+        <result property="appId"    column="app_id"    />
+        <result property="token"    column="token"    />
+        <result property="refreshToken"    column="refresh_token"    />
+        <result property="expiresTime"    column="expires_time"    />
+    </resultMap>
+
+
+</mapper>

+ 15 - 0
lb-module/src/main/resources/mapper/module/DspDeliveryUuMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydd.module.mapper.DspDeliveryUuMapper">
+    
+    <resultMap type="DspDeliveryUu" id="DspDeliveryUuResult">
+        <result property="id"    column="id"    />
+        <result property="openId"    column="open_id"    />
+        <result property="cityName"    column="city_name"    />
+        <result property="productId"    column="product_id"    />
+    </resultMap>
+
+
+</mapper>

+ 8 - 1
lb-third/lb-third-delivery/src/main/java/com/ydd/third/delivery/shunfeng/ShunfengClient.java

@@ -18,6 +18,7 @@ import com.ydd.third.delivery.shunfeng.vo.ProductDetail;
 import com.ydd.third.delivery.shunfeng.vo.Receive;
 import com.ydd.third.delivery.shunfeng.vo.Shop;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -92,7 +93,13 @@ public class ShunfengClient implements ClientHandler {
           //  productDetail.setProductUnit(product.getProductUnit());
             productDetails.add(productDetail);
         }
-
+        if(CollectionUtils.isNotEmpty(productDetails)) {
+            ProductDetail productDetail = new ProductDetail();
+            productDetail.setProductName("商品");
+            productDetail.setProductNum( order.getGoodsNum());
+            //  productDetail.setProductUnit(product.getProductUnit());
+            productDetails.add(productDetail);
+        }
 
         // 初始化request
         CreateOrderRequest request = new CreateOrderRequest();

+ 3 - 0
lb-third/lb-third-delivery/src/main/java/com/ydd/third/delivery/uupt/service/UuptDeliveryService.java

@@ -42,6 +42,9 @@ public class UuptDeliveryService implements ClientHandler {
     public ResObject<OrderResultVo> createOrder(OrderVo order) {
         String openId = deliveryConfig.getUuptOpenid();
         boolean isPlatForm = true;
+        if (StringUtils.isNotBlank(order.getOpenId())) {
+            openId = order.getOpenId();
+        }
         if (order.getIsMine() == 1) {
             openId = order.getOpenId();
             isPlatForm = false;