feat: REQ-2129 解决使用lambdaUpdate更新json的问题

This commit is contained in:
lilong 2024-03-28 10:42:09 +08:00
parent 001254de09
commit 1e3cffc844
2 changed files with 11 additions and 4 deletions

View File

@ -33,10 +33,12 @@ import cn.azxo.framework.common.model.Page;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.google.common.collect.Lists;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -312,6 +314,7 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
template.setMinAppVersion(param.getMinAppVersion());
template.setCreatorId(param.getOperatorId());
template.setUpdaterId(param.getOperatorId());
template.setPushData(param.getPushData());
return template;
}
@ -336,7 +339,7 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
.set(MessageBaseTemplate::getContent, param.getContent())
.set(MessageBaseTemplate::getIcon, param.getIcon())
.set(MessageBaseTemplate::getMinAppVersion, param.getMinAppVersion())
.set(Objects.nonNull(param.getPushData()), MessageBaseTemplate::getPushData, param.getPushData())
.set(Objects.nonNull(param.getPushData()), MessageBaseTemplate::getPushData, param.getPushData().toJSONString())
.update();
}
@ -381,8 +384,10 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
templateCodes = Lists.newArrayList(request.getTemplateCode());
}
IPage<MessageBaseTemplate> pageRequest = request.toPage();
return messageBaseTemplateDao.lambdaQuery()
.apply(Objects.nonNull(request.pushSwitchOn),"json_extract(push_data, '$.switchOn') = " + request.pushSwitchOn)
.apply(BooleanUtils.isFalse(request.pushSwitchOn), "(json_extract(push_data, '$.switchOn') is null or json_extract(push_data, '$.switchOn') = false)")
.apply(BooleanUtils.isTrue(request.pushSwitchOn), "json_extract(push_data, '$.switchOn') = true")
.like(StringUtils.isNotBlank(request.getTemplateName()),
MessageBaseTemplate::getName, request.getTemplateName())
.in(CollectionUtils.isNotEmpty(templateCodes), MessageBaseTemplate::getCode, templateCodes)

View File

@ -24,8 +24,10 @@ import java.io.Serializable;
* @date 2023/9/20
* @version 1.0
*/
@Setter
@Getter
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "message_base_template", autoResultMap = true)
public class MessageBaseTemplate extends BaseEntityExt<MessageBaseTemplate> implements Serializable {