|
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -20,6 +21,7 @@ import shop.alien.mapper.StoreTableLogMapper;
|
|
|
import shop.alien.mapper.StoreTableMapper;
|
|
import shop.alien.mapper.StoreTableMapper;
|
|
|
import shop.alien.store.config.BaseRedisService;
|
|
import shop.alien.store.config.BaseRedisService;
|
|
|
import shop.alien.store.service.StoreTableService;
|
|
import shop.alien.store.service.StoreTableService;
|
|
|
|
|
+import shop.alien.store.service.TableAppQrCodeService;
|
|
|
import shop.alien.store.service.WeChatMiniProgramQrCodeService;
|
|
import shop.alien.store.service.WeChatMiniProgramQrCodeService;
|
|
|
import shop.alien.util.common.JwtUtil;
|
|
import shop.alien.util.common.JwtUtil;
|
|
|
|
|
|
|
@@ -41,6 +43,7 @@ public class StoreTableServiceImpl extends ServiceImpl<StoreTableMapper, StoreTa
|
|
|
|
|
|
|
|
private final StoreTableLogMapper storeTableLogMapper;
|
|
private final StoreTableLogMapper storeTableLogMapper;
|
|
|
private final WeChatMiniProgramQrCodeService weChatMiniProgramQrCodeService;
|
|
private final WeChatMiniProgramQrCodeService weChatMiniProgramQrCodeService;
|
|
|
|
|
+ private final TableAppQrCodeService tableAppQrCodeService;
|
|
|
private final BaseRedisService baseRedisService;
|
|
private final BaseRedisService baseRedisService;
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -117,23 +120,37 @@ public class StoreTableServiceImpl extends ServiceImpl<StoreTableMapper, StoreTa
|
|
|
public void asyncGenerateQrCodesForTables(Integer storeId, List<String> tableNumbers) {
|
|
public void asyncGenerateQrCodesForTables(Integer storeId, List<String> tableNumbers) {
|
|
|
log.info("开始异步生成桌号二维码, storeId={}, tableNumbers={}", storeId, tableNumbers);
|
|
log.info("开始异步生成桌号二维码, storeId={}, tableNumbers={}", storeId, tableNumbers);
|
|
|
try {
|
|
try {
|
|
|
- // 查询刚创建的桌号
|
|
|
|
|
LambdaQueryWrapper<StoreTable> wrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<StoreTable> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(StoreTable::getStoreId, storeId)
|
|
wrapper.eq(StoreTable::getStoreId, storeId)
|
|
|
- .in(StoreTable::getTableNumber, tableNumbers)
|
|
|
|
|
- .isNull(StoreTable::getQrcodeUrl);
|
|
|
|
|
|
|
+ .in(StoreTable::getTableNumber, tableNumbers);
|
|
|
List<StoreTable> tables = this.list(wrapper);
|
|
List<StoreTable> tables = this.list(wrapper);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
for (StoreTable table : tables) {
|
|
for (StoreTable table : tables) {
|
|
|
try {
|
|
try {
|
|
|
- String qrCodeUrl = weChatMiniProgramQrCodeService.generateTableQrCode(table.getId(), storeId);
|
|
|
|
|
- if (qrCodeUrl != null && !qrCodeUrl.isEmpty()) {
|
|
|
|
|
- // 更新二维码URL
|
|
|
|
|
- LambdaUpdateWrapper<StoreTable> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
- updateWrapper.eq(StoreTable::getId, table.getId())
|
|
|
|
|
- .set(StoreTable::getQrcodeUrl, qrCodeUrl);
|
|
|
|
|
|
|
+ LambdaUpdateWrapper<StoreTable> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ updateWrapper.eq(StoreTable::getId, table.getId());
|
|
|
|
|
+ boolean any = false;
|
|
|
|
|
+
|
|
|
|
|
+ if (StringUtils.isBlank(table.getQrcodeUrl())) {
|
|
|
|
|
+ String qrCodeUrl = weChatMiniProgramQrCodeService.generateTableQrCode(table.getId(), storeId);
|
|
|
|
|
+ if (StringUtils.isNotBlank(qrCodeUrl)) {
|
|
|
|
|
+ updateWrapper.set(StoreTable::getQrcodeUrl, qrCodeUrl);
|
|
|
|
|
+ any = true;
|
|
|
|
|
+ log.info("桌号小程序码生成成功, tableId={}, qrCodeUrl={}", table.getId(), qrCodeUrl);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (StringUtils.isBlank(table.getAppQrcodeUrl())) {
|
|
|
|
|
+ String appUrl = tableAppQrCodeService.generateTableAppQrCodeAndUpload(storeId, table.getTableNumber());
|
|
|
|
|
+ if (StringUtils.isNotBlank(appUrl)) {
|
|
|
|
|
+ updateWrapper.set(StoreTable::getAppQrcodeUrl, appUrl);
|
|
|
|
|
+ any = true;
|
|
|
|
|
+ log.info("桌号APP码生成成功, tableId={}, appQrcodeUrl={}", table.getId(), appUrl);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (any) {
|
|
|
this.update(updateWrapper);
|
|
this.update(updateWrapper);
|
|
|
- log.info("桌号二维码生成成功, tableId={}, qrCodeUrl={}", table.getId(), qrCodeUrl);
|
|
|
|
|
}
|
|
}
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("生成桌号二维码失败, tableId={}, error={}", table.getId(), e.getMessage(), e);
|
|
log.error("生成桌号二维码失败, tableId={}, error={}", table.getId(), e.getMessage(), e);
|
|
@@ -195,14 +212,29 @@ public class StoreTableServiceImpl extends ServiceImpl<StoreTableMapper, StoreTa
|
|
|
public void asyncUpdateQrCodeForTable(Integer tableId, Integer storeId) {
|
|
public void asyncUpdateQrCodeForTable(Integer tableId, Integer storeId) {
|
|
|
log.info("开始异步更新桌号二维码, tableId={}, storeId={}", tableId, storeId);
|
|
log.info("开始异步更新桌号二维码, tableId={}, storeId={}", tableId, storeId);
|
|
|
try {
|
|
try {
|
|
|
|
|
+ StoreTable table = this.getById(tableId);
|
|
|
|
|
+ if (table == null) {
|
|
|
|
|
+ log.warn("异步更新桌号二维码失败:桌号不存在, tableId={}", tableId);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
String qrCodeUrl = weChatMiniProgramQrCodeService.generateTableQrCode(tableId, storeId);
|
|
String qrCodeUrl = weChatMiniProgramQrCodeService.generateTableQrCode(tableId, storeId);
|
|
|
- if (qrCodeUrl != null && !qrCodeUrl.isEmpty()) {
|
|
|
|
|
- // 更新二维码URL
|
|
|
|
|
- LambdaUpdateWrapper<StoreTable> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
- updateWrapper.eq(StoreTable::getId, tableId)
|
|
|
|
|
- .set(StoreTable::getQrcodeUrl, qrCodeUrl);
|
|
|
|
|
|
|
+ String appUrl = tableAppQrCodeService.generateTableAppQrCodeAndUpload(storeId, table.getTableNumber());
|
|
|
|
|
+
|
|
|
|
|
+ LambdaUpdateWrapper<StoreTable> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ updateWrapper.eq(StoreTable::getId, tableId);
|
|
|
|
|
+ boolean any = false;
|
|
|
|
|
+ if (StringUtils.isNotBlank(qrCodeUrl)) {
|
|
|
|
|
+ updateWrapper.set(StoreTable::getQrcodeUrl, qrCodeUrl);
|
|
|
|
|
+ any = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotBlank(appUrl)) {
|
|
|
|
|
+ updateWrapper.set(StoreTable::getAppQrcodeUrl, appUrl);
|
|
|
|
|
+ any = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (any) {
|
|
|
this.update(updateWrapper);
|
|
this.update(updateWrapper);
|
|
|
- log.info("桌号二维码更新成功, tableId={}, qrCodeUrl={}", tableId, qrCodeUrl);
|
|
|
|
|
|
|
+ log.info("桌号二维码更新成功, tableId={}, qrCodeUrl={}, appQrcodeUrl={}", tableId, qrCodeUrl, appUrl);
|
|
|
}
|
|
}
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("更新桌号二维码失败, tableId={}, error={}", tableId, e.getMessage(), e);
|
|
log.error("更新桌号二维码失败, tableId={}, error={}", tableId, e.getMessage(), e);
|