入驻流程优化流程

This commit is contained in:
Jack 2025-08-21 23:19:38 +08:00
parent 58998d62b9
commit 5ea8fb658c
10 changed files with 159 additions and 141 deletions

View File

@ -72,6 +72,7 @@ public class DateTimeUtils {
* - yyyy.MM.dd / yyyy/MM/dd / yyyy年MM月dd日 * - yyyy.MM.dd / yyyy/MM/dd / yyyy年MM月dd日
* - yyyy.M.d / yyyy/M/d / yyyy年M月d日 * - yyyy.M.d / yyyy/M/d / yyyy年M月d日
* - yy.MM.dd / yy.M.d * - yy.MM.dd / yy.M.d
* - yyyyMMdd
* 特殊值空值"长期""永久" 转9999-12-31 * 特殊值空值"长期""永久" 转9999-12-31
*/ */
public static String convertLklDate(String dateStr) { public static String convertLklDate(String dateStr) {
@ -97,6 +98,11 @@ public class DateTimeUtils {
// 快速判断格式并解析 // 快速判断格式并解析
try { try {
// 处理纯数字格式 yyyyMMdd
if (length == 8 && dateStr.matches("\\d{8}")) {
return LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyyMMdd")).toString();
}
// 处理连字符格式yyyy-MM-dd yyyy-M-d // 处理连字符格式yyyy-MM-dd yyyy-M-d
if (dateStr.contains("-")) { if (dateStr.contains("-")) {
if (length == 10 && dateStr.charAt(4) == '-' && dateStr.charAt(7) == '-') { 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("永久")); // 9999-12-31
// System.out.println(convertLklDate(null)); // 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("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"));
} }
} }

View File

@ -62,6 +62,7 @@ public final class StringUtils extends org.apache.commons.lang3.StringUtils {
public static void main(String[] args) { public static void main(String[] args) {
// System.out.println(validateIDCard("45088119970105771X")); // 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) { public static String encode(String str) {
@ -711,25 +712,6 @@ public final class StringUtils extends org.apache.commons.lang3.StringUtils {
return null; return null;
} }
/**
* 生成的随机数类型
*/
public enum RandomType {
/**
* 整数
*/
INT,
/**
* 字符串
*/
STRING,
/**
* 所有类型
*/
ALL
}
/** /**
* 判断字符串是否为有效的经度值 * 判断字符串是否为有效的经度值
* 经度范围-180° ~ 180° * 经度范围-180° ~ 180°
@ -767,4 +749,22 @@ public final class StringUtils extends org.apache.commons.lang3.StringUtils {
return false; return false;
} }
} }
/**
* 生成的随机数类型
*/
public enum RandomType {
/**
* 整数
*/
INT,
/**
* 字符串
*/
STRING,
/**
* 所有类型
*/
ALL
}
} }

View File

@ -1,12 +1,13 @@
package com.suisung.mall.shop.base.service.impl; 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.convert.Convert;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.suisung.mall.common.constant.RedisConstant; import com.suisung.mall.common.constant.RedisConstant;
import com.suisung.mall.common.modules.base.ShopBaseConfig; 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.RedisService;
import com.suisung.mall.core.web.service.impl.BaseServiceImpl; import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
import com.suisung.mall.shop.base.mapper.ShopBaseConfigMapper; 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 // @Override
// public void image(HttpServletResponse response) { // public void image(HttpServletResponse response) {
// // 设置响应头确保浏览器正确处理图片
// response.setContentType("image/png"); // response.setContentType("image/png");
// response.setHeader("Pragma", "no-cache"); // 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); // response.setDateHeader("Expires", 0);
// // 产生验证码图片的图片的宽是116高是36验证码的长度是4干扰线的条数是20 // response.setHeader("Content-Disposition", "inline; filename=captcha.png");
// LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(120, 40, 4, 20);
// //
// // 可选设置自定义字体如果需要 // // 添加防止代理缓存的头
//// 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; // OutputStream os = null;
// try { // 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(); // os = response.getOutputStream();
// ImageIO.write(image, "png", os); // if (image != null) {
// } catch (IOException e) { // ImageIO.write(image, "png", os);
// logger.error("获取验证码响应异常!" + e.getMessage(), e); // } else {
// } finally { // logger.error("生成验证码图片失败image为null");
// response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
// }
// os.flush();
// } catch (Exception e) {
// logger.error("获取验证码响应异常: " + e.getMessage(), e);
// try { // try {
// assert os != null; // // 确保即使出错也返回一个错误图片或空白图片
// os.close(); // response.setContentType("image/png");
// } catch (IOException e) { // CaptchaUtil.createErrorImage(response.getOutputStream());
// logger.error("获取验证码响应异常!" + e.getMessage(), e); // } 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);
}
}
}
} }

View File

@ -1081,7 +1081,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
req.setLegalPersonCertificateType(paramsJSON.getStr("legalPersonCertificateType")); req.setLegalPersonCertificateType(paramsJSON.getStr("legalPersonCertificateType"));
req.setLegalPersonCertificateNo(paramsJSON.getStr("legalPersonCertificateNo")); req.setLegalPersonCertificateNo(paramsJSON.getStr("legalPersonCertificateNo"));
req.setAcctNo(paramsJSON.getStr("acctNo")); req.setAcctNo(paramsJSON.getStr("acctNo"));
req.setAcctName(paramsJSON.getStr("acctName")); req.setAcctName(paramsJSON.getStr("licenseName"));
req.setAcctTypeCode(paramsJSON.getStr("acctTypeCode")); req.setAcctTypeCode(paramsJSON.getStr("acctTypeCode"));
req.setAcctCertificateType(paramsJSON.getStr("acctCertificateType")); req.setAcctCertificateType(paramsJSON.getStr("acctCertificateType"));
req.setAcctCertificateNo(paramsJSON.getStr("acctCertificateNo")); req.setAcctCertificateNo(paramsJSON.getStr("acctCertificateNo"));
@ -1109,10 +1109,12 @@ public class LakalaApiServiceImpl implements LakalaApiService {
try { try {
String fileBase64 = UploadUtil.fileUrlToBase64(fileUrl); String fileBase64 = UploadUtil.fileUrlToBase64(fileUrl);
String fileExt = StringUtils.getFileExt(fileUrl);
fileExt = StrUtil.isBlank(fileExt) ? "jpg" : fileExt;
JSONObject uploadResponse = uploadFile( JSONObject uploadResponse = uploadFile(
StringUtils.genLklOrderNo(8), StringUtils.genLklOrderNo(8),
attachType, attachType,
StringUtils.getFileExt(fileName), fileExt,
fileBase64 fileBase64
); );

View File

@ -357,12 +357,10 @@ public class LklTkServiceImpl {
Boolean isQy = CommonConstant.MCH_ENTITY_TYPE_QY.equals(shopMchEntry.getEntity_type()); Boolean isQy = CommonConstant.MCH_ENTITY_TYPE_QY.equals(shopMchEntry.getEntity_type());
reqJsonBody.put("merType", isQy ? "TP_MERCHANT" : "TP_PERSONAL"); reqJsonBody.put("merType", isQy ? "TP_MERCHANT" : "TP_PERSONAL");
reqJsonBody.put("longtude", shopMchEntry.getStore_longitude()); //longitude 经度 reqJsonBody.put("longtude", shopMchEntry.getStore_longitude()); //longitude 经度
reqJsonBody.put("latitude", shopMchEntry.getStore_latitude()); reqJsonBody.put("latitude", shopMchEntry.getStore_latitude());
reqJsonBody.put("source", "H5"); reqJsonBody.put("source", "H5");
reqJsonBody.put("larIdType", "01"); // 01 身份证 02 护照03 港澳通行证04 台胞证10 外国人永久居留身份证11 港妨澳居民居住证12 台湾居民居住证13 执行事务合伙人99 其它证件 reqJsonBody.put("larIdType", "01"); // 01 身份证 02 护照03 港澳通行证04 台胞证10 外国人永久居留身份证11 港妨澳居民居住证12 台湾居民居住证13 执行事务合伙人99 其它证件
String larName = isQy ? shopMchEntry.getLegal_person_name() : shopMchEntry.getContact_name(); String larName = isQy ? shopMchEntry.getLegal_person_name() : shopMchEntry.getContact_name();
String larIdCard = isQy ? shopMchEntry.getLegal_person_id_number() : shopMchEntry.getIndividual_id_number(); 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("accountName", shopMchEntry.getAccount_holder_name()); //结算人账户名称
reqJsonBody.put("accountIdCard", larIdCard);//结算法人或小微个人证件号码(身份证) reqJsonBody.put("accountIdCard", larIdCard);//结算法人或小微个人证件号码(身份证)
Integer SettlementMethod = shopMchEntry.getSettlement_method(); // Integer SettlementMethod = shopMchEntry.getSettlement_method();
if (SettlementMethod == null || SettlementMethod < 0 || SettlementMethod > 1) { // if (SettlementMethod == null || SettlementMethod < 0 || SettlementMethod > 1) {
SettlementMethod = 0; // 结算类型 0-秒到1-次日结算 // SettlementMethod = 1; // 结算类型0-秒到不分账1-次日结算需要分账
} // }
String settleType = String.format("D%d", SettlementMethod); String settleType = String.format("D%d", 1);
reqJsonBody.put("settleType", settleType); //结算类型D0秒到D1次日结算 reqJsonBody.put("settleType", settleType); //结算类型0-秒到不分账1-次日结算需要分账
// formData.put("settlementType", "AUTOMATIC"); // 结算方式MANUAL:手动结算(结算至拉卡拉APP钱包),AUTOMATIC:自动结算到银行卡,REGULAR:定时结算仅企业商户支持 // formData.put("settlementType", "AUTOMATIC"); // 结算方式MANUAL:手动结算(结算至拉卡拉APP钱包),AUTOMATIC:自动结算到银行卡,REGULAR:定时结算仅企业商户支持
// 店铺省市区信息 // 店铺省市区信息

View File

@ -116,6 +116,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
try { try {
// 1. 验证必要参数 // 1. 验证必要参数
if (CheckUtil.isEmpty(storeId) || StringUtils.isAnyBlank(shopName, shopAddress, contactName, contactPhone)) { 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, "创建顺丰店铺,缺少必要参数!"); return Pair.of(false, "创建顺丰店铺,缺少必要参数!");
} }
@ -127,7 +128,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
// 如果没有商家配送运费设置则初始化 // 如果没有商家配送运费设置则初始化
Pair<Boolean, String> initResult = shopStoreSameCityTransportBaseService.initDefaultSameCityTransport(storeId); Pair<Boolean, String> initResult = shopStoreSameCityTransportBaseService.initDefaultSameCityTransport(storeId);
if (!initResult.getFirst()) { if (!initResult.getFirst()) {
logger.error("初始化商家配送运费设置失败"); logger.error("初始化商家配送运费设置失败{}", initResult.getSecond());
return initResult; return initResult;
} }
transportBase = shopStoreSameCityTransportBaseService.getShopStoreSameCityTransportBaseById(Long.valueOf(storeId)); transportBase = shopStoreSameCityTransportBaseService.getShopStoreSameCityTransportBaseById(Long.valueOf(storeId));

View File

@ -778,11 +778,11 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
// 转换拉卡拉的日期格式 yyyy-MM-dd // 转换拉卡拉的日期格式 yyyy-MM-dd
record = convLklDateFormat(record); record = convLklDateFormat(record);
if (record.getSettlement_method() == null // if (record.getSettlement_method() == null
|| record.getSettlement_method() < 0 // || record.getSettlement_method() < 0
|| record.getSettlement_method() > 1) { // || record.getSettlement_method() > 1) {
record.setSettlement_method(0); // 结算类型0-秒到1-次日结算 record.setSettlement_method(1); // 结算类型0-秒到不分账1-次日结算需要分账
} // }
// 执行更新操作 // 执行更新操作
if (!updateById(record)) { if (!updateById(record)) {

View File

@ -3094,10 +3094,11 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
return Pair.of(0, "该商家申请人手机未注册账号!"); return Pair.of(0, "该商家申请人手机未注册账号!");
} }
if (isExistsByStoreName(shopMchEntry.getStore_name())) { // 入驻时已经检查过店铺名称了此处忽略
logger.error("生成店铺:店铺名称已存在"); // if (isExistsByStoreName(shopMchEntry.getStore_name())) {
return Pair.of(0, "店铺名称已存在,请使用另一名称"); // logger.error("生成店铺:店铺名称已存在");
} // return Pair.of(0, "店铺名称已存在,请使用另一名称");
// }
// 校验店铺状态 // 校验店铺状态
if (CommonConstant.Enable.equals(shopMchEntry.getStore_status())) { if (CommonConstant.Enable.equals(shopMchEntry.getStore_status())) {

View File

@ -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.ShopStoreBaseService;
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService; import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService;
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportService; import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportService;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -52,6 +53,7 @@ import java.util.List;
import static com.suisung.mall.common.utils.ContextUtil.getCurrentUser; import static com.suisung.mall.common.utils.ContextUtil.getCurrentUser;
@Slf4j
@Lazy @Lazy
@Service @Service
public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<ShopStoreSameCityTransportBaseMapper, ShopStoreSameCityTransportBase> implements ShopStoreSameCityTransportBaseService { public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<ShopStoreSameCityTransportBaseMapper, ShopStoreSameCityTransportBase> implements ShopStoreSameCityTransportBaseService {
@ -362,30 +364,36 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
try { try {
// 校验店铺ID // 校验店铺ID
if (storeId == null || storeId <= 0) { if (storeId == null || storeId <= 0) {
log.error("初始化店铺默认配置缺少店铺Id必要参数");
return Pair.of(false, "缺少店铺Id必要参数"); return Pair.of(false, "缺少店铺Id必要参数");
} }
// 获取预设配置 // 获取预设配置
String sameCityDeliverySetting = accountBaseConfigService.getConfig("same_city_delivery_setting", ""); String sameCityDeliverySetting = accountBaseConfigService.getConfig("same_city_delivery_setting", "");
if (StrUtil.isBlank(sameCityDeliverySetting)) { if (StrUtil.isBlank(sameCityDeliverySetting)) {
return Pair.of(false, "缺少同城配送预设设置"); return Pair.of(false, "缺少同城配送预设设置,请先配置好");
} }
logger.info("同城配送预设设置:{}", sameCityDeliverySetting);
// 转换为 DTO 对象 // 转换为 DTO 对象
ShopStoreSameCityTransportBaseDTO transportDTO = JSONUtil.toBean(sameCityDeliverySetting, ShopStoreSameCityTransportBaseDTO.class); ShopStoreSameCityTransportBaseDTO transportDTO = JSONUtil.toBean(sameCityDeliverySetting, ShopStoreSameCityTransportBaseDTO.class);
if (transportDTO == null) { if (transportDTO == null) {
return Pair.of(false, "同城配送预设设置格式错误!"); log.error("初始化店铺默认配置:同城配送预设设置数据格式错误!");
return Pair.of(false, "同城配送预设设置数据格式错误!");
} }
// 查询店铺信息 // 查询店铺信息
ShopStoreBase storeBase = shopStoreBaseService.get(storeId); ShopStoreBase storeBase = shopStoreBaseService.get(storeId);
if (storeBase == null) { if (storeBase == null) {
log.error("初始化店铺默认配置:店铺不存在!");
return Pair.of(false, "店铺不存在!"); return Pair.of(false, "店铺不存在!");
} }
// 设置基础配送信息 // 设置基础配送信息
ShopStoreSameCityTransportBase transportBase = transportDTO.getTransportBase(); ShopStoreSameCityTransportBase transportBase = transportDTO.getTransportBase();
if (transportBase == null) { if (transportBase == null) {
log.error("初始化店铺默认配置:缺少同城配送基础设置!");
return Pair.of(false, "缺少同城配送基础设置!"); return Pair.of(false, "缺少同城配送基础设置!");
} }
@ -398,6 +406,7 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
Pair<Long, String> saveOrUpdateResult = saveOrUpdateShopStoreSameCityTransportBase(transportBase); Pair<Long, String> saveOrUpdateResult = saveOrUpdateShopStoreSameCityTransportBase(transportBase);
Long transportBaseId = saveOrUpdateResult.getFirst(); Long transportBaseId = saveOrUpdateResult.getFirst();
if (transportBaseId == null || transportBaseId <= 0) { if (transportBaseId == null || transportBaseId <= 0) {
log.error("初始化店铺默认配置:新增同城配送基础设置失败!");
return Pair.of(false, saveOrUpdateResult.getSecond()); return Pair.of(false, saveOrUpdateResult.getSecond());
} }
@ -409,7 +418,8 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
// 保存扩展配送信息 // 保存扩展配送信息
int count = shopStoreSameCityTransportService.saveOrUpdateShopStoreSameCityTransportList(transportDTO.getTransportList()); int count = shopStoreSameCityTransportService.saveOrUpdateShopStoreSameCityTransportList(transportDTO.getTransportList());
if (count <= 0) { if (count <= 0) {
return Pair.of(false, "保存同城配送设置部分失败!"); log.error("初始化店铺默认配置:保存同城配送设置扩展配送信息失败!更新数:{}", count);
// return Pair.of(false, "保存同城配送设置扩展配送信息失败!");
} }
return Pair.of(true, "初始化成功"); return Pair.of(true, "初始化成功");

View File

@ -16,6 +16,7 @@ import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.constant.CommonConstant; import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.domain.UserDto; import com.suisung.mall.common.domain.UserDto;
import com.suisung.mall.common.modules.store.ShopStoreSameCityTransport; 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.core.web.service.impl.BaseServiceImpl;
import com.suisung.mall.shop.store.mapper.ShopStoreSameCityTransportMapper; import com.suisung.mall.shop.store.mapper.ShopStoreSameCityTransportMapper;
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportService; import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportService;
@ -102,9 +103,8 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
int count = 0; int count = 0;
for (ShopStoreSameCityTransport transport : transportList) { for (ShopStoreSameCityTransport transport : transportList) {
try { try {
if (transport == null || if (transport == null || CheckUtil.isEmpty(transport.getTransport_base_id()) ||
transport.getTransport_base_id() == null || transport.getTransport_base_id() <= 0 || CheckUtil.isEmpty(transport.getStore_id())) {
transport.getStore_id() == null || transport.getStore_id() <= 0) {
logger.error("缺少 transport_base_id 或 store_id 必要参数!"); logger.error("缺少 transport_base_id 或 store_id 必要参数!");
continue; continue;
} }
@ -114,22 +114,25 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
transport.setArea_type(1); // 业务分类1-圆半径2-多边形 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("缺少配送范围,忽略保存!"); logger.error("缺少配送范围,忽略保存!");
continue; // continue;
transport.setMax_delivery_radius(5000); //配送范围半径
} }
if (transport.getMin_delivery_amount_type() == null && transport.getMin_delivery_amount() != null) { 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); transport.setMin_delivery_amount(BigDecimal.ZERO);
} }
if ((transport.getDelivery_discount_type() == null || transport.getMin_delivery_discount_amount() == null) if ((transport.getDelivery_discount_type() == null || transport.getMin_delivery_discount_amount() == null)
&& transport.getDelivery_discount() != null) { && transport.getDelivery_discount() != null) {
transport.setDelivery_discount_type(CommonConstant.Delivery_Amount_Comput_Type_Payment);//起送金额依据1-订单原价2-订单折扣价3-订单实付金额
transport.setDelivery_discount(BigDecimal.ZERO); transport.setDelivery_discount(BigDecimal.ZERO);
} }
// 新增或更新 // 新增或更新
if (transport.getTransport_id() == null || transport.getTransport_id() <= 0) { if (CheckUtil.isEmpty(transport.getTransport_id())) {
if (save(transport)) { if (save(transport)) {
count++; count++;
} }
@ -139,7 +142,7 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
} }
} }
} catch (Exception e) { } catch (Exception e) {
logger.error("处理单条运信息失败: ", e); logger.error("处理单条运费配置信息失败: ", e);
} }
} }