存酒功能

This commit is contained in:
GYJ 2025-03-14 18:30:58 +08:00
parent 3efe56a731
commit d8de04423c
33 changed files with 876 additions and 3 deletions

View File

@ -18,8 +18,8 @@ public class CodeGen {
private final static String DATABASE = "czg_cashier_test";
private final static String OLD_DATABASE = "fycashier";
private final static boolean isOldVersion = false;
// private final static boolean isOldVersion = true;
// private final static boolean isOldVersion = false;
private final static boolean isOldVersion = true;
public static void main(String[] args) {
//配置数据源
@ -81,7 +81,7 @@ public class CodeGen {
//设置表前缀和只生成哪些表setGenerateTable 未配置时生成所有表
globalConfig.getStrategyConfig()
.setTablePrefix("tb_")
.setGenerateTable("tb_print_machine_log", "tb_print_machine");
.setGenerateTable("tb_shop_storage", "tb_shop_storage_good", "tb_shop_storage_record");
EntityConfig entityConfig = globalConfig.getEntityConfig();
if (isOldVersion) {

View File

@ -0,0 +1,23 @@
package com.czg.mergedata.controller;
import com.czg.mergedata.common.resp.CzgResult;
import com.czg.mergedata.cur.service.CurShopStorageService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author GYJoker
*/
@RestController
@RequestMapping("/shopInfo")
public class ShopInfoController {
@Resource
private CurShopStorageService curShopStorageService;
@RequestMapping("/storage")
public CzgResult<String> mergeShopStorage() {
return curShopStorageService.mergeData();
}
}

View File

@ -0,0 +1,95 @@
package com.czg.mergedata.cur.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 mac
* @since 2025-03-14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_storage")
public class CurShopStorage 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

@ -0,0 +1,72 @@
package com.czg.mergedata.cur.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 mac
* @since 2025-03-14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_storage_good")
public class CurShopStorageGood 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 period;
/**
* 0:未删除1:已删除
*/
private Integer isDel;
private LocalDateTime createTime;
/**
* 0:手动1:商品
*/
private Integer source;
/**
* 商户Id
*/
private Long shopId;
}

View File

@ -0,0 +1,50 @@
package com.czg.mergedata.cur.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 mac
* @since 2025-03-14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_storage_record")
public class CurShopStorageRecord 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

@ -0,0 +1,16 @@
package com.czg.mergedata.cur.mapper;
import com.mybatisflex.core.BaseMapper;
import com.czg.mergedata.cur.entity.CurShopStorageGood;
import org.apache.ibatis.annotations.Select;
/**
* 酒品表 映射层
*
* @author mac
* @since 2025-03-14
*/
public interface CurShopStorageGoodMapper extends BaseMapper<CurShopStorageGood> {
@Select("truncate tb_shop_storage_good")
void truncateTable();
}

View File

@ -0,0 +1,16 @@
package com.czg.mergedata.cur.mapper;
import com.mybatisflex.core.BaseMapper;
import com.czg.mergedata.cur.entity.CurShopStorage;
import org.apache.ibatis.annotations.Select;
/**
* 用户存酒 映射层
*
* @author mac
* @since 2025-03-14
*/
public interface CurShopStorageMapper extends BaseMapper<CurShopStorage> {
@Select("truncate tb_shop_storage")
void truncateTable();
}

View File

@ -0,0 +1,16 @@
package com.czg.mergedata.cur.mapper;
import com.mybatisflex.core.BaseMapper;
import com.czg.mergedata.cur.entity.CurShopStorageRecord;
import org.apache.ibatis.annotations.Select;
/**
* 存取酒记录表 映射层
*
* @author mac
* @since 2025-03-14
*/
public interface CurShopStorageRecordMapper extends BaseMapper<CurShopStorageRecord> {
@Select("truncate tb_shop_storage_record")
void truncateTable();
}

View File

@ -0,0 +1,14 @@
package com.czg.mergedata.cur.service;
import com.mybatisflex.core.service.IService;
import com.czg.mergedata.cur.entity.CurShopStorageGood;
/**
* 酒品表 服务层
*
* @author mac
* @since 2025-03-14
*/
public interface CurShopStorageGoodService extends IService<CurShopStorageGood> {
}

View File

@ -0,0 +1,14 @@
package com.czg.mergedata.cur.service;
import com.mybatisflex.core.service.IService;
import com.czg.mergedata.cur.entity.CurShopStorageRecord;
/**
* 存取酒记录表 服务层
*
* @author mac
* @since 2025-03-14
*/
public interface CurShopStorageRecordService extends IService<CurShopStorageRecord> {
}

View File

@ -0,0 +1,15 @@
package com.czg.mergedata.cur.service;
import com.czg.mergedata.common.resp.CzgResult;
import com.mybatisflex.core.service.IService;
import com.czg.mergedata.cur.entity.CurShopStorage;
/**
* 用户存酒 服务层
*
* @author mac
* @since 2025-03-14
*/
public interface CurShopStorageService extends IService<CurShopStorage> {
CzgResult<String> mergeData();
}

View File

@ -0,0 +1,18 @@
package com.czg.mergedata.cur.service.impl;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.mergedata.cur.entity.CurShopStorageGood;
import com.czg.mergedata.cur.mapper.CurShopStorageGoodMapper;
import com.czg.mergedata.cur.service.CurShopStorageGoodService;
import org.springframework.stereotype.Service;
/**
* 酒品表 服务层实现
*
* @author mac
* @since 2025-03-14
*/
@Service
public class CurShopStorageGoodServiceImpl extends ServiceImpl<CurShopStorageGoodMapper, CurShopStorageGood> implements CurShopStorageGoodService{
}

View File

@ -0,0 +1,18 @@
package com.czg.mergedata.cur.service.impl;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.mergedata.cur.entity.CurShopStorageRecord;
import com.czg.mergedata.cur.mapper.CurShopStorageRecordMapper;
import com.czg.mergedata.cur.service.CurShopStorageRecordService;
import org.springframework.stereotype.Service;
/**
* 存取酒记录表 服务层实现
*
* @author mac
* @since 2025-03-14
*/
@Service
public class CurShopStorageRecordServiceImpl extends ServiceImpl<CurShopStorageRecordMapper, CurShopStorageRecord> implements CurShopStorageRecordService{
}

View File

@ -0,0 +1,95 @@
package com.czg.mergedata.cur.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.czg.mergedata.common.resp.CzgResult;
import com.czg.mergedata.cur.entity.CurShopStorageGood;
import com.czg.mergedata.cur.entity.CurShopStorageRecord;
import com.czg.mergedata.cur.mapper.CurShopStorageGoodMapper;
import com.czg.mergedata.cur.mapper.CurShopStorageRecordMapper;
import com.czg.mergedata.old.entity.OldShopStorage;
import com.czg.mergedata.old.entity.OldShopStorageGood;
import com.czg.mergedata.old.entity.OldShopStorageRecord;
import com.czg.mergedata.old.service.OldShopStorageGoodService;
import com.czg.mergedata.old.service.OldShopStorageRecordService;
import com.czg.mergedata.old.service.OldShopStorageService;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.mergedata.cur.entity.CurShopStorage;
import com.czg.mergedata.cur.mapper.CurShopStorageMapper;
import com.czg.mergedata.cur.service.CurShopStorageService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* 用户存酒 服务层实现
*
* @author mac
* @since 2025-03-14
*/
@Service
public class CurShopStorageServiceImpl extends ServiceImpl<CurShopStorageMapper, CurShopStorage> implements CurShopStorageService {
@Resource
private CurShopStorageRecordMapper curShopStorageRecordMapper;
@Resource
private CurShopStorageGoodMapper curShopStorageGoodMapper;
@Resource
private OldShopStorageService oldShopStorageService;
@Resource
private OldShopStorageGoodService oldShopStorageGoodService;
@Resource
private OldShopStorageRecordService oldShopStorageRecordService;
@Override
@Transactional
public CzgResult<String> mergeData() {
getMapper().truncateTable();
curShopStorageRecordMapper.truncateTable();
curShopStorageGoodMapper.truncateTable();
mergeStorage();
mergeStorageRecord();
mergeStorageGood();
return CzgResult.success("数据合并成功");
}
private void mergeStorage() {
List<OldShopStorage> list = oldShopStorageService.list();
List<CurShopStorage> curShopStorageList = new ArrayList<>();
for (OldShopStorage oldShopStorage : list) {
CurShopStorage storage = BeanUtil.toBean(oldShopStorage, CurShopStorage.class);
curShopStorageList.add(storage);
}
saveBatch(curShopStorageList);
}
private void mergeStorageRecord() {
List<OldShopStorageRecord> list = oldShopStorageRecordService.list();
List<CurShopStorageRecord> curShopStorageRecordList = new ArrayList<>();
for (OldShopStorageRecord oldShopStorageRecord : list) {
CurShopStorageRecord record = BeanUtil.toBean(oldShopStorageRecord, CurShopStorageRecord.class);
curShopStorageRecordList.add(record);
}
curShopStorageRecordMapper.insertBatch(curShopStorageRecordList);
}
private void mergeStorageGood() {
List<OldShopStorageGood> list = oldShopStorageGoodService.list();
List<CurShopStorageGood> curShopStorageGoodList = new ArrayList<>();
for (OldShopStorageGood oldShopStorageGood : list) {
CurShopStorageGood good = BeanUtil.toBean(oldShopStorageGood, CurShopStorageGood.class);
curShopStorageGoodList.add(good);
}
curShopStorageGoodMapper.insertBatch(curShopStorageGoodList);
}
}

View File

@ -0,0 +1,95 @@
package com.czg.mergedata.old.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 mac
* @since 2025-03-14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_storage")
public class OldShopStorage implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Integer 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 Integer userId;
/**
* 用户头像
*/
private String headImg;
/**
* 用户昵称
*/
private String nickName;
/**
* 用户电话
*/
private String telphone;
/**
* 店铺id
*/
private Integer shopId;
}

View File

@ -0,0 +1,72 @@
package com.czg.mergedata.old.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 mac
* @since 2025-03-14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_storage_good")
public class OldShopStorageGood implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Integer id;
/**
* 酒品名
*/
private String name;
/**
* 图片地址
*/
private String imgUrl;
/**
* 单位
*/
private String unit;
/**
* 有效期()
*/
private Integer period;
/**
* 0:未删除1:已删除
*/
private Integer isDel;
private LocalDateTime createTime;
/**
* 0:手动1:商品
*/
private Integer source;
/**
* 商户Id
*/
private Integer shopId;
}

View File

@ -0,0 +1,50 @@
package com.czg.mergedata.old.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 mac
* @since 2025-03-14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_storage_record")
public class OldShopStorageRecord implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Integer id;
/**
* 存酒信息id
*/
private Integer storageId;
/**
* 记录
*/
private String content;
/**
* 操作时间
*/
private LocalDateTime time;
}

View File

@ -0,0 +1,16 @@
package com.czg.mergedata.old.mapper;
import com.mybatisflex.annotation.UseDataSource;
import com.mybatisflex.core.BaseMapper;
import com.czg.mergedata.old.entity.OldShopStorageGood;
/**
* 酒品表 映射层
*
* @author mac
* @since 2025-03-14
*/
@UseDataSource("ds2")
public interface OldShopStorageGoodMapper extends BaseMapper<OldShopStorageGood> {
}

View File

@ -0,0 +1,16 @@
package com.czg.mergedata.old.mapper;
import com.mybatisflex.annotation.UseDataSource;
import com.mybatisflex.core.BaseMapper;
import com.czg.mergedata.old.entity.OldShopStorage;
/**
* 用户存酒 映射层
*
* @author mac
* @since 2025-03-14
*/
@UseDataSource("ds2")
public interface OldShopStorageMapper extends BaseMapper<OldShopStorage> {
}

View File

@ -0,0 +1,16 @@
package com.czg.mergedata.old.mapper;
import com.mybatisflex.annotation.UseDataSource;
import com.mybatisflex.core.BaseMapper;
import com.czg.mergedata.old.entity.OldShopStorageRecord;
/**
* 存取酒记录表 映射层
*
* @author mac
* @since 2025-03-14
*/
@UseDataSource("ds2")
public interface OldShopStorageRecordMapper extends BaseMapper<OldShopStorageRecord> {
}

View File

@ -0,0 +1,14 @@
package com.czg.mergedata.old.service;
import com.mybatisflex.core.service.IService;
import com.czg.mergedata.old.entity.OldShopStorageGood;
/**
* 酒品表 服务层
*
* @author mac
* @since 2025-03-14
*/
public interface OldShopStorageGoodService extends IService<OldShopStorageGood> {
}

View File

@ -0,0 +1,14 @@
package com.czg.mergedata.old.service;
import com.mybatisflex.core.service.IService;
import com.czg.mergedata.old.entity.OldShopStorageRecord;
/**
* 存取酒记录表 服务层
*
* @author mac
* @since 2025-03-14
*/
public interface OldShopStorageRecordService extends IService<OldShopStorageRecord> {
}

View File

@ -0,0 +1,14 @@
package com.czg.mergedata.old.service;
import com.mybatisflex.core.service.IService;
import com.czg.mergedata.old.entity.OldShopStorage;
/**
* 用户存酒 服务层
*
* @author mac
* @since 2025-03-14
*/
public interface OldShopStorageService extends IService<OldShopStorage> {
}

View File

@ -0,0 +1,18 @@
package com.czg.mergedata.old.service.impl;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.mergedata.old.entity.OldShopStorageGood;
import com.czg.mergedata.old.mapper.OldShopStorageGoodMapper;
import com.czg.mergedata.old.service.OldShopStorageGoodService;
import org.springframework.stereotype.Service;
/**
* 酒品表 服务层实现
*
* @author mac
* @since 2025-03-14
*/
@Service
public class OldShopStorageGoodServiceImpl extends ServiceImpl<OldShopStorageGoodMapper, OldShopStorageGood> implements OldShopStorageGoodService{
}

View File

@ -0,0 +1,18 @@
package com.czg.mergedata.old.service.impl;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.mergedata.old.entity.OldShopStorageRecord;
import com.czg.mergedata.old.mapper.OldShopStorageRecordMapper;
import com.czg.mergedata.old.service.OldShopStorageRecordService;
import org.springframework.stereotype.Service;
/**
* 存取酒记录表 服务层实现
*
* @author mac
* @since 2025-03-14
*/
@Service
public class OldShopStorageRecordServiceImpl extends ServiceImpl<OldShopStorageRecordMapper, OldShopStorageRecord> implements OldShopStorageRecordService{
}

View File

@ -0,0 +1,18 @@
package com.czg.mergedata.old.service.impl;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.mergedata.old.entity.OldShopStorage;
import com.czg.mergedata.old.mapper.OldShopStorageMapper;
import com.czg.mergedata.old.service.OldShopStorageService;
import org.springframework.stereotype.Service;
/**
* 用户存酒 服务层实现
*
* @author mac
* @since 2025-03-14
*/
@Service
public class OldShopStorageServiceImpl extends ServiceImpl<OldShopStorageMapper, OldShopStorage> implements OldShopStorageService{
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.mergedata.cur.mapper.CurShopStorageGoodMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.mergedata.cur.mapper.CurShopStorageMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.mergedata.cur.mapper.CurShopStorageRecordMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.mergedata.old.mapper.OldShopStorageGoodMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.mergedata.old.mapper.OldShopStorageMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.mergedata.old.mapper.OldShopStorageRecordMapper">
</mapper>

View File

@ -137,3 +137,11 @@
- tb_print_machine_log 表
### 20. 存酒
> /merge/shopInfo/storage
#### 执行表
- tb_shop_storage_good 表
- tb_shop_storage_record 表
- tb_shop_storage 表