|
@@ -17,9 +17,12 @@ import org.dromara.mall.mapper.EpScenarioCardsMapper;
|
|
|
import org.dromara.mall.service.IEpScenarioCardsService;
|
|
import org.dromara.mall.service.IEpScenarioCardsService;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.Collection;
|
|
import java.util.Collection;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
+import com.fasterxml.jackson.databind.JsonNode;
|
|
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 场景解决方案卡片Service业务层处理
|
|
* 场景解决方案卡片Service业务层处理
|
|
@@ -34,6 +37,8 @@ public class EpScenarioCardsServiceImpl extends ServiceImpl<EpScenarioCardsMappe
|
|
|
|
|
|
|
|
private final EpScenarioCardsMapper baseMapper;
|
|
private final EpScenarioCardsMapper baseMapper;
|
|
|
|
|
|
|
|
|
|
+ private static final ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 查询场景解决方案卡片
|
|
* 查询场景解决方案卡片
|
|
|
*
|
|
*
|
|
@@ -94,6 +99,10 @@ public class EpScenarioCardsServiceImpl extends ServiceImpl<EpScenarioCardsMappe
|
|
|
@Override
|
|
@Override
|
|
|
public Boolean insertByBo(EpScenarioCardsBo bo) {
|
|
public Boolean insertByBo(EpScenarioCardsBo bo) {
|
|
|
EpScenarioCards add = MapstructUtils.convert(bo, EpScenarioCards.class);
|
|
EpScenarioCards add = MapstructUtils.convert(bo, EpScenarioCards.class);
|
|
|
|
|
+
|
|
|
|
|
+ // 解析 remark 中的 JSON 数据,提取样式字段
|
|
|
|
|
+ parseRemarkToStyleFields(bo, add);
|
|
|
|
|
+
|
|
|
validEntityBeforeSave(add);
|
|
validEntityBeforeSave(add);
|
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
|
if (flag) {
|
|
if (flag) {
|
|
@@ -111,10 +120,46 @@ public class EpScenarioCardsServiceImpl extends ServiceImpl<EpScenarioCardsMappe
|
|
|
@Override
|
|
@Override
|
|
|
public Boolean updateByBo(EpScenarioCardsBo bo) {
|
|
public Boolean updateByBo(EpScenarioCardsBo bo) {
|
|
|
EpScenarioCards update = MapstructUtils.convert(bo, EpScenarioCards.class);
|
|
EpScenarioCards update = MapstructUtils.convert(bo, EpScenarioCards.class);
|
|
|
|
|
+
|
|
|
|
|
+ // 解析 remark 中的 JSON 数据,提取样式字段
|
|
|
|
|
+ parseRemarkToStyleFields(bo, update);
|
|
|
|
|
+
|
|
|
validEntityBeforeSave(update);
|
|
validEntityBeforeSave(update);
|
|
|
return baseMapper.updateById(update) > 0;
|
|
return baseMapper.updateById(update) > 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 解析 remark 中的 JSON 数据,提取样式字段到实体对象
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param bo 业务对象
|
|
|
|
|
+ * @param entity 实体对象
|
|
|
|
|
+ */
|
|
|
|
|
+ private void parseRemarkToStyleFields(EpScenarioCardsBo bo, EpScenarioCards entity) {
|
|
|
|
|
+ String remark = bo.getRemark();
|
|
|
|
|
+ if (StringUtils.isNotBlank(remark)) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ JsonNode rootNode = objectMapper.readTree(remark);
|
|
|
|
|
+
|
|
|
|
|
+ // 提取 subTitleColor
|
|
|
|
|
+ if (rootNode.has("subTitleColor")) {
|
|
|
|
|
+ entity.setSubTitleColor(rootNode.get("subTitleColor").asText());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 提取 bgColor
|
|
|
|
|
+ if (rootNode.has("bgColor")) {
|
|
|
|
|
+ entity.setBgColor(rootNode.get("bgColor").asText());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 提取 opacity
|
|
|
|
|
+ if (rootNode.has("opacity")) {
|
|
|
|
|
+ entity.setOpacity(new BigDecimal(rootNode.get("opacity").asDouble()));
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("解析 remark JSON 数据失败", e);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 保存前的数据校验
|
|
* 保存前的数据校验
|
|
|
*/
|
|
*/
|