Merge remote-tracking branch 'origin/master'

# Conflicts:
#	cash-api/order-server/src/main/resources/application.yml
This commit is contained in:
Tankaikai 2025-02-27 19:02:20 +08:00
commit ac7f784861
15 changed files with 116 additions and 27 deletions

View File

@ -32,7 +32,10 @@ alipay:
alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiQkrz+emAuS1mB3KKDOMmAZRd/BlPbh7fAIHAqAj1+QCZNcV3o2BTLIIqnuKpSlFXDG3uDzp2VsBxcizXuBbFyPGylnD9CgCj5abyh3+FIHPAZ2IM3TtpqImZ0TSPGXrMli4Nir7MvZktgccCqQKCC4o6iaDGz+UwWwJUIPna8fm2tiTZ+KH150CZbKVj4ZGNpBh5XSV/1dRgyQIV9D/EwSbkZ0n6VgKQLJBi0C2UE3QB17aL1Ir6+gDXIDbknN8O7GUD3aMGdThYdSRUb5wp9CZ5qfV7vCS/CgaRo38nhH3NOzkTL+7v0m1ZDHPmqEkn9VzZN6sCQdL7PoAOjHOCwIDAQAB
encryptKey: Hp1TbhOqevbHCA5ji/VlqQ==
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
dubbo:
consumer:

View File

@ -19,8 +19,14 @@ mybatis-flex:
call-setters-on-nulls: true
jdbc-type-for-null: 'null'
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
dubbo:
consumer:
check: false

View File

@ -17,3 +17,7 @@ mybatis-flex:
cache-enabled: false
call-setters-on-nulls: true
jdbc-type-for-null: 'null'
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true

View File

@ -9,3 +9,8 @@ spring:
logging:
config: classpath:logback.xml
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true

View File

@ -41,7 +41,7 @@ public class MerchantRegister implements Serializable {
/**
* 店铺id
*/
private String shopId;
private Long shopId;
/**
* 激活码金额

View File

@ -1,11 +1,10 @@
package com.czg.account.service;
import com.czg.account.dto.QueryReceiveDto;
import com.czg.account.entity.ShopActivateCouponRecord;
import com.czg.account.vo.CouponReceiveVo;
import com.czg.account.vo.UserCouponVo;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.czg.account.entity.ShopActivateCouponRecord;
import java.util.List;
@ -18,9 +17,9 @@ import java.util.List;
public interface ShopActivateCouponRecordService extends IService<ShopActivateCouponRecord> {
Page<CouponReceiveVo> queryReceive(Page<CouponReceiveVo> page, QueryReceiveDto param);
List<CouponReceiveVo> queryReceive(QueryReceiveDto param);
Page<ShopActivateCouponRecord> findByUser(Page<ShopActivateCouponRecord> page, List<Long> shopUserIds, Integer status);
List<ShopActivateCouponRecord> findByUser(List<Long> shopUserIds, Integer status);
List<UserCouponVo> queryByVipIdAndShopId(Long shopId, Long shopUserId);
}

View File

@ -47,6 +47,20 @@
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<exclusions>
<exclusion>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>sqlparser4.5</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>

View File

@ -2,6 +2,7 @@ package com.czg.utils;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import jakarta.servlet.http.HttpServletRequest;
@ -77,4 +78,17 @@ public class PageUtil {
}
return queryWrapper;
}
/**
* pageHelper 转为 mybatisflex 分页
*/
public static <T> Page<T> convert(PageInfo<T> page) {
Page<T> page1 = new Page<>();
page1.setPageNumber(page.getPageNum());
page1.setPageSize(page.getPageSize());
page1.setTotalRow(page.getTotal());
page1.setTotalPage(page.getPages());
page1.setRecords(page.getList());
return page1;
}
}

View File

@ -33,6 +33,7 @@
<dubbo-registry-nacos.version>3.3.3</dubbo-registry-nacos.version>
<dubbo.version>3.3.3</dubbo.version>
<seata.version>2.0.0</seata.version>
<pagehelper.version>6.1.0</pagehelper.version>
<alipay-sdk-java.version>4.40.54.ALL</alipay-sdk-java.version>
<aliyun-sms.version>2.0.24</aliyun-sms.version>
<aliyun.oss.version>2.8.3</aliyun.oss.version>
@ -168,6 +169,22 @@
<version>${seata.version}</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
<exclusions>
<exclusion>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>sqlparser4.5</artifactId>
<version>${pagehelper.version}</version>
</dependency>
<!--
<dependency>
<groupId>org.quartz-scheduler</groupId>

View File

@ -1,11 +1,10 @@
package com.czg.service.account.mapper;
import com.czg.account.dto.QueryReceiveDto;
import com.czg.account.entity.ShopActivateCouponRecord;
import com.czg.account.vo.CouponReceiveVo;
import com.czg.account.vo.UserCouponVo;
import com.mybatisflex.core.BaseMapper;
import com.czg.account.entity.ShopActivateCouponRecord;
import com.mybatisflex.core.paginate.Page;
import java.util.List;
@ -17,8 +16,8 @@ import java.util.List;
*/
public interface ShopActivateCouponRecordMapper extends BaseMapper<ShopActivateCouponRecord> {
Page<CouponReceiveVo> queryReceive(Page<CouponReceiveVo> page, QueryReceiveDto param);
List<CouponReceiveVo> queryReceive(QueryReceiveDto param);
Page<ShopActivateCouponRecord> findByUser(Page<ShopActivateCouponRecord> page, List<Long> shopUserIds, Integer status);
List<ShopActivateCouponRecord> findByUser(List<Long> shopUserIds, Integer status);
List<UserCouponVo> queryByVipIdAndShopId(Long shopId, Long shopUserId);
}

View File

@ -6,7 +6,6 @@ import com.czg.account.service.ShopActivateCouponRecordService;
import com.czg.account.vo.CouponReceiveVo;
import com.czg.account.vo.UserCouponVo;
import com.czg.service.account.mapper.ShopActivateCouponRecordMapper;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import org.apache.dubbo.config.annotation.DubboService;
@ -22,13 +21,13 @@ import java.util.List;
public class ShopActivateCouponRecordServiceImpl extends ServiceImpl<ShopActivateCouponRecordMapper, ShopActivateCouponRecord> implements ShopActivateCouponRecordService {
@Override
public Page<CouponReceiveVo> queryReceive(Page<CouponReceiveVo> page, QueryReceiveDto param) {
return getMapper().queryReceive(page, param);
public List<CouponReceiveVo> queryReceive(QueryReceiveDto param) {
return getMapper().queryReceive(param);
}
@Override
public Page<ShopActivateCouponRecord> findByUser(Page<ShopActivateCouponRecord> page, List<Long> shopUserIds, Integer status) {
return getMapper().findByUser(page, shopUserIds, status);
public List<ShopActivateCouponRecord> findByUser(List<Long> shopUserIds, Integer status) {
return getMapper().findByUser(shopUserIds, status);
}
@Override

View File

@ -19,6 +19,8 @@ import com.czg.product.entity.Product;
import com.czg.product.service.ProductService;
import com.czg.service.account.mapper.ShopCouponMapper;
import com.czg.utils.PageUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.gson.JsonObject;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.spring.service.impl.ServiceImpl;
@ -80,18 +82,22 @@ public class ShopCouponServiceImpl extends ServiceImpl<ShopCouponMapper, ShopCou
@Override
public Page<CouponReceiveVo> queryReceive(QueryReceiveDto param) {
return couponRecordService.queryReceive(PageUtil.buildPage(), param);
Page<Object> page = PageUtil.buildPage();
PageHelper.startPage(Math.toIntExact(page.getPageNumber()),Math.toIntExact(page.getPageSize()));
return PageUtil.convert(new PageInfo<>(couponRecordService.queryReceive(param)));
}
@Override
public Page<ShopActivateCouponRecord> find(Long userId, Long shopId, Integer status) {
Page<Object> page = PageUtil.buildPage();
PageHelper.startPage(Math.toIntExact(page.getPageNumber()),Math.toIntExact(page.getPageSize()));
List<Long> shopUserIds = shopUserService.queryChain()
.eq(ShopUser::getUserId, userId)
.eq(ShopUser::getShopId, shopId)
.select(ShopUser::getId).listAs(Long.class);
if (CollectionUtil.isNotEmpty(shopUserIds)) {
return couponRecordService.findByUser(PageUtil.buildPage(), shopUserIds, status);
return PageUtil.convert(new PageInfo<>(couponRecordService.findByUser(shopUserIds, status)));
}
return new Page<>();
}

View File

@ -81,6 +81,9 @@ public class ShopInfoServiceImpl extends ServiceImpl<ShopInfoMapper, ShopInfo> i
throw new CzgException("激活码已使用");
}
shopInfo.setExpireTime(DateUtil.offsetMonth(DateUtil.date(), merchantRegister.getPeriodMonth()).toLocalDateTime());
merchantRegister.setStatus(1);
merchantRegister.setShopId(shopInfo.getId());
merchantRegisterService.updateById(merchantRegister);
}
@Override
@ -100,8 +103,9 @@ public class ShopInfoServiceImpl extends ServiceImpl<ShopInfoMapper, ShopInfo> i
//设置激活码
shopInfo.setStatus(1);
shopInfo.setProfiles("release");
save(shopInfo);
activateShop(shopInfo, shopInfoAddDTO.getActivateCode());
return save(shopInfo);
return updateById(shopInfo);
}
@Override

View File

@ -105,7 +105,8 @@ public class ShopTableServiceImpl extends ServiceImpl<ShopTableMapper, ShopTable
response.setHeader("Content-Disposition", "attachment; filename=shop_qrcodes_" + shopId + ".zip");
ArrayList<ShopTableCode> codeList = new ArrayList<>();
// 使用 ZipOutputStream 将二维码写入 zip
// 使用 ZipOutputStream 直接将二维码写入 ZIP
try (ZipOutputStream zipOut = new ZipOutputStream(response.getOutputStream())) {
for (int i = 0; i < num; i++) {
String tableCode = generateCode(1, shopId, ++maxId, codeMap);
@ -113,24 +114,29 @@ public class ShopTableServiceImpl extends ServiceImpl<ShopTableMapper, ShopTable
codeList.add(new ShopTableCode().setShopId(shopId).setTableCode(tableCode));
// 生成二维码并写入 ByteArrayOutputStream
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// 生成二维码
BufferedImage qrImage = QrCodeUtil.generate(tableCode, 300, 300);
// 转换为字节数组
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImgUtil.write(qrImage, ImgUtil.IMAGE_TYPE_PNG, out);
byte[] qrBytes = out.toByteArray();
ImgUtil.write(qrImage, ImgUtil.IMAGE_TYPE_PNG, byteArrayOutputStream);
byte[] qrBytes = byteArrayOutputStream.toByteArray();
// 添加到 ZIP
// 创建一个新的 ZipEntry
zipOut.putNextEntry(new ZipEntry(tableCode + ".png"));
zipOut.write(qrBytes);
zipOut.closeEntry();
}
zipOut.closeEntry(); // 确保当前文件条目被关闭
}
// 刷新并完成文件输出
zipOut.finish();
}
// 保存二维码信息
shopTableCodeService.saveBatch(codeList);
}
private String generateCode(Integer count, Long shopId, Long id, Map<String, Long> map) {
if (count > 100) {
throw new ApiNotPrintException("桌码生成失败");

View File

@ -40,7 +40,20 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<exclusions>
<exclusion>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>sqlparser4.5</artifactId>
</dependency>
<dependency>
<groupId>com.czg</groupId>
<artifactId>cash-common-redis</artifactId>