货物包增长预测功能代码框架

This commit is contained in:
2026-05-26 08:39:08 +08:00
parent c0fed06eaa
commit 32fce665ea
6 changed files with 521 additions and 0 deletions

View File

@@ -0,0 +1,254 @@
package com.rj.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.rj.entity.LbGoods;
import com.rj.mapper.LbGoodsMapper;
import com.rj.service.ILbGoodsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.HashMap;
import java.util.Map;
@Slf4j
@Service
public class LbGoodsServiceImpl extends ServiceImpl<LbGoodsMapper, LbGoods> implements ILbGoodsService {
private static final DateTimeFormatter DATETIME_FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@Override
public Map<String, Object> add(LbGoods entity) {
Map<String, Object> result = new HashMap<>();
try {
if (entity.getId() == null) {
result.put("success", false);
result.put("message", "id不能为空");
return result;
}
if (entity.getTenantId() == null || entity.getTenantId().trim().isEmpty()) {
result.put("success", false);
result.put("message", "tenantId不能为空");
return result;
}
entity.setTenantId(entity.getTenantId().trim());
if (this.getById(entity.getId()) != null) {
result.put("success", false);
result.put("message", "该商品 id 已存在");
return result;
}
applyDefaults(entity);
LocalDateTime now = LocalDateTime.now();
if (entity.getCreatedAt() == null) {
entity.setCreatedAt(now);
}
if (entity.getUpdatedAt() == null) {
entity.setUpdatedAt(now);
}
boolean ok = this.save(entity);
result.put("success", ok);
result.put("message", ok ? "新增成功" : "新增失败");
if (ok) {
result.put("data", this.getById(entity.getId()));
}
return result;
} catch (Exception e) {
log.error("货品新增异常", e);
result.put("success", false);
result.put("message", "新增异常:" + e.getMessage());
return result;
}
}
@Override
public Map<String, Object> update(LbGoods entity) {
Map<String, Object> result = new HashMap<>();
try {
if (entity.getId() == null) {
result.put("success", false);
result.put("message", "id不能为空");
return result;
}
if (this.getById(entity.getId()) == null) {
result.put("success", false);
result.put("message", "记录不存在");
return result;
}
if (entity.getTenantId() != null) {
entity.setTenantId(entity.getTenantId().trim());
}
entity.setUpdatedAt(LocalDateTime.now());
boolean ok = this.updateById(entity);
result.put("success", ok);
result.put("message", ok ? "编辑成功" : "编辑失败");
if (ok) {
result.put("data", this.getById(entity.getId()));
}
return result;
} catch (Exception e) {
log.error("货品编辑异常", e);
result.put("success", false);
result.put("message", "编辑异常:" + e.getMessage());
return result;
}
}
@Override
public Map<String, Object> deleteById(Long id) {
Map<String, Object> result = new HashMap<>();
try {
if (id == null) {
result.put("success", false);
result.put("message", "id不能为空");
return result;
}
boolean ok = this.removeById(id);
result.put("success", ok);
result.put("message", ok ? "删除成功" : "删除失败");
return result;
} catch (Exception e) {
log.error("货品删除异常", e);
result.put("success", false);
result.put("message", "删除异常:" + e.getMessage());
return result;
}
}
@Override
public Map<String, Object> pageQuery(
Integer current,
Integer size,
String tenantId,
Long oldId,
Long userId,
String title,
Long sellerId,
Integer isShow,
Integer status,
String createdAtStart,
String createdAtEnd,
String updatedAtStart,
String updatedAtEnd) {
Map<String, Object> result = new HashMap<>();
try {
if (current == null || current < 1) {
current = 1;
}
if (size == null || size < 1) {
size = 10;
}
LambdaQueryWrapper<LbGoods> w = new LambdaQueryWrapper<>();
if (tenantId != null && !tenantId.trim().isEmpty()) {
w.eq(LbGoods::getTenantId, tenantId.trim());
}
if (oldId != null) {
w.eq(LbGoods::getOldId, oldId);
}
if (userId != null) {
w.eq(LbGoods::getUserId, userId);
}
if (title != null && !title.trim().isEmpty()) {
w.like(LbGoods::getTitle, title.trim());
}
if (sellerId != null) {
w.eq(LbGoods::getSellerId, sellerId);
}
if (isShow != null) {
w.eq(LbGoods::getIsShow, isShow);
}
if (status != null) {
w.eq(LbGoods::getStatus, status);
}
LocalDateTime createdStart = parseDateTime(createdAtStart);
if (createdAtStart != null && !createdAtStart.trim().isEmpty() && createdStart == null) {
result.put("success", false);
result.put("message", "createdAtStart 格式错误,请使用 yyyy-MM-dd HH:mm:ss");
return result;
}
LocalDateTime createdEnd = parseDateTime(createdAtEnd);
if (createdAtEnd != null && !createdAtEnd.trim().isEmpty() && createdEnd == null) {
result.put("success", false);
result.put("message", "createdAtEnd 格式错误,请使用 yyyy-MM-dd HH:mm:ss");
return result;
}
if (createdStart != null) {
w.ge(LbGoods::getCreatedAt, createdStart);
}
if (createdEnd != null) {
w.le(LbGoods::getCreatedAt, createdEnd);
}
LocalDateTime updatedStart = parseDateTime(updatedAtStart);
if (updatedAtStart != null && !updatedAtStart.trim().isEmpty() && updatedStart == null) {
result.put("success", false);
result.put("message", "updatedAtStart 格式错误,请使用 yyyy-MM-dd HH:mm:ss");
return result;
}
LocalDateTime updatedEnd = parseDateTime(updatedAtEnd);
if (updatedAtEnd != null && !updatedAtEnd.trim().isEmpty() && updatedEnd == null) {
result.put("success", false);
result.put("message", "updatedAtEnd 格式错误,请使用 yyyy-MM-dd HH:mm:ss");
return result;
}
if (updatedStart != null) {
w.ge(LbGoods::getUpdatedAt, updatedStart);
}
if (updatedEnd != null) {
w.le(LbGoods::getUpdatedAt, updatedEnd);
}
w.orderByDesc(LbGoods::getUpdatedAt).orderByDesc(LbGoods::getId);
Page<LbGoods> page = this.page(new Page<>(current, size), w);
result.put("success", true);
result.put("message", "查询成功");
result.put("data", page.getRecords());
result.put("total", page.getTotal());
result.put("current", page.getCurrent());
result.put("size", page.getSize());
result.put("pages", page.getPages());
return result;
} catch (Exception e) {
log.error("货品分页查询异常", e);
result.put("success", false);
result.put("message", "查询异常:" + e.getMessage());
return result;
}
}
private static void applyDefaults(LbGoods entity) {
if (entity.getPrice() == null) {
entity.setPrice(BigDecimal.ZERO);
}
if (entity.getTotalMoney() == null) {
entity.setTotalMoney(BigDecimal.ZERO);
}
if (entity.getIsShow() == null) {
entity.setIsShow(1);
}
if (entity.getStatus() == null) {
entity.setStatus(1);
}
}
private static LocalDateTime parseDateTime(String text) {
if (text == null || text.trim().isEmpty()) {
return null;
}
try {
return LocalDateTime.parse(text.trim(), DATETIME_FMT);
} catch (DateTimeParseException e) {
return null;
}
}
}