提交 b9024ff9 authored 作者: douxy's avatar douxy

修改同步价格时单位转换关系异常的消息推送由单点发送转换为群机器人发送,便于查看异常

上级 e254fdc4
...@@ -6,6 +6,7 @@ import com.lark.oapi.service.corehr.v1.model.Offboarding; ...@@ -6,6 +6,7 @@ import com.lark.oapi.service.corehr.v1.model.Offboarding;
import com.lark.oapi.service.corehr.v2.model.*; import com.lark.oapi.service.corehr.v2.model.*;
import com.sfa.common.core.enums.promotion.PlanStatus; import com.sfa.common.core.enums.promotion.PlanStatus;
import com.sfa.common.core.utils.sdk.FeiShuUtil; import com.sfa.common.core.utils.sdk.FeiShuUtil;
import com.sfa.common.core.utils.sdk.FeiShuUtils;
import com.sfa.job.domain.promotion.dao.IActivityPlanDao; import com.sfa.job.domain.promotion.dao.IActivityPlanDao;
import com.sfa.job.domain.system.dao.ISysDeptDao; import com.sfa.job.domain.system.dao.ISysDeptDao;
import com.sfa.job.domain.system.dao.ISysEventLogDao; import com.sfa.job.domain.system.dao.ISysEventLogDao;
...@@ -275,7 +276,7 @@ public class EventCallbackServiceImpl implements IEventCallbackService{ ...@@ -275,7 +276,7 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
// 查询勤策商品完整JSON(包含所有原有字段:商品ID、第三方ID等) // 查询勤策商品完整JSON(包含所有原有字段:商品ID、第三方ID等)
com.alibaba.fastjson.JSONObject qinCeProductJson = qinCeUtils.queryProductInfo(productCode); com.alibaba.fastjson.JSONObject qinCeProductJson = qinCeUtils.queryProductInfo(productCode);
if (qinCeProductJson == null || qinCeProductJson.isEmpty()) { if (qinCeProductJson == null || qinCeProductJson.isEmpty()) {
String errorMsg = "勤策未查询到产品编码为" + productCode + "的商品信息"; String errorMsg = "勤策未查询到产品编码为" + productCode + "的商品信息";
log.error(errorMsg); log.error(errorMsg);
recordErrorLog("QinCe price sync", "QinCe price", "产品编码:" + productCode, errorMsg); recordErrorLog("QinCe price sync", "QinCe price", "产品编码:" + productCode, errorMsg);
return; return;
...@@ -285,8 +286,8 @@ public class EventCallbackServiceImpl implements IEventCallbackService{ ...@@ -285,8 +286,8 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
// 校验勤策商品单位信息 // 校验勤策商品单位信息
if (qinCeProductJson.getJSONArray("prd_units") != null && if (qinCeProductJson.getJSONArray("prd_units") != null &&
qinCeProductJson.getJSONArray("prd_units").size() <= 1) { qinCeProductJson.getJSONArray("prd_units").size() <= 1) {
String message = String.format("检测产品编码 %s 的单位信息可能未进行转换", productCode); String message = String.format("检测到产品编码为 %s 的单位信息可能未进行转换", productCode);
feiShuUtil.sendMessageToUserByEmployeeId(message); FeiShuUtils.pustRoot(FeiShuUtil.syncpriceWebhook, message);
} }
com.alibaba.fastjson.JSONObject updateJson = buildQinCeModifyParam(qinCeProductJson, minSellingPrice); com.alibaba.fastjson.JSONObject updateJson = buildQinCeModifyParam(qinCeProductJson, minSellingPrice);
...@@ -404,21 +405,20 @@ public class EventCallbackServiceImpl implements IEventCallbackService{ ...@@ -404,21 +405,20 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
saleStatusMap.put("0", "停售"); saleStatusMap.put("0", "停售");
saleStatusMap.put("1", "在售"); saleStatusMap.put("1", "在售");
// ========== 2. 顶级字段(严格匹配勤策接口示例字段名) ========== // ========== 顶级字段(严格匹配勤策接口示例字段名) ==========
// 核心标识字段 // 核心标识字段
modifyParam.put("prd_id", StringUtils.defaultString(qinCeProductJson.getString("prd_id"))); modifyParam.put("prd_id", StringUtils.defaultString(qinCeProductJson.getString("prd_id")));
// 排序/价格字段 // 排序/价格字段
modifyParam.put("prd_suggest_price", minSellingPrice == null ? BigDecimal.ZERO : minSellingPrice); modifyParam.put("prd_suggest_price", minSellingPrice == null ? BigDecimal.ZERO : minSellingPrice);
// 销售状态(核心:停售→在售,映射为标准数值) // 销售状态
String originalSaleStatus = qinCeProductJson.getString("prd_sale_status"); String originalSaleStatus = qinCeProductJson.getString("prd_sale_status");
String standardSaleStatus = StringUtils.defaultString(originalSaleStatus); String standardSaleStatus = StringUtils.defaultString(originalSaleStatus);
// 转换为标准数值(0=停售,1=在售) // 转换为标准数值(0=停售,1=在售)
if (saleStatusMap.containsKey(standardSaleStatus)) { if (saleStatusMap.containsKey(standardSaleStatus)) {
standardSaleStatus = standardSaleStatus.matches("[01]") ? standardSaleStatus : saleStatusMap.get(standardSaleStatus); standardSaleStatus = standardSaleStatus.matches("[01]") ? standardSaleStatus : saleStatusMap.get(standardSaleStatus);
} }
// 强制停售→在售
modifyParam.put("prd_sale_status", standardSaleStatus); modifyParam.put("prd_sale_status", standardSaleStatus);
// 标签值 // 标签值
...@@ -456,4 +456,4 @@ public class EventCallbackServiceImpl implements IEventCallbackService{ ...@@ -456,4 +456,4 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
return modifyParam; return modifyParam;
} }
} }
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论