入驻流程优化流程
This commit is contained in:
parent
58998d62b9
commit
5ea8fb658c
@ -72,6 +72,7 @@ public class DateTimeUtils {
|
||||
* - yyyy.MM.dd / yyyy/MM/dd / yyyy年MM月dd日
|
||||
* - yyyy.M.d / yyyy/M/d / yyyy年M月d日
|
||||
* - yy.MM.dd / yy.M.d
|
||||
* - yyyyMMdd
|
||||
* 特殊值:空值、"长期"、"永久" 转9999-12-31
|
||||
*/
|
||||
public static String convertLklDate(String dateStr) {
|
||||
@ -97,6 +98,11 @@ public class DateTimeUtils {
|
||||
|
||||
// 快速判断格式并解析
|
||||
try {
|
||||
// 处理纯数字格式 yyyyMMdd
|
||||
if (length == 8 && dateStr.matches("\\d{8}")) {
|
||||
return LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyyMMdd")).toString();
|
||||
}
|
||||
|
||||
// 处理连字符格式(yyyy-MM-dd 或 yyyy-M-d)
|
||||
if (dateStr.contains("-")) {
|
||||
if (length == 10 && dateStr.charAt(4) == '-' && dateStr.charAt(7) == '-') {
|
||||
@ -243,7 +249,9 @@ public class DateTimeUtils {
|
||||
// System.out.println(convertLklDate("永久")); // 9999-12-31
|
||||
// System.out.println(convertLklDate(null)); // 9999-12-31
|
||||
// System.out.println(convertLklDate("2025.2.30")); // 9999-12-31(无效日期)
|
||||
System.out.println(convertLklDate("2045-01-10")); // 2025-01-10
|
||||
|
||||
System.out.println(formatLocalDate(LocalDate.now(), "yyyy-MM-dd"));
|
||||
|
||||
// System.out.println(formatLocalDate(LocalDate.now(), "yyyy-MM-dd"));
|
||||
}
|
||||
}
|
||||
@ -62,6 +62,7 @@ public final class StringUtils extends org.apache.commons.lang3.StringUtils {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// System.out.println(validateIDCard("45088119970105771X"));
|
||||
System.out.println(getFileExt("https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/media/media/store/10073/20250807/41408657c5c84a758f5d0eca2b652cac.jpg"));
|
||||
}
|
||||
|
||||
public static String encode(String str) {
|
||||
@ -711,25 +712,6 @@ public final class StringUtils extends org.apache.commons.lang3.StringUtils {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成的随机数类型
|
||||
*/
|
||||
public enum RandomType {
|
||||
/**
|
||||
* 整数
|
||||
*/
|
||||
INT,
|
||||
/**
|
||||
* 字符串
|
||||
*/
|
||||
STRING,
|
||||
/**
|
||||
* 所有类型
|
||||
*/
|
||||
ALL
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断字符串是否为有效的经度值
|
||||
* 经度范围:-180° ~ 180°
|
||||
@ -767,4 +749,22 @@ public final class StringUtils extends org.apache.commons.lang3.StringUtils {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成的随机数类型
|
||||
*/
|
||||
public enum RandomType {
|
||||
/**
|
||||
* 整数
|
||||
*/
|
||||
INT,
|
||||
/**
|
||||
* 字符串
|
||||
*/
|
||||
STRING,
|
||||
/**
|
||||
* 所有类型
|
||||
*/
|
||||
ALL
|
||||
}
|
||||
}
|
||||
@ -1,12 +1,13 @@
|
||||
package com.suisung.mall.shop.base.service.impl;
|
||||
|
||||
import cn.hutool.captcha.CaptchaUtil;
|
||||
import cn.hutool.captcha.LineCaptcha;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.suisung.mall.common.constant.RedisConstant;
|
||||
import com.suisung.mall.common.modules.base.ShopBaseConfig;
|
||||
import com.suisung.mall.common.utils.CaptchaUtil;
|
||||
import com.suisung.mall.core.web.service.RedisService;
|
||||
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import com.suisung.mall.shop.base.mapper.ShopBaseConfigMapper;
|
||||
@ -96,110 +97,104 @@ public class ShopBaseConfigServiceImpl extends BaseServiceImpl<ShopBaseConfigMap
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取验证码
|
||||
*/
|
||||
@Override
|
||||
public void image(HttpServletResponse response) {
|
||||
// 设置响应头,确保浏览器正确处理图片
|
||||
response.setContentType("image/png");
|
||||
response.setHeader("Pragma", "no-cache");
|
||||
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
||||
response.setDateHeader("Expires", 0);
|
||||
response.setHeader("Content-Disposition", "inline; filename=captcha.png");
|
||||
|
||||
// 添加防止代理缓存的头
|
||||
response.setHeader("Proxy-Connection", "close");
|
||||
response.setHeader("Connection", "close");
|
||||
|
||||
OutputStream os = null;
|
||||
try {
|
||||
// 获取verify_token参数
|
||||
String verify_token = getParameter("verify_token", String.class);
|
||||
if (StrUtil.isBlank(verify_token)) {
|
||||
logger.warn("验证码请求缺少verify_token参数");
|
||||
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
|
||||
return;
|
||||
}
|
||||
|
||||
// 创建一个不依赖字体的简单数字验证码
|
||||
String captchaCode = CaptchaUtil.generateSimpleCaptcha(4);
|
||||
|
||||
// 手动创建简单的验证码图片
|
||||
BufferedImage image = CaptchaUtil.createSimpleCaptchaImage(captchaCode);
|
||||
|
||||
// 保存验证码到Redis
|
||||
String code = RedisConstant.Verifycode_NameSpace + verify_token + captchaCode;
|
||||
redisService.set(code, "", 60); // 有效期一分钟
|
||||
|
||||
// 输出图片到响应流
|
||||
os = response.getOutputStream();
|
||||
if (image != null) {
|
||||
ImageIO.write(image, "png", os);
|
||||
} else {
|
||||
logger.error("生成验证码图片失败,image为null");
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
os.flush();
|
||||
} catch (Exception e) {
|
||||
logger.error("获取验证码响应异常: " + e.getMessage(), e);
|
||||
try {
|
||||
// 确保即使出错也返回一个错误图片或空白图片
|
||||
response.setContentType("image/png");
|
||||
CaptchaUtil.createErrorImage(response.getOutputStream());
|
||||
} catch (Exception ex) {
|
||||
logger.error("设置错误响应状态异常: " + ex.getMessage(), ex);
|
||||
}
|
||||
} finally {
|
||||
if (os != null) {
|
||||
try {
|
||||
os.close();
|
||||
} catch (IOException e) {
|
||||
logger.error("关闭输出流异常: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// /**
|
||||
// * 获取验证码
|
||||
// */
|
||||
// @Override
|
||||
// public void image(HttpServletResponse response) {
|
||||
// // 设置响应头,确保浏览器正确处理图片
|
||||
// response.setContentType("image/png");
|
||||
// response.setHeader("Pragma", "no-cache");
|
||||
// response.setHeader("Cache-Control", "no-cache");
|
||||
// response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
||||
// response.setDateHeader("Expires", 0);
|
||||
// // 产生验证码图片的。图片的宽是116,高是36,验证码的长度是4,干扰线的条数是20
|
||||
// LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(120, 40, 4, 20);
|
||||
// response.setHeader("Content-Disposition", "inline; filename=captcha.png");
|
||||
//
|
||||
// // 可选:设置自定义字体(如果需要)
|
||||
//// lineCaptcha.setFont(new Font("Arial", Font.BOLD, 16));
|
||||
// // 添加防止代理缓存的头
|
||||
// response.setHeader("Proxy-Connection", "close");
|
||||
// response.setHeader("Connection", "close");
|
||||
//
|
||||
// // 拼接时间戳
|
||||
// String verify_token = getParameter("verify_token", String.class);
|
||||
//
|
||||
// //获取验证码图片中的字符串
|
||||
// String code = RedisConstant.Verifycode_NameSpace + verify_token + lineCaptcha.getCode();
|
||||
// redisService.set(code, "", 60); // 有效期一分钟
|
||||
//
|
||||
// //获取到response的响应流。
|
||||
// BufferedImage image = lineCaptcha.getImage();
|
||||
// OutputStream os = null;
|
||||
// try {
|
||||
// // 获取verify_token参数
|
||||
// String verify_token = getParameter("verify_token", String.class);
|
||||
// if (StrUtil.isBlank(verify_token)) {
|
||||
// logger.warn("验证码请求缺少verify_token参数");
|
||||
// response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// // 创建一个不依赖字体的简单数字验证码
|
||||
// String captchaCode = CaptchaUtil.generateSimpleCaptcha(4);
|
||||
//
|
||||
// // 手动创建简单的验证码图片
|
||||
// BufferedImage image = CaptchaUtil.createSimpleCaptchaImage(captchaCode);
|
||||
//
|
||||
// // 保存验证码到Redis
|
||||
// String code = RedisConstant.Verifycode_NameSpace + verify_token + captchaCode;
|
||||
// redisService.set(code, "", 60); // 有效期一分钟
|
||||
//
|
||||
// // 输出图片到响应流
|
||||
// os = response.getOutputStream();
|
||||
// ImageIO.write(image, "png", os);
|
||||
// } catch (IOException e) {
|
||||
// logger.error("获取验证码响应异常!" + e.getMessage(), e);
|
||||
// } finally {
|
||||
// if (image != null) {
|
||||
// ImageIO.write(image, "png", os);
|
||||
// } else {
|
||||
// logger.error("生成验证码图片失败,image为null");
|
||||
// response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
// }
|
||||
// os.flush();
|
||||
// } catch (Exception e) {
|
||||
// logger.error("获取验证码响应异常: " + e.getMessage(), e);
|
||||
// try {
|
||||
// assert os != null;
|
||||
// os.close();
|
||||
// } catch (IOException e) {
|
||||
// logger.error("获取验证码响应异常!" + e.getMessage(), e);
|
||||
// // 确保即使出错也返回一个错误图片或空白图片
|
||||
// response.setContentType("image/png");
|
||||
// CaptchaUtil.createErrorImage(response.getOutputStream());
|
||||
// } catch (Exception ex) {
|
||||
// logger.error("设置错误响应状态异常: " + ex.getMessage(), ex);
|
||||
// }
|
||||
// } finally {
|
||||
// if (os != null) {
|
||||
// try {
|
||||
// os.close();
|
||||
// } catch (IOException e) {
|
||||
// logger.error("关闭输出流异常: " + e.getMessage(), e);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
@Override
|
||||
public void image(HttpServletResponse response) {
|
||||
response.setContentType("image/png");
|
||||
response.setHeader("Pragma", "no-cache");
|
||||
response.setHeader("Cache-Control", "no-cache");
|
||||
response.setDateHeader("Expires", 0);
|
||||
// 产生验证码图片的。图片的宽是116,高是36,验证码的长度是4,干扰线的条数是20
|
||||
LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(120, 40, 4, 20);
|
||||
|
||||
// 拼接时间戳
|
||||
String verify_token = getParameter("verify_token", String.class);
|
||||
|
||||
//获取验证码图片中的字符串
|
||||
String code = RedisConstant.Verifycode_NameSpace + verify_token + lineCaptcha.getCode();
|
||||
redisService.set(code, "", 60); // 有效期一分钟
|
||||
|
||||
//获取到response的响应流。
|
||||
BufferedImage image = lineCaptcha.getImage();
|
||||
OutputStream os = null;
|
||||
try {
|
||||
os = response.getOutputStream();
|
||||
ImageIO.write(image, "png", os);
|
||||
} catch (IOException e) {
|
||||
logger.error("获取验证码响应异常!" + e.getMessage(), e);
|
||||
} finally {
|
||||
try {
|
||||
assert os != null;
|
||||
os.close();
|
||||
} catch (IOException e) {
|
||||
logger.error("获取验证码响应异常!" + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -430,7 +430,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
|
||||
LocalDate today = LocalDate.now();
|
||||
String signDate = DateTimeUtils.formatLocalDate(today, "yyyy-MM-dd");
|
||||
|
||||
|
||||
String platformName = "桂平发发网络有限公司";
|
||||
JSONObject ecParams = new JSONObject();
|
||||
ecParams.put("A1", isQy ? shopMchEntry.getBiz_license_company() : shopMchEntry.getAccount_holder_name());
|
||||
@ -1081,7 +1081,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
req.setLegalPersonCertificateType(paramsJSON.getStr("legalPersonCertificateType"));
|
||||
req.setLegalPersonCertificateNo(paramsJSON.getStr("legalPersonCertificateNo"));
|
||||
req.setAcctNo(paramsJSON.getStr("acctNo"));
|
||||
req.setAcctName(paramsJSON.getStr("acctName"));
|
||||
req.setAcctName(paramsJSON.getStr("licenseName"));
|
||||
req.setAcctTypeCode(paramsJSON.getStr("acctTypeCode"));
|
||||
req.setAcctCertificateType(paramsJSON.getStr("acctCertificateType"));
|
||||
req.setAcctCertificateNo(paramsJSON.getStr("acctCertificateNo"));
|
||||
@ -1109,10 +1109,12 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
|
||||
try {
|
||||
String fileBase64 = UploadUtil.fileUrlToBase64(fileUrl);
|
||||
String fileExt = StringUtils.getFileExt(fileUrl);
|
||||
fileExt = StrUtil.isBlank(fileExt) ? "jpg" : fileExt;
|
||||
JSONObject uploadResponse = uploadFile(
|
||||
StringUtils.genLklOrderNo(8),
|
||||
attachType,
|
||||
StringUtils.getFileExt(fileName),
|
||||
fileExt,
|
||||
fileBase64
|
||||
);
|
||||
|
||||
|
||||
@ -357,12 +357,10 @@ public class LklTkServiceImpl {
|
||||
Boolean isQy = CommonConstant.MCH_ENTITY_TYPE_QY.equals(shopMchEntry.getEntity_type());
|
||||
reqJsonBody.put("merType", isQy ? "TP_MERCHANT" : "TP_PERSONAL");
|
||||
|
||||
|
||||
reqJsonBody.put("longtude", shopMchEntry.getStore_longitude()); //longitude 经度
|
||||
reqJsonBody.put("latitude", shopMchEntry.getStore_latitude());
|
||||
reqJsonBody.put("source", "H5");
|
||||
|
||||
|
||||
reqJsonBody.put("larIdType", "01"); // 01 身份证 ,02 护照,03 港澳通行证,04 台胞证,10 外国人永久居留身份证,11 港妨澳居民居住证,12 台湾居民居住证,13 执行事务合伙人,99 其它证件
|
||||
String larName = isQy ? shopMchEntry.getLegal_person_name() : shopMchEntry.getContact_name();
|
||||
String larIdCard = isQy ? shopMchEntry.getLegal_person_id_number() : shopMchEntry.getIndividual_id_number();
|
||||
@ -401,12 +399,12 @@ public class LklTkServiceImpl {
|
||||
reqJsonBody.put("accountName", shopMchEntry.getAccount_holder_name()); //结算人账户名称
|
||||
reqJsonBody.put("accountIdCard", larIdCard);//结算⼈(法人或小微个人)证件号码(身份证)
|
||||
|
||||
Integer SettlementMethod = shopMchEntry.getSettlement_method();
|
||||
if (SettlementMethod == null || SettlementMethod < 0 || SettlementMethod > 1) {
|
||||
SettlementMethod = 0; // 结算类型: 0-秒到;1-次日结算
|
||||
}
|
||||
String settleType = String.format("D%d", SettlementMethod);
|
||||
reqJsonBody.put("settleType", settleType); //结算类型,D0秒到,D1次日结算
|
||||
// Integer SettlementMethod = shopMchEntry.getSettlement_method();
|
||||
// if (SettlementMethod == null || SettlementMethod < 0 || SettlementMethod > 1) {
|
||||
// SettlementMethod = 1; // 结算类型:0-秒到(不分账);1-次日结算(需要分账)
|
||||
// }
|
||||
String settleType = String.format("D%d", 1);
|
||||
reqJsonBody.put("settleType", settleType); //结算类型:0-秒到(不分账);1-次日结算(需要分账)
|
||||
// formData.put("settlementType", "AUTOMATIC"); // 结算方式:MANUAL:手动结算(结算至拉卡拉APP钱包),AUTOMATIC:自动结算到银行卡,REGULAR:定时结算(仅企业商户支持)
|
||||
|
||||
// 店铺省市区信息
|
||||
@ -531,7 +529,7 @@ public class LklTkServiceImpl {
|
||||
String errMsg = response.getStr("retMsg") == null ? "拉卡拉发生未知错误" : response.getStr("retMsg");
|
||||
shopMchEntryService.updateMerchEntryApprovalByMchId(shopMchEntry.getId(), CommonConstant.MCH_APPR_STA_LKL_NOPASS, "进件失败:" + errMsg);
|
||||
return Pair.of(false, "提交进件失败:" + errMsg);
|
||||
|
||||
|
||||
}
|
||||
|
||||
// {"merchantNo": "100132349","status": "WAIT_AUDI","state": "1"}
|
||||
|
||||
@ -116,6 +116,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
||||
try {
|
||||
// 1. 验证必要参数
|
||||
if (CheckUtil.isEmpty(storeId) || StringUtils.isAnyBlank(shopName, shopAddress, contactName, contactPhone)) {
|
||||
logger.error("创建顺丰店铺,缺少必要参数!storeId:{},shopName:{},shopAddress:{},contactName:{},contactPhone:{}", storeId, shopName, shopAddress, contactName, contactPhone);
|
||||
return Pair.of(false, "创建顺丰店铺,缺少必要参数!");
|
||||
}
|
||||
|
||||
@ -127,7 +128,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
||||
// 如果没有商家配送运费设置,则初始化
|
||||
Pair<Boolean, String> initResult = shopStoreSameCityTransportBaseService.initDefaultSameCityTransport(storeId);
|
||||
if (!initResult.getFirst()) {
|
||||
logger.error("初始化商家配送运费设置失败!");
|
||||
logger.error("初始化商家配送运费设置失败:{}", initResult.getSecond());
|
||||
return initResult;
|
||||
}
|
||||
transportBase = shopStoreSameCityTransportBaseService.getShopStoreSameCityTransportBaseById(Long.valueOf(storeId));
|
||||
|
||||
@ -778,11 +778,11 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
|
||||
// 转换拉卡拉的日期格式 yyyy-MM-dd
|
||||
record = convLklDateFormat(record);
|
||||
if (record.getSettlement_method() == null
|
||||
|| record.getSettlement_method() < 0
|
||||
|| record.getSettlement_method() > 1) {
|
||||
record.setSettlement_method(0); // 结算类型:0-秒到;1-次日结算
|
||||
}
|
||||
// if (record.getSettlement_method() == null
|
||||
// || record.getSettlement_method() < 0
|
||||
// || record.getSettlement_method() > 1) {
|
||||
record.setSettlement_method(1); // 结算类型:0-秒到(不分账);1-次日结算(需要分账)
|
||||
// }
|
||||
|
||||
// 执行更新操作
|
||||
if (!updateById(record)) {
|
||||
|
||||
@ -3094,10 +3094,11 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
|
||||
return Pair.of(0, "该商家申请人手机未注册账号!");
|
||||
}
|
||||
|
||||
if (isExistsByStoreName(shopMchEntry.getStore_name())) {
|
||||
logger.error("生成店铺:店铺名称已存在");
|
||||
return Pair.of(0, "店铺名称已存在,请使用另一名称");
|
||||
}
|
||||
// 入驻时已经检查过店铺名称了,此处忽略
|
||||
// if (isExistsByStoreName(shopMchEntry.getStore_name())) {
|
||||
// logger.error("生成店铺:店铺名称已存在");
|
||||
// return Pair.of(0, "店铺名称已存在,请使用另一名称");
|
||||
// }
|
||||
|
||||
// 校验店铺状态,
|
||||
if (CommonConstant.Enable.equals(shopMchEntry.getStore_status())) {
|
||||
|
||||
@ -36,6 +36,7 @@ import com.suisung.mall.shop.store.mapper.ShopStoreSameCityTransportBaseMapper;
|
||||
import com.suisung.mall.shop.store.service.ShopStoreBaseService;
|
||||
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService;
|
||||
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -52,6 +53,7 @@ import java.util.List;
|
||||
|
||||
import static com.suisung.mall.common.utils.ContextUtil.getCurrentUser;
|
||||
|
||||
@Slf4j
|
||||
@Lazy
|
||||
@Service
|
||||
public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<ShopStoreSameCityTransportBaseMapper, ShopStoreSameCityTransportBase> implements ShopStoreSameCityTransportBaseService {
|
||||
@ -362,30 +364,36 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
|
||||
try {
|
||||
// 校验店铺ID
|
||||
if (storeId == null || storeId <= 0) {
|
||||
log.error("初始化店铺默认配置:缺少店铺Id必要参数!");
|
||||
return Pair.of(false, "缺少店铺Id必要参数!");
|
||||
}
|
||||
|
||||
// 获取预设配置
|
||||
String sameCityDeliverySetting = accountBaseConfigService.getConfig("same_city_delivery_setting", "");
|
||||
if (StrUtil.isBlank(sameCityDeliverySetting)) {
|
||||
return Pair.of(false, "缺少同城配送预设设置!");
|
||||
return Pair.of(false, "缺少同城配送预设设置,请先配置好!");
|
||||
}
|
||||
|
||||
logger.info("同城配送预设设置:{}", sameCityDeliverySetting);
|
||||
|
||||
// 转换为 DTO 对象
|
||||
ShopStoreSameCityTransportBaseDTO transportDTO = JSONUtil.toBean(sameCityDeliverySetting, ShopStoreSameCityTransportBaseDTO.class);
|
||||
if (transportDTO == null) {
|
||||
return Pair.of(false, "同城配送预设设置格式错误!");
|
||||
log.error("初始化店铺默认配置:同城配送预设设置数据格式错误!");
|
||||
return Pair.of(false, "同城配送预设设置数据格式错误!");
|
||||
}
|
||||
|
||||
// 查询店铺信息
|
||||
ShopStoreBase storeBase = shopStoreBaseService.get(storeId);
|
||||
if (storeBase == null) {
|
||||
log.error("初始化店铺默认配置:店铺不存在!");
|
||||
return Pair.of(false, "店铺不存在!");
|
||||
}
|
||||
|
||||
// 设置基础配送信息
|
||||
ShopStoreSameCityTransportBase transportBase = transportDTO.getTransportBase();
|
||||
if (transportBase == null) {
|
||||
log.error("初始化店铺默认配置:缺少同城配送基础设置!");
|
||||
return Pair.of(false, "缺少同城配送基础设置!");
|
||||
}
|
||||
|
||||
@ -398,6 +406,7 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
|
||||
Pair<Long, String> saveOrUpdateResult = saveOrUpdateShopStoreSameCityTransportBase(transportBase);
|
||||
Long transportBaseId = saveOrUpdateResult.getFirst();
|
||||
if (transportBaseId == null || transportBaseId <= 0) {
|
||||
log.error("初始化店铺默认配置:新增同城配送基础设置失败!");
|
||||
return Pair.of(false, saveOrUpdateResult.getSecond());
|
||||
}
|
||||
|
||||
@ -409,7 +418,8 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
|
||||
// 保存扩展配送信息
|
||||
int count = shopStoreSameCityTransportService.saveOrUpdateShopStoreSameCityTransportList(transportDTO.getTransportList());
|
||||
if (count <= 0) {
|
||||
return Pair.of(false, "保存同城配送设置部分失败!");
|
||||
log.error("初始化店铺默认配置:保存同城配送设置扩展配送信息失败!更新数:{}", count);
|
||||
// return Pair.of(false, "保存同城配送设置扩展配送信息失败!");
|
||||
}
|
||||
|
||||
return Pair.of(true, "初始化成功");
|
||||
|
||||
@ -16,6 +16,7 @@ import com.suisung.mall.common.api.CommonResult;
|
||||
import com.suisung.mall.common.constant.CommonConstant;
|
||||
import com.suisung.mall.common.domain.UserDto;
|
||||
import com.suisung.mall.common.modules.store.ShopStoreSameCityTransport;
|
||||
import com.suisung.mall.common.utils.CheckUtil;
|
||||
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import com.suisung.mall.shop.store.mapper.ShopStoreSameCityTransportMapper;
|
||||
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportService;
|
||||
@ -102,9 +103,8 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
|
||||
int count = 0;
|
||||
for (ShopStoreSameCityTransport transport : transportList) {
|
||||
try {
|
||||
if (transport == null ||
|
||||
transport.getTransport_base_id() == null || transport.getTransport_base_id() <= 0 ||
|
||||
transport.getStore_id() == null || transport.getStore_id() <= 0) {
|
||||
if (transport == null || CheckUtil.isEmpty(transport.getTransport_base_id()) ||
|
||||
CheckUtil.isEmpty(transport.getStore_id())) {
|
||||
logger.error("缺少 transport_base_id 或 store_id 必要参数!");
|
||||
continue;
|
||||
}
|
||||
@ -114,22 +114,25 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
|
||||
transport.setArea_type(1); // 业务分类:1-圆半径;2-多边形
|
||||
}
|
||||
|
||||
if (transport.getMax_delivery_radius() == null || transport.getMax_delivery_radius() <= 0) {
|
||||
if (CheckUtil.isEmpty(transport.getMax_delivery_radius())) {
|
||||
logger.error("缺少配送范围,忽略保存!");
|
||||
continue;
|
||||
// continue;
|
||||
transport.setMax_delivery_radius(5000); //配送范围半径(米)
|
||||
}
|
||||
|
||||
if (transport.getMin_delivery_amount_type() == null && transport.getMin_delivery_amount() != null) {
|
||||
transport.setMin_delivery_amount_type(CommonConstant.Delivery_Amount_Comput_Type_Payment); //起送金额依据:1-订单原价;2-订单折扣价;3-订单实付金额;
|
||||
transport.setMin_delivery_amount(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
if ((transport.getDelivery_discount_type() == null || transport.getMin_delivery_discount_amount() == null)
|
||||
&& transport.getDelivery_discount() != null) {
|
||||
transport.setDelivery_discount_type(CommonConstant.Delivery_Amount_Comput_Type_Payment);//起送金额依据:1-订单原价;2-订单折扣价;3-订单实付金额;
|
||||
transport.setDelivery_discount(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
// 新增或更新
|
||||
if (transport.getTransport_id() == null || transport.getTransport_id() <= 0) {
|
||||
if (CheckUtil.isEmpty(transport.getTransport_id())) {
|
||||
if (save(transport)) {
|
||||
count++;
|
||||
}
|
||||
@ -139,7 +142,7 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("处理单条运输信息失败: ", e);
|
||||
logger.error("处理单条运费配置信息失败: ", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user