迁移 coupon

This commit is contained in:
GYJ 2025-02-18 14:28:33 +08:00
parent db62a13566
commit b2f734ff23
22 changed files with 573 additions and 1 deletions

View File

@ -81,7 +81,7 @@ public class CodeGen {
//设置表前缀和只生成哪些表setGenerateTable 未配置时生成所有表
globalConfig.getStrategyConfig()
.setTablePrefix("tb_")
.setGenerateTable("tb_prod_group_relation");
.setGenerateTable("tb_group_order_coupon");
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.CurCouponCategoryService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author GYJoker
*/
@RestController
@RequestMapping("/coupon")
public class CouponController {
@Resource
private CurCouponCategoryService curCouponCategoryService;
@GetMapping("/category")
public CzgResult<String> mergeCategory() {
return curCouponCategoryService.mergeData();
}
}

View File

@ -0,0 +1,51 @@
package com.czg.mergedata.cur.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
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-02-18
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_coupon_category")
public class CurCouponCategory implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id
private Integer id;
/**
* 分类名称
*/
private String name;
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
/**
* 0不展示1展示
*/
private Integer status;
}

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.math.BigDecimal;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 团购卷 卷码表 实体类
*
* @author mac
* @since 2025-02-18
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_group_order_coupon")
public class CurGroupOrderCoupon implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Integer id;
/**
* 团购订单id
*/
private Integer orderId;
/**
* 团购卷码
*/
private String couponNo;
/**
* 是否已退款
0
1
*/
private Integer isRefund;
/**
* 退款订单号
*/
private String mchRefundNo;
/**
* 退款金额
*/
private BigDecimal refundAmount;
/**
* 退款原因
*/
private String refundReason;
/**
* 退款说明
*/
private String refundDesc;
}

View File

@ -0,0 +1,19 @@
package com.czg.mergedata.cur.mapper;
import com.mybatisflex.annotation.UseDataSource;
import com.mybatisflex.core.BaseMapper;
import com.czg.mergedata.cur.entity.CurCouponCategory;
import org.apache.ibatis.annotations.Select;
/**
* 团购卷分类 映射层
*
* @author mac
* @since 2025-02-18
*/
@UseDataSource("ds1")
public interface CurCouponCategoryMapper extends BaseMapper<CurCouponCategory> {
@Select("truncate tb_coupon_category")
void truncateTable();
}

View File

@ -0,0 +1,19 @@
package com.czg.mergedata.cur.mapper;
import com.mybatisflex.annotation.UseDataSource;
import com.mybatisflex.core.BaseMapper;
import com.czg.mergedata.cur.entity.CurGroupOrderCoupon;
import org.apache.ibatis.annotations.Select;
/**
* 团购卷 卷码表 映射层
*
* @author mac
* @since 2025-02-18
*/
@UseDataSource("ds1")
public interface CurGroupOrderCouponMapper extends BaseMapper<CurGroupOrderCoupon> {
@Select("truncate tb_group_order_coupon")
void truncateTable();
}

View File

@ -0,0 +1,16 @@
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.CurCouponCategory;
/**
* 团购卷分类 服务层
*
* @author mac
* @since 2025-02-18
*/
public interface CurCouponCategoryService extends IService<CurCouponCategory> {
CzgResult<String> mergeData();
}

View File

@ -0,0 +1,14 @@
package com.czg.mergedata.cur.service;
import com.mybatisflex.core.service.IService;
import com.czg.mergedata.cur.entity.CurGroupOrderCoupon;
/**
* 团购卷 卷码表 服务层
*
* @author mac
* @since 2025-02-18
*/
public interface CurGroupOrderCouponService extends IService<CurGroupOrderCoupon> {
}

View File

@ -0,0 +1,93 @@
package com.czg.mergedata.cur.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.czg.mergedata.common.resp.CzgResult;
import com.czg.mergedata.common.utils.PageUtils;
import com.czg.mergedata.cur.entity.CurCouponCategory;
import com.czg.mergedata.cur.entity.CurGroupOrderCoupon;
import com.czg.mergedata.cur.mapper.CurCouponCategoryMapper;
import com.czg.mergedata.cur.mapper.CurGroupOrderCouponMapper;
import com.czg.mergedata.cur.service.CurCouponCategoryService;
import com.czg.mergedata.old.entity.OldCouponCategory;
import com.czg.mergedata.old.entity.OldGroupOrderCoupon;
import com.czg.mergedata.old.service.OldCouponCategoryService;
import com.czg.mergedata.old.service.OldGroupOrderCouponService;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* 团购卷分类 服务层实现
*
* @author mac
* @since 2025-02-18
*/
@Service
public class CurCouponCategoryServiceImpl extends ServiceImpl<CurCouponCategoryMapper, CurCouponCategory> implements CurCouponCategoryService{
@Resource
private OldCouponCategoryService oldCouponCategoryService;
@Resource
private CurGroupOrderCouponMapper curGroupOrderCouponMapper;
@Resource
private OldGroupOrderCouponService oldGroupOrderCouponService;
@Override
public CzgResult<String> mergeData() {
getMapper().truncateTable();
curGroupOrderCouponMapper.truncateTable();
execCouponCategory();
execGroupOrderCoupon();
return CzgResult.success("迁移成功");
}
private void execCouponCategory() {
Page<OldCouponCategory> page = oldCouponCategoryService.page(PageUtils.buildPage());
while (!page.getRecords().isEmpty()) {
saveCouponCategory(page.getRecords());
page = oldCouponCategoryService.page(PageUtils.buildPage(page.getPageNumber() + 1));
}
}
private void execGroupOrderCoupon() {
Page<OldGroupOrderCoupon> page = oldGroupOrderCouponService.page(PageUtils.buildPage());
while (!page.getRecords().isEmpty()) {
saveGroupOrderCoupon(page.getRecords());
page = oldGroupOrderCouponService.page(PageUtils.buildPage(page.getPageNumber() + 1));
}
}
private void saveCouponCategory(List<OldCouponCategory> oldCouponCategorieList) {
List<CurCouponCategory> curCouponCategoryList = new ArrayList<>();
for (OldCouponCategory oldCouponCategory : oldCouponCategorieList) {
CurCouponCategory curCouponCategory = BeanUtil.toBean(oldCouponCategory, CurCouponCategory.class);
curCouponCategoryList.add(curCouponCategory);
}
saveBatch(curCouponCategoryList);
}
private void saveGroupOrderCoupon(List<OldGroupOrderCoupon> oldGroupOrderCouponList) {
List<CurGroupOrderCoupon> curGroupOrderCouponList = new ArrayList<>();
for (OldGroupOrderCoupon oldGroupOrderCoupon : oldGroupOrderCouponList) {
CurGroupOrderCoupon curGroupOrderCoupon = BeanUtil.toBean(oldGroupOrderCoupon, CurGroupOrderCoupon.class);
curGroupOrderCouponList.add(curGroupOrderCoupon);
}
curGroupOrderCouponMapper.insertBatch(curGroupOrderCouponList);
}
}

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.CurGroupOrderCoupon;
import com.czg.mergedata.cur.mapper.CurGroupOrderCouponMapper;
import com.czg.mergedata.cur.service.CurGroupOrderCouponService;
import org.springframework.stereotype.Service;
/**
* 团购卷 卷码表 服务层实现
*
* @author mac
* @since 2025-02-18
*/
@Service
public class CurGroupOrderCouponServiceImpl extends ServiceImpl<CurGroupOrderCouponMapper, CurGroupOrderCoupon> implements CurGroupOrderCouponService{
}

View File

@ -0,0 +1,51 @@
package com.czg.mergedata.old.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
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-02-18
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_coupon_category")
public class OldCouponCategory implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id
private Integer id;
/**
* 分类名称
*/
private String name;
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
/**
* 0不展示1展示
*/
private Integer status;
}

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.math.BigDecimal;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 团购卷 卷码表 实体类
*
* @author mac
* @since 2025-02-18
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_group_order_coupon")
public class OldGroupOrderCoupon implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Integer id;
/**
* 团购订单id
*/
private Integer orderId;
/**
* 团购卷码
*/
private String couponNo;
/**
* 是否已退款
0
1
*/
private Integer isRefund;
/**
* 退款订单号
*/
private String mchRefundNo;
/**
* 退款金额
*/
private BigDecimal refundAmount;
/**
* 退款原因
*/
private String refundReason;
/**
* 退款说明
*/
private String refundDesc;
}

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.OldCouponCategory;
/**
* 团购卷分类 映射层
*
* @author mac
* @since 2025-02-18
*/
@UseDataSource("ds2")
public interface OldCouponCategoryMapper extends BaseMapper<OldCouponCategory> {
}

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.OldGroupOrderCoupon;
/**
* 团购卷 卷码表 映射层
*
* @author mac
* @since 2025-02-18
*/
@UseDataSource("ds2")
public interface OldGroupOrderCouponMapper extends BaseMapper<OldGroupOrderCoupon> {
}

View File

@ -0,0 +1,14 @@
package com.czg.mergedata.old.service;
import com.mybatisflex.core.service.IService;
import com.czg.mergedata.old.entity.OldCouponCategory;
/**
* 团购卷分类 服务层
*
* @author mac
* @since 2025-02-18
*/
public interface OldCouponCategoryService extends IService<OldCouponCategory> {
}

View File

@ -0,0 +1,14 @@
package com.czg.mergedata.old.service;
import com.mybatisflex.core.service.IService;
import com.czg.mergedata.old.entity.OldGroupOrderCoupon;
/**
* 团购卷 卷码表 服务层
*
* @author mac
* @since 2025-02-18
*/
public interface OldGroupOrderCouponService extends IService<OldGroupOrderCoupon> {
}

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.OldCouponCategory;
import com.czg.mergedata.old.mapper.OldCouponCategoryMapper;
import com.czg.mergedata.old.service.OldCouponCategoryService;
import org.springframework.stereotype.Service;
/**
* 团购卷分类 服务层实现
*
* @author mac
* @since 2025-02-18
*/
@Service
public class OldCouponCategoryServiceImpl extends ServiceImpl<OldCouponCategoryMapper, OldCouponCategory> implements OldCouponCategoryService{
}

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.OldGroupOrderCoupon;
import com.czg.mergedata.old.mapper.OldGroupOrderCouponMapper;
import com.czg.mergedata.old.service.OldGroupOrderCouponService;
import org.springframework.stereotype.Service;
/**
* 团购卷 卷码表 服务层实现
*
* @author mac
* @since 2025-02-18
*/
@Service
public class OldGroupOrderCouponServiceImpl extends ServiceImpl<OldGroupOrderCouponMapper, OldGroupOrderCoupon> implements OldGroupOrderCouponService{
}

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.CurCouponCategoryMapper">
</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.CurGroupOrderCouponMapper">
</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.OldCouponCategoryMapper">
</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.OldGroupOrderCouponMapper">
</mapper>