版本控制

This commit is contained in:
GYJ
2025-03-17 10:35:36 +08:00
parent 0571be26d9
commit 5fab0966eb
13 changed files with 340 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 IS_OLD_VERSION = false;
// private final static boolean IS_OLD_VERSION = true;
// private final static boolean IS_OLD_VERSION = false;
private final static boolean IS_OLD_VERSION = true;
public static void main(String[] args) {
//配置数据源
@@ -81,7 +81,7 @@ public class CodeGen {
//设置表前缀和只生成哪些表setGenerateTable 未配置时,生成所有表
globalConfig.getStrategyConfig()
.setTablePrefix("tb_")
.setGenerateTable("tb_picture_classify", "tb_picture_gallery");
.setGenerateTable("tb_version");
EntityConfig entityConfig = globalConfig.getEntityConfig();
if (IS_OLD_VERSION) {

View File

@@ -37,6 +37,14 @@ public class ShopInfoController {
@Resource
private CurPictureGalleryService curPictureGalleryService;
@Resource
private CurVersionService curVersionService;
@RequestMapping("/version")
public CzgResult<String> version() {
return curVersionService.mergeVersion();
}
@RequestMapping("/picture")
public CzgResult<String> gallery() {
return curPictureGalleryService.mergePicture();

View File

@@ -0,0 +1,80 @@
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-17
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_version")
public class CurVersion implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* pc 桌面端, manager_app 管理端, phone_book 电话机点餐
*/
private String source;
/**
* 0 windows1 安卓2 iOS
*/
private String type;
/**
* 版本号
*/
private String version;
/**
* 0不强制更新1强制更新
*/
private Integer isForce;
/**
* 更新提示内容
*/
private String message;
/**
* 下载地址
*/
private String url;
/**
* 更新者 id
*/
private Long updateUserId;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,17 @@
package com.czg.mergedata.cur.mapper;
import com.mybatisflex.core.BaseMapper;
import com.czg.mergedata.cur.entity.CurVersion;
import org.apache.ibatis.annotations.Select;
/**
* 版本管理 映射层。
*
* @author mac
* @since 2025-03-17
*/
public interface CurVersionMapper extends BaseMapper<CurVersion> {
@Select("truncate tb_version ")
void truncateTable();
}

View File

@@ -0,0 +1,17 @@
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.CurVersion;
/**
* 版本管理 服务层。
*
* @author mac
* @since 2025-03-17
*/
public interface CurVersionService extends IService<CurVersion> {
CzgResult<String> mergeVersion();
}

View File

@@ -0,0 +1,68 @@
package com.czg.mergedata.cur.service.impl;
import cn.hutool.core.date.DateUtil;
import com.czg.mergedata.common.resp.CzgResult;
import com.czg.mergedata.cur.entity.CurVersion;
import com.czg.mergedata.cur.mapper.CurVersionMapper;
import com.czg.mergedata.cur.service.CurVersionService;
import com.czg.mergedata.old.entity.OldVersion;
import com.czg.mergedata.old.service.OldVersionService;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 版本管理 服务层实现。
*
* @author mac
* @since 2025-03-17
*/
@Service
public class CurVersionServiceImpl extends ServiceImpl<CurVersionMapper, CurVersion> implements CurVersionService {
@Resource
private OldVersionService oldVersionService;
@Override
public CzgResult<String> mergeVersion() {
getMapper().truncateTable();
List<CurVersion> curList = new ArrayList<>();
List<OldVersion> oldVersions = oldVersionService.queryChain().select(OldVersion::getSource).groupBy(OldVersion::getSource).list();
List<String> sourceList = oldVersions.stream().map(OldVersion::getSource).toList();
for (String source : sourceList) {
OldVersion one = oldVersionService.getOne(QueryWrapper.create().eq(OldVersion::getSource, source).eq(OldVersion::getSel, 1));
CurVersion curVersion = new CurVersion();
curVersion.setId(Long.valueOf(one.getId()));
curVersion.setSource(getSource(one.getSource()));
curVersion.setType("pc".equals(curVersion.getSource()) ? "windows" : "android");
curVersion.setVersion(one.getVersion());
curVersion.setIsForce(one.getIsUp());
curVersion.setMessage(one.getMessage());
curVersion.setUrl(one.getUrl());
curVersion.setUpdateUserId(1L);
curVersion.setCreateTime(DateUtil.toLocalDateTime(one.getCreatedAt() == null ? new Date() : new Date(one.getCreatedAt())));
curVersion.setUpdateTime(DateUtil.toLocalDateTime(one.getUpdatedAt() == null ? new Date() : new Date(one.getUpdatedAt())));
curList.add(curVersion);
}
saveBatch(curList);
return CzgResult.success("合并成功");
}
private String getSource(String source) {
if ("PC".equals(source)) {
return "pc";
}
return source;
}
}

View File

@@ -0,0 +1,79 @@
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.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 版本管理 实体类。
*
* @author mac
* @since 2025-03-17
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_version")
public class OldVersion implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Integer id;
/**
* LDBL_APP;WX;
*/
private String source;
/**
* ios;android;
*/
private String type;
/**
* 版本号
*/
private String version;
/**
* 0不更新1更新
*/
private Integer isUp;
/**
* 更新提示内容
*/
private String message;
/**
* 下载地址
*/
private String url;
/**
* 选中 0否 1是
*/
private Integer sel;
/**
* 创建时间
*/
private Long createdAt;
/**
* 更新时间
*/
private Long updatedAt;
}

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.OldVersion;
/**
* 版本管理 映射层。
*
* @author mac
* @since 2025-03-17
*/
@UseDataSource("ds2")
public interface OldVersionMapper extends BaseMapper<OldVersion> {
}

View File

@@ -0,0 +1,14 @@
package com.czg.mergedata.old.service;
import com.mybatisflex.core.service.IService;
import com.czg.mergedata.old.entity.OldVersion;
/**
* 版本管理 服务层。
*
* @author mac
* @since 2025-03-17
*/
public interface OldVersionService extends IService<OldVersion> {
}

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.OldVersion;
import com.czg.mergedata.old.mapper.OldVersionMapper;
import com.czg.mergedata.old.service.OldVersionService;
import org.springframework.stereotype.Service;
/**
* 版本管理 服务层实现。
*
* @author mac
* @since 2025-03-17
*/
@Service
public class OldVersionServiceImpl extends ServiceImpl<OldVersionMapper, OldVersion> implements OldVersionService{
}

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.CurVersionMapper">
</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.OldVersionMapper">
</mapper>

View File

@@ -192,4 +192,10 @@
- tb_picture_classify 表
### 28. 版本控制
> /merge/shopInfo/version
#### 执行表
- tb_version 表