26 Commits

Author SHA1 Message Date
apple
f65f0213e6 chore(admin): point development VUE_APP_BASE_API to local backend
Use http://127.0.0.1:30032 for local crmeb-admin; comment hapr191 deploy URL.

Made-with: Cursor
2026-04-09 15:20:10 +08:00
apple
2f6d8106a0 Merge branch 'feature/marketing-integral-log' into hapr191
Keep backend-adminend/src/api/integral.js (integralListApi) after resolve rename/delete vs hapr191 deletion.

Made-with: Cursor
2026-04-09 15:12:42 +08:00
apple
f8ba25e7d5 feat(integral-external): order/user list, integral log, wa selfBonus
- Fix ExternalIntegral order list (no double restPage); default 普通订单; UI columns for useIntegral and buyer uid/nickname/phone; enrich StoreOrderDetailResponse and admin query select.
- External user list: UserResponse.selfBonus and fillWaSelfBonus from wa_users.id=uid.
- Integral log: AdminIntegralSearchRequest nickName/phone; findAdminList filters and ordering; integralExternal API sends page/limit as query params.
- Integral detail page: linkType Chinese mapping including selfbonus; update docs/newpage.md.
- Dashboard grid menu entries for integral-external routes.

Made-with: Cursor
2026-04-09 15:10:16 +08:00
apple
129fa20810 docs: 鹏然项目说明与数据迁移记录
- company-info.md:环境与 hapr191 配置要点
- company-data-imgration.md:库清理规则与保留用户范围

Made-with: Cursor
2026-04-05 09:54:43 +08:00
apple
945ca2d3d0 feat(hapr191): 淮安鹏然商贸环境配置
- 新增 application-hapr191.yml(front/admin),imagePath/DB/Redis 指向 114.55.232.191
- 默认 spring.profiles.active=hapr191
- 合同 PDF 模板 sign_contract_pengran,落库域名 https://hapengran.com/
- uniapp:jf.hapengran.com、抢购/个人中心跳转 hapengran.com
- deploy.conf 增加 hapr191 段;后台 Vue API 指向 jfadmin.hapengran.com

Made-with: Cursor
2026-04-04 16:09:42 +08:00
scott
ee0886b800 feat: 新增积分外部页面(免认证三页 + 配套基础设施)
前端:
- 新增 EmptyLayout 空壳布局(无侧边栏/导航)
- 新增 requestNoAuth Axios 实例(不注入 token)
- 新增 integralExternal 路由模块(/integral-external/*)
- permission.js 加入 whiteListPrefixes 前缀白名单跳过登录
- 新增 phoneDesensitize 手机号脱敏过滤器
- 新增三个免认证页面:
  · 积分订单页(/integral-external/order)
  · 用户积分页(/integral-external/user,手机号脱敏)
  · 用户积分明细子页(/integral-external/user/integral-detail)

后端:
- 新增 ExternalIntegralController(无 @PreAuthorize)
  · GET  /api/external/integral/order/list
  · GET  /api/external/integral/user/list
  · POST /api/external/integral/log/list
- WebSecurityConfig 加入 /api/external/integral/** permitAll

文档与工具:
- 新增 coding plan、schedule、测试报告
- 新增 start-backend.sh / start-frontend.sh 本地启动脚本
- 新增 .mvn/wrapper/maven-wrapper.properties

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 10:41:30 +08:00
apple
5abbf5bc18 fix(uniapp): 积分页 H5 跳转改为 jjy.uj345.com
Made-with: Cursor
2026-03-25 08:43:30 +08:00
apple
67f44e9c35 fix(uniapp): 签约页跳转域名改为 jjy.uj345.com
Made-with: Cursor
2026-03-23 11:58:21 +08:00
apple
25409f26ce fix(front): WaUser 合同地址改为 jjy.uj345.com(shjjy153)
Made-with: Cursor
2026-03-23 11:57:38 +08:00
scott
fe9e1916fa feat: 重构营销模块积分日志页面
- 优化搜索区域:支持用户昵称、用户ID、时间范围筛选
- 新增表格字段:ID、用户ID、昵称、来源/用途、积分变化、变化后积分、关联类型、状态、备注、日期
- 积分变化带颜色标识:增加(绿色+)、扣减(红色-)
- 状态标签彩色区分:订单创建/冻结期/完成/失效
- 关联类型中文映射:订单/签到/系统
- 使用已有的 integralListApi 接口
- 参考用户详情页积分明细样式
2026-03-20 15:53:48 +08:00
scott
09946536aa feat: 添加积分日志页面
- 新增积分日志列表页面 src/views/user/integral/index.vue
- 新增积分相关 API src/api/integral.js
- 在路由中添加积分日志菜单
2026-03-20 10:56:53 +08:00
apple
ebd4619d65 feat: 拆分 admin 部署脚本,支持单独部署 API 或 Vue 前端
Made-with: Cursor
2026-03-19 17:24:15 +08:00
scott
6d3b50cebc docs: 添加 OpenClaw 多 Agent 配置方案 v2/v3
v2 基于原始需求优化(精简 Skills、通信协议、部署审批、版本锁定)。
v3 基于本机实际环境检查修正(路径、Agent 数量、Skills 可用性等)。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 12:51:37 +08:00
apple
a2db220f19 shjjy153: 新增分支对比文档 compare-shjjy153-shccd159.md,更新 config/app.js
Made-with: Cursor
2026-03-19 09:48:06 +08:00
apple
40c05afb3e main: 完善 README 架构与目录说明,移除重复 frontend(使用 backend-adminend)
Made-with: Cursor
2026-03-18 12:40:56 +08:00
apple
0f02cb7eba shjjy153: 新增 deploy-front-shjjy153.sh,更新配置
Made-with: Cursor
2026-03-18 12:21:14 +08:00
apple
d5439323db shccd159: 新增 deploy-front-shccd159.sh,更新 DEPLOY.md
Made-with: Cursor
2026-03-18 11:52:23 +08:00
apple
d8fc82d2e4 shccd159: 更新 deploy.conf
Made-with: Cursor
2026-03-18 10:51:46 +08:00
apple
7366ab1200 shccd159: 配置与页面更新
Made-with: Cursor
2026-03-18 10:38:36 +08:00
apple
a14566122b Merge main into shccd159,保留 shccd159 配置(jjy/ccd 域名)
Made-with: Cursor
2026-03-18 10:35:08 +08:00
apple
e8563e4fda 从 shccd159 合并 backend-adminend 子项目到 main
Made-with: Cursor
2026-03-16 11:32:11 +08:00
apple
e87b823d31 chore: 更新 shccd159 配置与 application.yml
Made-with: Cursor
2026-03-16 10:26:31 +08:00
apple
4b0afb3951 refactor: frontend 重命名为 backend-adminend,新增 shccd159/shjjy153 配置
- frontend 目录迁移至 backend-adminend(管理后台前端)
- 新增 application-shccd159.yml、application-shjjy153.yml
- 更新 deploy.conf、DEPLOY.md、application.yml

Made-with: Cursor
2026-03-16 09:33:54 +08:00
panchengyong
0cd7ebe202 feat: 完成 shjjy153 分支 jjy 项目配置切换和签名功能优化 2026-03-15 12:12:37 +08:00
panchengyong
6b131e07ab feat: 更新签名页面和合同文件 2026-03-14 20:31:27 +08:00
panchengyong
d83d6d66fd feat: 添加 shccd159 分支配置文件和合同 PDF 文件 2026-03-14 19:18:05 +08:00
805 changed files with 9787 additions and 271 deletions

118
README.md
View File

@@ -1,25 +1,125 @@
# 单商户积分商城 # 单商户积分商城
管理后台前端 + CRMEB 后端 API 合并仓库 管理后台前端、用户端 H5uni-app与 CRMEB Java 后端合并仓库。项目由 **4 个子项目** 组成,对应 **2 个 jar 包****2 个前端**
---
## 项目架构概览
```mermaid
flowchart TB
subgraph frontends [前端]
AdminVue[backend-adminend / frontend]
UserH5[single_uniapp22miao]
end
subgraph backends [后端 JAR]
AdminJar[miao-admin-2.2.jar]
FrontJar[miao-front-2.2.jar]
end
subgraph sources [源码子项目]
crmebAdmin[crmeb-admin]
crmebFront[crmeb-front]
end
AdminVue --> AdminJar
UserH5 --> FrontJar
crmebAdmin --> AdminJar
crmebFront --> FrontJar
```
### 2 个 jar 包 ↔ 2 个前端
| jar 包 | 对应前端 | 说明 |
|--------|----------|------|
| **miao-admin-2.2.jar** | `backend-adminend`(部分分支为 `frontend` | 管理后台 API + 后台静态站点 |
| **miao-front-2.2.jar** | `single_uniapp22miao` | 积分商城、用户端 H5 / uni-app |
### 4 个子项目(可单独打包部署)
| 子项目 | 产出 | 说明 |
|--------|------|------|
| **crmeb-admin** | `miao-admin-2.2.jar` | 管理后台后端 |
| **crmeb-front** | `miao-front-2.2.jar` | 用户端 API |
| **backend-adminend**(或 `frontend` | `dist/` | 管理后台 Vue 静态 |
| **single_uniapp22miao** | `unpackage/dist/build/h5` | 用户端 H5 静态 |
---
## 目录结构 ## 目录结构
### 根目录
| 目录/文件 | 说明 |
|-----------|------|
| **backend/** | Java 后端Maven 多模块) |
| **backend-adminend/** | 管理后台 Vue 前端(部分分支为 `frontend` |
| **single_uniapp22miao/** | 用户端 uni-app 前端(积分商城 H5 |
| **backend/deploy.conf** | 多环境部署配置 |
| **backend/DEPLOY.md** | 打包与部署详细说明 |
### backend 子模块
| 子模块 | 产出 | 说明 |
|--------|------|------|
| **crmeb-admin** | `miao-admin-2.2.jar` | 管理后台后端 |
| **crmeb-front** | `miao-front-2.2.jar` | 用户端 API |
| **crmeb-service** | 依赖库 | 业务逻辑、Mapper |
| **crmeb-common** | 依赖库 | 公共组件 |
### single_uniapp22miao 主要目录
| 目录 | 说明 | | 目录 | 说明 |
|------|------| |------|------|
| **frontend/** | 管理后台 Vue 前端(原 single_admin22miao | | **api/** | 后台 API 调用 |
| **backend/** | CRMEB Java Spring Boot 后端(原 crmeb_22miao | | **components/** | 公共组件 |
| **config/** | 请求地址等配置 |
| **pages/** | 页面(含 integral 积分模块等) |
| **static/** | 静态资源 |
## 前端 ### backend-adminend 主要目录
| 目录 | 说明 |
|------|------|
| **src/** | Vue 源码 |
| **public/** | 静态资源 |
| **build/** | 构建脚本 |
---
## 开发与构建
### 管理后台前端
- 技术栈Vue + Vue CLI - 技术栈Vue + Vue CLI
- 开发:`cd frontend && npm install && npm run serve` - 开发:`cd backend-adminend && npm install && npm run serve`(若仓库中为 `frontend` 目录则替换)
- 构建:`npm run build` - 构建:`npm run build:prod`Node 17+ 可设 `export NODE_OPTIONS="--openssl-legacy-provider"`
- 产出:`backend-adminend/dist/`(或 `frontend/dist/`
## ### 用户端 H5 前
- 技术栈uni-app、Vue 2
- 开发:`cd single_uniapp22miao && npm install && npm run dev:h5`
- 构建:`npm run build:h5`
- 产出:`single_uniapp22miao/unpackage/dist/build/h5/`
### 后端
- 技术栈Spring Boot 2.2.6、Maven、MyBatis Plus - 技术栈Spring Boot 2.2.6、Maven、MyBatis Plus
- 开发`cd backend && mvn spring-boot:run -pl crmeb-admin` - 管理后台 API`cd backend && mvn spring-boot:run -pl crmeb-admin`
- 打包:`mvn clean package -pl crmeb-admin -am -DskipTests` - 用户端 API`cd backend && mvn spring-boot:run -pl crmeb-front`
- 打包、多模块命令与环境说明见 **[backend/DEPLOY.md](backend/DEPLOY.md)**
---
## 多环境与部署(简要)
- 环境配置:**[backend/deploy.conf](backend/deploy.conf)**by80、miao33、miao50、shjjy153、shccd159 等)
- 部署脚本:`backend/shell/deploy-admin-*.sh``deploy-front-*.sh`
- 详细步骤与变量说明:**[backend/DEPLOY.md](backend/DEPLOY.md)**
---
## Gitea ## Gitea

View File

@@ -9,6 +9,12 @@ ENV = 'development'
# VUE_APP_BASE_API = 'http://jfadmin.wenjinhui.com' # VUE_APP_BASE_API = 'http://jfadmin.wenjinhui.com'
# VUE_APP_BASE_API = 'http://jfadmin-bsy.bosenyuan.com' # VUE_APP_BASE_API = 'http://jfadmin-bsy.bosenyuan.com'
# hapr191 项目(淮安鹏然商贸)
# VUE_APP_BASE_API = 'http://jf.hapengran.com'
# shccd159 项目
# VUE_APP_BASE_API = 'http://ccd-jfadmin.cichude.com'
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable, # vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled. # to control whether the babel-plugin-dynamic-import-node plugin is enabled.

View File

@@ -6,7 +6,14 @@ ENV = 'production'
# VUE_APP_BASE_API = 'http://127.0.0.1:8080' # VUE_APP_BASE_API = 'http://127.0.0.1:8080'
# VUE_APP_BASE_API = 'https://jf.suzhouyuqi.com' # VUE_APP_BASE_API = 'https://jf.suzhouyuqi.com'
# miao33 项目 # miao33 项目
VUE_APP_BASE_API = 'http://jfadmin.xiashengjun.com' # VUE_APP_BASE_API = 'http://jfadmin.xiashengjun.com'
# hapr191 项目(淮安鹏然商贸)
VUE_APP_BASE_API = 'http://jfadmin.hapengran.com'
# shccd159 项目
# VUE_APP_BASE_API = 'http://ccd-jfadmin.cichude.com'
# VUE_APP_BASE_API = 'http://jfanyueadmin.szxingming.com' # VUE_APP_BASE_API = 'http://jfanyueadmin.szxingming.com'
# VUE_APP_BASE_API = 'http://jfadmin-bsy.bosenyuan.com' # VUE_APP_BASE_API = 'http://jfadmin-bsy.bosenyuan.com'

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,23 @@
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import request from '@/utils/request';
/**
* 积分记录分页列表
* @param data
*/
export function integralListApi(data) {
return request({
url: '/admin/user/integral/list',
method: 'post',
data,
});
}

View File

@@ -0,0 +1,41 @@
/**
* 积分外部页面 API免认证
* 使用 requestNoAuth 实例,不注入 token不拦截 401。
* 对应后端ExternalIntegralController → api/external/integral/*
*/
import requestNoAuth from '@/utils/requestNoAuth';
/**
* 积分订单列表
*/
export function getExternalOrderList(params) {
return requestNoAuth({
url: 'external/integral/order/list',
method: 'get',
params,
});
}
/**
* 用户积分列表(含 eb_user 积分字段)
*/
export function getExternalUserList(params) {
return requestNoAuth({
url: 'external/integral/user/list',
method: 'get',
params,
});
}
/**
* 用户积分明细分页列表page/limit 走 query与 /admin/user/integral/list 一致)
*/
export function getExternalIntegralLog(data) {
const { page, limit, ...body } = data;
return requestNoAuth({
url: 'external/integral/log/list',
method: 'post',
params: { page, limit },
data: body,
});
}

Some files were not shown because too many files have changed in this diff Show More