Skip to content

Commit 6e17529

Browse files
committed
update v5.2.1
1 parent 4512bec commit 6e17529

File tree

1,670 files changed

+43132
-18568
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,670 files changed

+43132
-18568
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
GNU GENERAL PUBLIC LICENSE
1+
GNU GENERAL PUBLIC LICENSE
22
Version 3, 29 June 2007
33

44
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ CRMEB开源商城系统PHP版
1313
<img src="https://img.shields.io/badge/Licence-GPL3.0-green.svg?style=flat" />
1414
</a>
1515
<a href="http://www.crmeb.com">
16-
<img src="https://img.shields.io/badge/Edition-5.1-blue.svg" />
16+
<img src="https://img.shields.io/badge/Edition-5.2-blue.svg" />
1717
</a>
1818
<a href="https://gitee.com/ZhongBangKeJi/CRMEB/repository/archive/master.zip">
1919
<img src="https://img.shields.io/badge/Download-240m-red.svg" />
@@ -115,9 +115,9 @@ Redis
115115

116116
账号:demo 密码:crmeb.com
117117

118-
H5端:http://v5.crmeb.net/(移动端打开)
118+
H5端:http://v5.crmeb.net/ (移动端打开)
119119

120-
PC端:http://v5.crmeb.net/(电脑端打开)
120+
PC端:http://v5.crmeb.net/ (电脑端打开)
121121

122122
APP下载:http://app.crmeb.cn/bzv (苹果手机直接在APP Store里搜索CRMEB下载)
123123

@@ -153,6 +153,9 @@ APP下载:http://app.crmeb.cn/bzv (苹果手机直接在APP Store里搜索CR
153153

154154
So~~想要用CRMEB开源商城系统做公益项目的朋友,可以来免费申请商业版系统哦!有需要的朋友,快去找官方客服咨询吧!
155155

156+
![输入图片说明](readme/pic/gongyi1.jpg)
157+
![输入图片说明](readme/pic/gongyi2.jpg)
158+
156159
---
157160
### 💎 捐赠
158161
赠人玫瑰,手留余香!CRMEB诚挚地邀请大家积极参与捐赠,我们会将捐赠获得的费用,悉数用于支持公益项目,让善意无限传递下去!

crmeb/.version

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
version=CRMEB-KY v5.2.0
2-
version_code=520
1+
version=CRMEB-KY v5.2.1
2+
version_code=521
33
platform=github
44
app_id=ze7x9rxsv09l6pvsyo
55
app_key=fuF7U9zaybLa5gageVQzxtxQMFnvU2OI

crmeb/app/adminapi/controller/UpgradeController.php

Lines changed: 151 additions & 1644 deletions
Large diffs are not rendered by default.

crmeb/app/adminapi/controller/v1/agent/AgentLevel.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,13 @@ public function save()
6969
['name', ''],
7070
['grade', 0],
7171
['image', ''],
72-
['one_brokerage', 0],
73-
['two_brokerage', 0],
72+
['one_brokerage_percent', 0],
73+
['two_brokerage_percent', 0],
7474
['status', 0]]);
7575
if (!$data['name']) return app('json')->fail(400200);
7676
if (!$data['grade']) return app('json')->fail(400201);
7777
if (!$data['image']) return app('json')->fail(400202);
78-
if ($data['two_brokerage'] > $data['one_brokerage']) {
78+
if ($data['two_brokerage_percent'] > $data['one_brokerage_percent']) {
7979
return app('json')->fail(400203);
8080
}
8181
$grade = $this->services->get(['grade' => $data['grade'], 'is_del' => 0]);
@@ -121,13 +121,13 @@ public function update($id)
121121
['name', ''],
122122
['grade', 0],
123123
['image', ''],
124-
['one_brokerage', 0],
125-
['two_brokerage', 0],
124+
['one_brokerage_percent', 0],
125+
['two_brokerage_percent', 0],
126126
['status', 0]]);
127127
if (!$data['name']) return app('json')->fail(400200);
128128
if (!$data['grade']) return app('json')->fail(400201);
129129
if (!$data['image']) return app('json')->fail(400202);
130-
if ($data['two_brokerage'] > $data['one_brokerage']) {
130+
if ($data['two_brokerage_percent'] > $data['one_brokerage_percent']) {
131131
return app('json')->fail(400203);
132132
}
133133
if (!$levelInfo = $this->services->getLevelInfo((int)$id)) return app('json')->fail(400206);
@@ -139,8 +139,8 @@ public function update($id)
139139
$levelInfo->name = $data['name'];
140140
$levelInfo->grade = $data['grade'];
141141
$levelInfo->image = $data['image'];
142-
$levelInfo->one_brokerage = $data['one_brokerage'];
143-
$levelInfo->two_brokerage = $data['two_brokerage'];
142+
$levelInfo->one_brokerage_percent = $data['one_brokerage_percent'];
143+
$levelInfo->two_brokerage_percent = $data['two_brokerage_percent'];
144144
$levelInfo->status = $data['status'];
145145
$levelInfo->save();
146146
return app('json')->success(100001);

crmeb/app/adminapi/controller/v1/file/SystemAttachmentCategory.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ public function save()
7575
['pid', 0],
7676
['name', '']
7777
]);
78+
if (is_array($data['pid'])) $data['pid'] = end($data['pid']);
7879
if (!$data['name']) {
7980
return app('json')->fail(400100);
8081
}
@@ -108,6 +109,9 @@ public function update($id)
108109
if (!$data['name']) {
109110
return app('json')->fail(400100);
110111
}
112+
if ($data['pid'] == $id) {
113+
return app('json')->fail('上级分类不能是自己');
114+
}
111115
$info = $this->service->get($id);
112116
$count = $this->service->count(['pid' => $id]);
113117
if ($count && $info['pid'] != $data['pid']) return app('json')->fail(400105);

crmeb/app/adminapi/controller/v1/marketing/StoreBargain.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public function save($id)
8787
['postage', 0],//邮费
8888
['custom_form', ''],
8989
['virtual_type', 0],
90+
['is_commission', 0],
9091
]);
9192
$this->validate($data, \app\adminapi\validate\marketing\StoreBargainValidate::class, 'save');
9293
if ($data['section_time']) {

crmeb/app/adminapi/controller/v1/marketing/StoreCouponIssue.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public function index()
4343
['coupon_title', ''],
4444
['receive_type', ''],
4545
['type', ''],
46+
['coupon_type', ''],
4647
]);
4748
$list = $this->services->getCouponIssueList($where);
4849
return app('json')->success($list);
@@ -55,6 +56,7 @@ public function index()
5556
public function saveCoupon()
5657
{
5758
$data = $this->request->postMore([
59+
['id', 0],
5860
['coupon_title', ''],
5961
['coupon_price', 0.00],
6062
['use_min_price', 0.00],

crmeb/app/adminapi/controller/v1/marketing/StoreSeckill.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public function save($id)
8787
['postage', 0],//邮费
8888
['custom_form', ''],
8989
['virtual_type', 0],
90+
['is_commission', 0],
9091
]);
9192
$this->validate($data, \app\adminapi\validate\marketing\StoreSeckillValidate::class, 'save');
9293
$this->services->saveData($id, $data);

crmeb/app/adminapi/controller/v1/order/StoreOrder.php

Lines changed: 62 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use app\adminapi\validate\order\StoreOrderValidate;
1515
use app\jobs\OrderExpressJob;
1616
use app\services\serve\ServeServices;
17+
use app\services\wechat\WechatUserServices;
1718
use crmeb\services\FileService;
1819
use app\services\order\{StoreOrderCartInfoServices,
1920
StoreOrderDeliveryServices,
@@ -452,7 +453,7 @@ public function refund(StoreOrderRefundServices $services, $id)
452453
if (!$id) {
453454
return app('json')->fail(100100);
454455
}
455-
return app('json')->success($services->refundOrderForm((int)$id));
456+
return app('json')->success($services->refundOrderForm((int)$id, 'order'));
456457
}
457458

458459
/**
@@ -467,7 +468,6 @@ public function update_refund(StoreOrderRefundServices $services, $id)
467468
{
468469
$data = $this->request->postMore([
469470
['refund_price', 0],
470-
['type', 1]
471471
]);
472472
if (!$id) {
473473
return app('json')->fail(100100);
@@ -476,44 +476,63 @@ public function update_refund(StoreOrderRefundServices $services, $id)
476476
if (!$order) {
477477
return app('json')->fail(400118);
478478
}
479+
480+
$refundData = [
481+
'refund_reason' => '后台主动退款',
482+
'refund_explain' => '后台主动退款',
483+
'refund_img' => json_encode([]),
484+
];
485+
486+
$res = $services->applyRefund((int)$id, $order['uid'], $order, [], 1, (float)$data['refund_price'], $refundData);
487+
488+
if (!$res) {
489+
return app('json')->fail('退款单生成失败');
490+
}
491+
492+
$orderRefund = $services->get(['store_order_id' => $id]);
493+
494+
495+
$data['refund_status'] = 2;
496+
$data['refund_type'] = 6;
497+
$data['refunded_time'] = time();
498+
479499
//0元退款
480-
if ($order['pay_price'] == 0 && in_array($order['refund_status'], [0, 1])) {
500+
if ($orderRefund['refund_price'] == 0 && in_array($orderRefund['refund_type'], [1, 5])) {
481501
$refund_price = 0;
482502
} else {
483-
if ($order['pay_price'] == $order['refund_price']) {
484-
return app('json')->fail(400147);
485-
}
486503
if (!$data['refund_price']) {
487504
return app('json')->fail(400146);
488505
}
489-
$refund_price = $data['refund_price'];
490-
$data['refund_price'] = bcadd($data['refund_price'], $order['refund_price'], 2);
491-
$bj = bccomp((string)$order['pay_price'], (string)$data['refund_price'], 2);
492-
if ($bj < 0) {
493-
return app('json')->fail(400148);
506+
if ($orderRefund['refund_price'] == $orderRefund['refunded_price']) {
507+
return app('json')->fail(400147);
494508
}
509+
$refund_price = $data['refund_price'];
495510
}
496-
if ($data['type'] == 1) {
497-
$data['refund_status'] = 2;
498-
} else if ($data['type'] == 2) {
499-
$data['refund_status'] = 0;
511+
512+
$data['refunded_price'] = bcadd($data['refund_price'], $orderRefund['refunded_price'], 2);
513+
$bj = bccomp((string)$orderRefund['refund_price'], (string)$data['refunded_price'], 2);
514+
if ($bj < 0) {
515+
return app('json')->fail(400148);
500516
}
501-
$data['refund_type'] = 6;
502-
$type = $data['type'];
503-
unset($data['type']);
517+
504518
$refund_data['pay_price'] = $order['pay_price'];
505519
$refund_data['refund_price'] = $refund_price;
506520
if ($order['refund_price'] > 0) {
521+
mt_srand();
507522
$refund_data['refund_id'] = $order['order_id'] . rand(100, 999);
508523
}
509-
//退款处理
510-
$services->payOrderRefund($type, $order, $refund_data);
524+
($order['pid'] > 0) ? $refund_data['order_id'] = $this->services->value(['id' => (int)$order['pid']], 'order_id') : $refund_data['order_id'] = $order['order_id'];
525+
/** @var WechatUserServices $wechatUserServices */
526+
$wechatUserServices = app()->make(WechatUserServices::class);
527+
$refund_data['open_id'] = $wechatUserServices->uidToOpenid((int)$order['uid'], 'routine') ?? '';
528+
$refund_data['refund_no'] = $orderRefund['order_id'];
511529
//修改订单退款状态
512-
if ($this->services->update($id, $data)) {
513-
$services->storeProductOrderRefundY($data, $order, $refund_price);
530+
unset($data['refund_price']);
531+
if ($services->agreeRefund($orderRefund['id'], $refund_data)) {
532+
$services->update($orderRefund['id'], $data);
514533
return app('json')->success(400149);
515534
} else {
516-
$services->storeProductOrderRefundYFasle((int)$id, $refund_price);
535+
$services->storeProductOrderRefundYFasle((int)$orderRefund['id'], $refund_price);
517536
return app('json')->fail(400150);
518537
}
519538
}
@@ -883,4 +902,24 @@ public function importExpress()
883902
}
884903
return app('json')->success('批量发货成功');
885904
}
905+
906+
/**
907+
* 配货单
908+
* @param $order_id
909+
* @return \think\Response
910+
* @throws \think\db\exception\DataNotFoundException
911+
* @throws \think\db\exception\DbException
912+
* @throws \think\db\exception\ModelNotFoundException
913+
* @author: 吴汐
914+
* @email: 442384644@qq.com
915+
* @date: 2023/10/11
916+
*/
917+
public function printShipping($order_id)
918+
{
919+
if (!$order_id) {
920+
return app('json')->fail('参数错误');
921+
}
922+
$data = $this->services->printShippingData($order_id);
923+
return app('json')->success($data);
924+
}
886925
}

crmeb/app/adminapi/controller/v1/setting/SystemConfig.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ public function save_basics(Request $request)
340340
if (!is_int($post['sign_give_point']) || $post['sign_give_point'] < 0) return app('json')->fail('签到赠送积分请填写大于等于0的整数');
341341
}
342342
if (isset($post['sign_give_exp'])) {
343-
if (!is_int($post['sign_give_exp']) || $post['sign_give_exp'] < 0) return app('json')->fail('签到赠送经验请填写大于等于0的整数');
343+
if ((int)$post['sign_give_exp'] < 0) return app('json')->fail('签到赠送经验请填写大于等于0的整数');
344344
}
345345
if (isset($post['integral_frozen'])) {
346346
if (!ctype_digit($post['integral_frozen']) || $post['integral_frozen'] < 0) return app('json')->fail('积分冻结天数请填写大于等于0的整数');
@@ -358,6 +358,9 @@ public function save_basics(Request $request)
358358
if (isset($post['customer_phone'])) {
359359
if (!ctype_digit($post['customer_phone']) || strlen($post['customer_phone']) > 11) return app('json')->fail('客服手机号为11位数字');
360360
}
361+
if (isset($post['refund_time_available'])) {
362+
if (!ctype_digit($post['refund_time_available'])) return app('json')->fail('售后期限必须为大于0的整数');
363+
}
361364

362365
foreach ($post as $k => $v) {
363366
$config_one = $this->services->getOne(['menu_name' => $k]);

crmeb/app/adminapi/controller/v1/setting/SystemCrud.php

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,15 @@
2020
use app\services\system\SystemCrudDataService;
2121
use app\services\system\SystemCrudServices;
2222
use app\services\system\SystemMenusServices;
23+
use app\services\system\SystemRouteServices;
2324
use crmeb\services\CacheService;
2425
use crmeb\services\crud\enum\FormTypeEnum;
2526
use crmeb\services\crud\Make;
2627
use crmeb\services\crud\Service;
2728
use crmeb\services\FileService;
2829
use think\facade\App;
30+
use think\facade\Db;
31+
use think\facade\Env;
2932
use think\helper\Str;
3033
use think\Response;
3134

@@ -548,13 +551,20 @@ public function delete(SystemMenusServices $services, $id)
548551
return app('json')->fail(100026);
549552
}
550553

551-
$services->transaction(function () use ($services, $info) {
552-
if ($info->menu_ids) {
553-
$services->deleteMenus($info->menu_ids);
554-
}
554+
$menusServices = app()->make(SystemMenusServices::class);
555+
if ($info->menu_ids) {
556+
$menusServices->deleteMenus($info->menu_ids);
557+
}
558+
if ($info->menu_id) {
559+
$menusServices->deleteMenus([$info->menu_id]);
560+
}
555561

556-
$info->delete();
557-
});
562+
$routeServices = app()->make(SystemRouteServices::class);
563+
if ($info->route_ids) {
564+
$routeServices->deleteRoutes($info->route_ids);
565+
}
566+
567+
Db::query("DROP TABLE `" . Env::get('database.prefix', 'eb_') . $info->table_name . "`");
558568

559569
if ($info->make_path) {
560570
$errorFile = [];
@@ -577,6 +587,8 @@ public function delete(SystemMenusServices $services, $id)
577587
}
578588
}
579589

590+
$info->delete();
591+
580592

581593
return app('json')->success(100002);
582594
}

crmeb/app/adminapi/controller/v1/setting/SystemRole.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public function edit(SystemMenusServices $services, $id)
106106
if (!$role) {
107107
return app('json')->fail(100100);
108108
}
109-
$menus = $services->getMenus($this->adminInfo['level'] == 0 ? [] : $this->adminInfo['roles']);
109+
$menus = $services->getMenus($this->adminInfo['level'] == 0 ? [] : $this->adminInfo['roles'], explode(',', $role['rules']));
110110
return app('json')->success(['role' => $role->toArray(), 'menus' => $menus]);
111111
}
112112

0 commit comments

Comments
 (0)