存酒接口

This commit is contained in:
张松
2025-02-27 13:58:04 +08:00
parent 250ce131d2
commit 2bce1acb69
27 changed files with 807 additions and 63 deletions

View File

@@ -0,0 +1,92 @@
package com.czg.account.dto;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.alibaba.fastjson2.annotation.JSONField;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 用户存酒 实体类。
*
* @author zs
* @since 2025-02-27
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShopStorageDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Integer id;
/**
* 酒品名
*/
private String name;
/**
* 酒品图
*/
private String imgUrl;
/**
* 单位
*/
private String unit;
/**
* 数量
*/
private Integer num;
/**
* 0已取完1未取完2已过期
*/
private Integer status;
/**
* 到期时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime expTime;
/**
* 存酒时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime savTime;
/**
* 用户Id
*/
private Integer userId;
/**
* 用户头像
*/
private String headImg;
/**
* 用户昵称
*/
private String nickName;
/**
* 用户电话
*/
private String telphone;
/**
* 店铺id
*/
private Integer shopId;
}

View File

@@ -0,0 +1,46 @@
package com.czg.product.dto;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.alibaba.fastjson2.annotation.JSONField;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 存取酒记录表 实体类。
*
* @author zs
* @since 2025-02-27
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShopStorageRecordDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Integer id;
/**
* 存酒信息id
*/
private Integer storageId;
/**
* 记录
*/
private String content;
/**
* 操作时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime time;
}

View File

@@ -0,0 +1,14 @@
package com.czg.product.dto.storage;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class CountStorageDTO {
private String name;
private String imgUrl;
private Long savNum;
private Long expNum;
}

View File

@@ -0,0 +1,34 @@
package com.czg.product.dto.storage;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
*
* @author Administrator
*/
@Data
public class ShopStorageAddDTO {
/**
* shopUser的userId不是主键id
*/
@NotNull(message = "用户id不为空")
private Long userId;
/**
* 酒品id
*/
@NotNull(message = "酒品id不为空")
private Long shopStorageGoodId;
/**
* 数量
*/
@NotNull(message = "数量不为空")
@Min(value = 1, message = "数量不能小于1")
private Integer num;
/**
* 多少天后过期,默认一天
*/
private Integer expDay;
}

View File

@@ -0,0 +1,25 @@
package com.czg.product.dto.storage;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import javax.swing.*;
/**
*
* @author Administrator
*/
@Data
public class ShopStorageEditDTO {
/**
* 存酒id
*/
@NotNull(message = "存酒id不为空")
private Integer id;
/**
* 正数为存酒反之为取酒
*/
@NotNull(message = "数量不为空")
private Integer num;
}

View File

@@ -1,11 +1,12 @@
package com.czg.account.dto.storage;
package com.czg.product.dto.storage;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.alibaba.fastjson2.annotation.JSONField;
import java.io.Serial;
import com.czg.validator.group.InsertGroup;
import com.czg.validator.group.UpdateGroup;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
@@ -32,19 +33,19 @@ public class ShopStorageGoodDTO {
/**
* 酒品名
*/
@NotEmpty(message = "酒品名不为空")
@NotEmpty(message = "酒品名不为空", groups = {UpdateGroup.class, InsertGroup.class})
private String name;
/**
* 图片地址
*/
@NotEmpty(message = "酒品名不为空")
@NotEmpty(message = "酒品名不为空", groups = {UpdateGroup.class, InsertGroup.class})
private String imgUrl;
/**
* 单位
*/
@NotEmpty(message = "单位不为空")
@NotEmpty(message = "单位不为空", groups = {UpdateGroup.class, InsertGroup.class})
private String unit;
/**
@@ -57,4 +58,6 @@ public class ShopStorageGoodDTO {
*/
private Integer source;
private Long prodId;
}

View File

@@ -0,0 +1,97 @@
package com.czg.product.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* 用户存酒 实体类。
*
* @author zs
* @since 2025-02-27
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_storage")
@Accessors(chain = true)
public class ShopStorage implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 酒品名
*/
private String name;
/**
* 酒品图
*/
private String imgUrl;
/**
* 单位
*/
private String unit;
/**
* 数量
*/
private Integer num;
/**
* 0已取完1未取完2已过期
*/
private Integer status;
/**
* 到期时间
*/
private LocalDateTime expTime;
/**
* 存酒时间
*/
private LocalDateTime savTime;
/**
* 用户Id
*/
private Long userId;
/**
* 用户头像
*/
private String headImg;
/**
* 用户昵称
*/
private String nickName;
/**
* 用户电话
*/
private String phone;
/**
* 店铺id
*/
private Long shopId;
}

View File

@@ -1,4 +1,4 @@
package com.czg.account.entity;
package com.czg.product.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;

View File

@@ -0,0 +1,50 @@
package com.czg.product.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 存取酒记录表 实体类。
*
* @author zs
* @since 2025-02-27
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_storage_record")
public class ShopStorageRecord implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 存酒信息id
*/
private Long storageId;
/**
* 记录
*/
private String content;
/**
* 操作时间
*/
private LocalDateTime time;
}

View File

@@ -1,8 +1,11 @@
package com.czg.account.service;
package com.czg.product.service;
import com.czg.account.dto.storage.ShopStorageGoodDTO;
import com.czg.product.dto.storage.ShopStorageAddDTO;
import com.czg.product.dto.storage.ShopStorageGoodDTO;
import com.czg.product.entity.ShopStorage;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.czg.account.entity.ShopStorageGood;
import com.czg.product.entity.ShopStorageGood;
/**
* 酒品表 服务层
@@ -15,4 +18,5 @@ public interface ShopStorageGoodService extends IService<ShopStorageGood> {
Boolean edit(Long shopId, ShopStorageGoodDTO shopStorageGoodDTO);
Boolean saveInfo(Long shopId, ShopStorageGoodDTO shopStorageGoodDTO);
}

View File

@@ -0,0 +1,14 @@
package com.czg.product.service;
import com.mybatisflex.core.service.IService;
import com.czg.product.entity.ShopStorageRecord;
/**
* 存取酒记录表 服务层。
*
* @author zs
* @since 2025-02-27
*/
public interface ShopStorageRecordService extends IService<ShopStorageRecord> {
}

View File

@@ -0,0 +1,31 @@
package com.czg.product.service;
import com.czg.product.dto.storage.CountStorageDTO;
import com.czg.product.dto.storage.ShopStorageAddDTO;
import com.czg.product.dto.storage.ShopStorageEditDTO;
import com.czg.product.entity.ShopStorageRecord;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.czg.product.entity.ShopStorage;
import java.util.List;
/**
* 用户存酒 服务层。
*
* @author zs
* @since 2025-02-27
*/
public interface ShopStorageService extends IService<ShopStorage> {
Page<ShopStorage> pageInfo(Long shopId, String key, String phone, Integer status);
Boolean add(Long shopId, ShopStorageAddDTO shopStorageAddDTO);
Boolean edit(Long shopId, ShopStorageEditDTO shopStorageEditDTO);
List<ShopStorageRecord> getRecord(Long shopId, Integer id);
List<CountStorageDTO> countRecord(Long shopId);
}