另有单体版,简化部署 👉👉 cps-mall
优惠券商城后台,支持淘宝、拼多多、京东、唯品会、蘑菇街,预留接口,可以很方便的扩展其他优惠券平台。 精力有限前端仅适配了微信小程序,可根据接口自行适配小程序、PC、H5、App等平台。
- 开发环境:
- IDEA
- JDK-1.8
- maven-3.6.1
- MySql-5.7
- Redis-3.2.100
- RabbitMq-3.7.14(需安装rabbitmq_delayed_message_exchange延时消息插件)
- 用到的框架:
- 用到的类库:
- druid
- RedisLockRegistry:Spring分布式锁
- hutool
- ip2region:IP地址解析
- easyexcel:阿里POI
- HanLP:分词工具
- PageHelper:MyBatis分页插件
- weixin-java-miniapp:微信开发工具包
- api_mall: 商城模块,整合淘宝、拼多多、唯品会、蘑菇街平台的SDK,抹除各个平台间的差异,提供了统一的API
- api_user:用户模块,包含的具体内容如下:
- 订单查询:包含自购订单、分享订单的查询。
- 账单查询:包含用户自购、分享、锁定产生的收益账单。
- 三级分销:提供各级用户查询、相关收益,各级佣金比例可调。
- 信用体系:用户购买习惯良好、使用频繁、分享好友等操作则信用提升,反之信用下降,信用越高自动返现额度越大、速度越快,增强用户体验。
- 浏览历史、收藏记录、意见反馈等功能的支持。
- api_pay: 支付/付款模块,为项目提供支付、付款的能力。
- api_activite: 活动模块,可按规则配置相关营销活动,如:高温补贴、看视频领红包、分享返现等。
- api_lottery: 道具商城,可配置添加一些功能道具,如:VIP、收益翻倍卡等营销道具。
- api_mini: 小程序功能模块,提供微信小程序独有的功能,小程序登录、消息推送、服务认证、生成分享海报、生成二维码等。
- cron_service: 定时任务模块,主要服务于用户订单,定时从cps平台拉取订单。
- wind_control: 风控模块,防止用户恶意操作对平台造成损失
- cloud_eureka:服务发现组件
- cloud_gateway:zuul网关
- 整合Shiro实现权限管理。
- 配合Feign ErrorDecoder实现微服务下的异常处理。[设计原则]
- comment_web:基础模块,提供web访问能力公共基础模块,该模块下的配置全局生效
- 表单验证Aspect
- 异常传递Aspect
- 请求记时Aspect
- JSON解析器Config
- Redis锁、Redis缓存Config
- DataSource详细配置、Redis连接池、RabbitMq、Zipkin等配置文件
- Mybatis分页插件、通用Mapper等配置文件
- comment_api: 封装第三方cps平台api接口,按需引用
- comment_feign: FeignClient客户端存访位置,内部接口调用需引入此模块
- comment_seata: 阿里分布式事务框架Seata相关配置 [项目地址]
- comment_mq: 引入RabbitMq
- 自定义一套消息总线,支持分发的消息类型位于UserActionEnum
- comment_serialize: 存访各个模块vo、bo、entity、form、constant等bean,按需引用
- comment_utils: 全局工具包
- 导入sql文件,生成表。
- 注册淘宝、拼多多、蘑菇街、唯品会任一平台联盟开发者账号,获取appId、secret等信息,
- 申请微信支付,并开通企业付款(不需要返现,则不需要)
- 浏览各个模块下resources目录下包含“demo”配置文件,酌情修改,改好后删除文件名中的“-demo”
- 下载Seata源码修改server模块配置文件并编译,具体操作如下:(Seata版本:1.1.0)
- 修改seata Server模块配置文件file.conf
store {
## store mode: file、db
mode = "db"
## file store property
file {
## store location dir
dir = "sessionStore"
# branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions
maxBranchSessionSize = 16384
# globe session size , if exceeded throws exceptions
maxGlobalSessionSize = 512
# file buffer size , if exceeded allocate new buffer
fileWriteBufferCacheSize = 16384
# when recover batch read size
sessionReloadReadSize = 100
# async, sync
flushDiskMode = async
}
## database store property
db {
## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp) etc.
datasource = "druid"
## mysql/oracle/h2/oceanbase etc.
dbType = "mysql"
driverClassName = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://数据库连接/wechat_seata"
user = "账号"
password = "密码"
minConn = 1
maxConn = 10
globalTable = "global_table"
branchTable = "branch_table"
lockTable = "lock_table"
queryLimit = 100
}
}
- 修改seata Server模块配置文件registry.conf
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "eureka"
# eureka {
# serviceUrl = "http://eureka-service:8101/eureka/"
# application = "seata-server"
# weight = "1"
# }
eureka {
serviceUrl = "http://你的eureka服务器地址/eureka/"
application = "seata-server"
weight = "1"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "file"
nacos {
serverAddr = "localhost"
namespace = ""
group = "SEATA_GROUP"
}
consul {
serverAddr = "127.0.0.1:8500"
}
apollo {
app.id = "seata-server"
apollo.meta = "http://192.168.1.204:8801"
namespace = "application"
}
zk {
serverAddr = "127.0.0.1:2181"
session.timeout = 6000
connect.timeout = 2000
}
etcd3 {
serverAddr = "http://localhost:2379"
}
file {
name = "file.conf"
}
}
- 修改完成后在seata项目根目录运行
mvn clean package
,打包完成后项目根目录会生成distribution\bin\seata-server,启动seata-server后会注册到配置的eureka服务,所以在此之前应启动eureak服务,如果一切正常eureka控制台会出现seata-server服务(如需帮助请联系)
以上配置修改完成后可按如下顺序启动服务
- cloud_eureka
- seata-server
- cloud_gateway
- api_mall
- api_user
- api_activite
- api_pay
- api_mini
- cron_service
- wind_control
<!--淘宝sdk-->
<!-- ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓-->
<dependency>
<groupId>com.xm.tb</groupId>
<artifactId>taobao-sdk</artifactId>
<version>1.0.0</version>
</dependency>
<!--唯品会sdk-->
<!-- ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓-->
<dependency>
<groupId>com.xm.wph</groupId>
<artifactId>osp-sdk</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.xm.wph</groupId>
<artifactId>vop-sdk</artifactId>
<version>1.0.0</version>
</dependency>
<!--蘑菇街sdk-->
<!-- ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓-->
<dependency>
<groupId>com.xm.mgj</groupId>
<artifactId>openapi-sdk</artifactId>
<version>1.0.0</version>
</dependency>
<!--拼多多sdk-->
<!-- ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓-->
<dependency>
<groupId>com.xm.pdd</groupId>
<artifactId>pop-sdk</artifactId>
<classifier>all</classifier>
<version>1.6.1</version>
</dependency>
依赖已打包:
链接:https://pan.baidu.com/s/1VDY0n9SEIK3T0VY_hsFYyw 提取码:ug5y
也可自行去官网下载。
联系我获取前端代码: