This commit is contained in:
2026-01-08 10:49:30 +08:00
parent 21b9acf3c9
commit e5be277941
39 changed files with 1290 additions and 46 deletions

View File

@@ -21,12 +21,24 @@ public class RabbitConfig {
@Value("${spring.profiles.active}")
private String activeProfile;
@Bean
@Primary
public DirectExchange directExchange() {
return new DirectExchange(activeProfile + "-" + RabbitConstants.Exchange.CASH_EXCHANGE);
}
//------------------------------------------------------ 商家入驻
@Bean
public Queue entryManagerQueue() {
return new Queue(activeProfile + "-" + RabbitConstants.Queue.SHOP_ENTRY_MANAGER, true, false, false);
}
@Bean
public Binding entryManagerExchange(Queue entryManagerQueue, DirectExchange exchange) {
return BindingBuilder.bind(entryManagerQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.SHOP_ENTRY_MANAGER);
}
//------------------------------------------------------订单打印队列
@Bean
public Queue orderPrintQueue() {
@@ -36,6 +48,7 @@ public class RabbitConfig {
args.put("x-message-ttl", 180000);
return new Queue(activeProfile + "-" + RabbitConstants.Queue.ORDER_PRINT_QUEUE, true, false, false, args);
}
@Bean
public Binding bindingOrderPrintExchange(Queue orderPrintQueue, DirectExchange exchange) {
return BindingBuilder.bind(orderPrintQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.ORDER_PRINT_QUEUE);
@@ -51,6 +64,7 @@ public class RabbitConfig {
// args.put("x-message-ttl", 180000);
return new Queue(activeProfile + "-" + RabbitConstants.Queue.ORDER_MACHINE_PRINT_QUEUE, true, false, false);
}
@Bean
public Binding bindingOrderMachinePrintExchange(Queue orderMachinePrintQueue, DirectExchange exchange) {
return BindingBuilder.bind(orderMachinePrintQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.ORDER_MACHINE_PRINT_QUEUE);
@@ -61,6 +75,7 @@ public class RabbitConfig {
public Queue handoverPrintQueue() {
return new Queue(activeProfile + "-" + RabbitConstants.Queue.ORDER_HANDOVER_PRINT_QUEUE, true, false, false);
}
@Bean
public Binding bindingHandoverPrintExchange(Queue handoverPrintQueue, DirectExchange exchange) {
return BindingBuilder.bind(handoverPrintQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.ORDER_HANDOVER_PRINT_QUEUE);
@@ -69,11 +84,12 @@ public class RabbitConfig {
//------------------------------------------------------叫号 打票
@Bean
public Queue callTablePrintQueue() {
return new Queue(activeProfile + "-" + RabbitConstants.Queue.CALL_TABLE_PRINT_QUEUE, true, false, false);
return new Queue(activeProfile + "-" + RabbitConstants.Queue.CALL_TABLE_QUEUE, true, false, false);
}
@Bean
public Binding bindingCallTablePrintExchange(Queue callTablePrintQueue, DirectExchange exchange) {
return BindingBuilder.bind(callTablePrintQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.CALL_TABLE_PRINT_QUEUE);
return BindingBuilder.bind(callTablePrintQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.CALL_TABLE_QUEUE);
}
//------------------------------------------------------订单取消
@@ -81,9 +97,10 @@ public class RabbitConfig {
public Queue orderCancelQueue() {
return new Queue(activeProfile + "-" + RabbitConstants.Queue.ORDER_CANCEL_QUEUE, true);
}
@Bean
public Binding bindingOrderCancelExchange(Queue orderPrintQueue, DirectExchange exchange) {
return BindingBuilder.bind(orderPrintQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.ORDER_CANCEL_QUEUE);
public Binding bindingOrderCancelExchange(Queue orderCancelQueue, DirectExchange exchange) {
return BindingBuilder.bind(orderCancelQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.ORDER_CANCEL_QUEUE);
}
//------------------------------------------------------ 订单库存更新
@@ -91,6 +108,7 @@ public class RabbitConfig {
public Queue orderStockQueue() {
return new Queue(activeProfile + "-" + RabbitConstants.Queue.ORDER_STOCK_QUEUE, true);
}
@Bean
public Binding bindingOrderStockExchange(Queue orderStockQueue, DirectExchange exchange) {
return BindingBuilder.bind(orderStockQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.ORDER_STOCK_QUEUE);
@@ -102,6 +120,7 @@ public class RabbitConfig {
public Queue productInfoChangeQueue() {
return new Queue(activeProfile + "-" + RabbitConstants.Queue.PRODUCT_INFO_CHANGE_QUEUE, true);
}
@Bean
public Binding bindingProductInfoChange(Queue productInfoChangeQueue, DirectExchange exchange) {
return BindingBuilder.bind(productInfoChangeQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.PRODUCT_INFO_CHANGE_QUEUE);
@@ -112,6 +131,7 @@ public class RabbitConfig {
public Queue orderRefundQueue() {
return new Queue(activeProfile + "-" + RabbitConstants.Queue.ORDER_REFUND_QUEUE, true);
}
@Bean
public Binding bindingOrderRefundExchange(Queue orderRefundQueue, DirectExchange exchange) {
return BindingBuilder.bind(orderRefundQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.ORDER_REFUND_QUEUE);
@@ -119,6 +139,7 @@ public class RabbitConfig {
//------------------------------------------------------ 申请短信模板队列
/**
* 1,2,applySmsTemp 模版审核
* 1,2,sendMarkSms 发送营销短信
@@ -129,16 +150,18 @@ public class RabbitConfig {
public Queue applySmsTemplateQueue() {
return new Queue(activeProfile + "-" + RabbitConstants.Queue.APPLY_SMS_TEMPLATE_QUEUE, true);
}
@Bean
public Binding bindingApplySmsTemplateExchange(Queue applySmsTemplateQueue, DirectExchange exchange) {
return BindingBuilder.bind(applySmsTemplateQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.APPLY_SMS_TEMPLATE_QUEUE);
}
//------------------------------------------------------ 生日礼品短信队列
//------------------------------------------------------ 生日礼品短信队列
@Bean
public Queue birthdayGiftSmsQueue() {
return new Queue(activeProfile + "-" + RabbitConstants.Queue.BIRTHDAY_GIFT_SMS_QUEUE, true);
}
@Bean
public Binding bindingBirthdayGiftSmsExchange(Queue birthdayGiftSmsQueue, DirectExchange exchange) {
return BindingBuilder.bind(birthdayGiftSmsQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.BIRTHDAY_GIFT_SMS_QUEUE);
@@ -149,6 +172,7 @@ public class RabbitConfig {
public Queue orderProductStatusQueue() {
return new Queue(activeProfile + "-" + RabbitConstants.Queue.ORDER_PRODUCT_STATUS_QUEUE, true);
}
@Bean
public Binding bindingOrderProductStatusExchange(Queue orderProductStatusQueue, DirectExchange exchange) {
return BindingBuilder.bind(orderProductStatusQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.ORDER_PRODUCT_STATUS_QUEUE);
@@ -160,6 +184,7 @@ public class RabbitConfig {
public Queue orderDetailStatusQueue() {
return new Queue(activeProfile + "-" + RabbitConstants.Queue.ORDER_DETAIL_STATUS_QUEUE, true);
}
@Bean
public Binding bindingOrderDetailStatusExchange(Queue orderDetailStatusQueue, DirectExchange exchange) {
return BindingBuilder.bind(orderDetailStatusQueue).to(exchange).with(activeProfile + "-" + RabbitConstants.Queue.ORDER_DETAIL_STATUS_QUEUE);

View File

@@ -10,13 +10,14 @@ public interface RabbitConstants {
}
class Queue {
public static final String SHOP_ENTRY_MANAGER = "shop.entry.manager";
public static final String ORDER_STOCK_QUEUE = "order.stock.queue";
public static final String ORDER_REFUND_QUEUE = "order.refund.queue";
public static final String ORDER_CANCEL_QUEUE = "order.cancel.queue";
public static final String ORDER_PRINT_QUEUE = "order.print.queue";
public static final String ORDER_MACHINE_PRINT_QUEUE = "order.machine.print.queue";
public static final String ORDER_HANDOVER_PRINT_QUEUE = "order.handover.print.queue";
public static final String CALL_TABLE_PRINT_QUEUE = "call.table.print.queue";
public static final String CALL_TABLE_QUEUE = "call.table.print.queue";
public static final String PRODUCT_INFO_CHANGE_QUEUE = "product.info.change.queue";
/**

View File

@@ -130,6 +130,13 @@ public class RabbitPublisher {
sendMsg(RabbitConstants.Queue.ORDER_PRODUCT_STATUS_QUEUE, qrContent);
}
/**
* 订单商品状态消息
*/
public void sendEntryManagerMsg(String shopId) {
sendMsg(RabbitConstants.Queue.SHOP_ENTRY_MANAGER, shopId);
}
/**
* 订单商品状态消息

View File

@@ -33,6 +33,8 @@ public interface RedisCst {
public static final String EXPIRED_WECHAT = "expired:wechat:";
}
//商家进件
String SHOP_ENTRY = "shop:entry";
String SMS_CODE = "sms:code:";
// 店铺会员动态支付码

View File

@@ -142,6 +142,14 @@ public class ShopInfo implements Serializable {
* -1 平台禁用 0-过期1正式营业
*/
private Integer status;
/**
* 微信商户id
*/
private String wechatMerchantId;
/**
* 支付宝商户id
*/
private String alipayMerchantId;
/**
* 到期时间

View File

@@ -37,6 +37,11 @@ public interface ShopInfoService extends IService<ShopInfo> {
Boolean edit(ShopInfoEditDTO shopInfoEditDTO);
/**
* 进件结果保存
*/
Boolean editEntry(Long shopId, String wechatMerchantId, String alipayMerchantId);
ShopDetailDTO detail(Long id) throws CzgException;
ShopInfoByCodeDTO getByCode(String tableCode, String lat, String lng, boolean checkState);

View File

@@ -0,0 +1,111 @@
package com.czg.order.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 ww
* @since 2026-01-07
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_direct_merchant")
public class ShopDirectMerchant implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 店铺id
*/
@Id
private Long shopId;
/**
* 营业执照编号
*/
private String licenceNo;
/**
* 商户编号(在当前系统唯一)
*/
private String merchantCode;
/**
* 商户基础信息
*/
private String merchantBaseInfo;
/**
* 法人信息
*/
private String legalPersonInfo;
/**
* 营业执照信息
*/
private String businessLicenceInfo;
/**
* 门店信息
*/
private String storeInfo;
/**
* 结算信息
*/
private String settlementInfo;
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
private String errorMsg;
/**
* 微信状态
*/
private String wechatStatus;
/**
* 微信进件错误信息
*/
private String wechatErrorMsg;
/**
* 微信进件签名地址
*/
private String wechatSignUrl;
/**
* 支付宝状态
*/
private String alipayStatus;
/**
* 支付宝进件错误信息
*/
private String alipayErrorMsg;
/**
* 支付宝进件签名地址
*/
private String alipaySignUrl;
}

View File

@@ -0,0 +1,82 @@
package com.czg.system.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.math.BigInteger;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 银行账户信息表 实体类。
*
* @author ww
* @since 2026-01-06
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("sys_bank_info")
public class SysBankInfo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id(keyType = KeyType.Auto)
private BigInteger id;
/**
* 银行名称
*/
private String accountBank;
/**
* 银行数字编码
*/
private Integer accountBankCode;
/**
* 银行别名
*/
private String bankAlias;
/**
* 银行别名编码
*/
private String bankAliasCode;
/**
* 不知道干啥的
*/
private Boolean needBankBranch;
/**
* 银行英文编码
*/
private String bankCode;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 更新时间
*/
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,77 @@
package com.czg.system.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.math.BigInteger;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 类目信息表 实体类。
*
* @author ww
* @since 2026-01-06
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("sys_category_info")
public class SysCategoryInfo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id(keyType = KeyType.Auto)
private BigInteger id;
/**
* 一级类目
*/
private String firstCategory;
/**
* 二级类目code
*/
private String secondCategoryCode;
/**
* 二级类目
*/
private String secondCategory;
/**
* 适用商家说明
*/
private String applicableMerchant;
/**
* 特殊资质(为空则无需提供)
*/
private String specialQualification;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 更新时间
*/
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,70 @@
package com.czg.system.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.io.Serial;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 行政区表 实体类。
*
* @author ww
* @since 2026-01-06
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("sys_region")
public class SysRegion implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 区域编码
*/
@Id
private String regionId;
/**
* 上级区域编码
*/
private String parentRegionId;
/**
* 区域级别1=国家2=省3=市4=县
*/
@Id
private Integer regionLevel;
/**
* 区域中文全称
*/
private String regionName;
/**
* 区域拼音
*/
private String regionPinyin;
/**
* 全级别名称(如“中国|北京|北京市|东城区)
*/
private String fullName;
/**
* 子级区域
*/
@Column(ignore = true)
private List<SysRegion> children;
}

View File

@@ -0,0 +1,19 @@
package com.czg.system.service;
import com.czg.BaseQueryParam;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.czg.system.entity.SysBankInfo;
import java.util.List;
/**
* 银行账户信息表 服务层。
*
* @author ww
* @since 2026-01-06
*/
public interface SysBankInfoService extends IService<SysBankInfo> {
Page<SysBankInfo> bankInfoList(BaseQueryParam param, String bankName);
}

View File

@@ -0,0 +1,20 @@
package com.czg.system.service;
import com.czg.system.vo.SysCategoryInfoVO;
import com.mybatisflex.core.service.IService;
import com.czg.system.entity.SysCategoryInfo;
import java.util.List;
import java.util.Map;
/**
* 类目信息表 服务层。
*
* @author ww
* @since 2026-01-06
*/
public interface SysCategoryInfoService extends IService<SysCategoryInfo> {
List<SysCategoryInfoVO> categoryList();
}

View File

@@ -0,0 +1,17 @@
package com.czg.system.service;
import com.mybatisflex.core.service.IService;
import com.czg.system.entity.SysRegion;
import java.util.List;
/**
* 行政区表 服务层。
*
* @author ww
* @since 2026-01-06
*/
public interface SysRegionService extends IService<SysRegion> {
List<SysRegion> regionList();
}

View File

@@ -0,0 +1,40 @@
package com.czg.system.vo;
import com.czg.system.entity.SysCategoryInfo;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigInteger;
import java.time.LocalDateTime;
import java.util.List;
/**
* 类目信息表 实体类。
*
* @author ww
* @since 2026-01-06
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysCategoryInfoVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 一级类目
*/
private String firstCategory;
private List<SysCategoryInfo> child;
}