Просмотр исходного кода

Merge branch 'v4.7.0dev' of https://gitee.com/ZhongBangKeJi/CRMEB into v4.7.0dev

From-wh 2 лет назад
Родитель
Сommit
f7ab5a681d

+ 12 - 6
crmeb/app/adminapi/controller/v1/order/RefundOrder.php

@@ -57,7 +57,13 @@ class RefundOrder extends AuthController
     /**
     /**
      * 订单详情
      * 订单详情
      * @param $uni
      * @param $uni
-     * @return mixed
+     * @return \think\Response
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author 吴汐
+     * @email 442384644@qq.com
+     * @date 2023/03/02
      */
      */
     public function getRefundInfo($uni)
     public function getRefundInfo($uni)
     {
     {
@@ -163,12 +169,12 @@ class RefundOrder extends AuthController
                     return app('json')->fail(400147);
                     return app('json')->fail(400147);
                 }
                 }
                 $refund_price = $data['refund_price'];
                 $refund_price = $data['refund_price'];
+            }
 
 
-                $data['refunded_price'] = bcadd($data['refund_price'], $orderRefund['refunded_price'], 2);
-                $bj = bccomp((string)$orderRefund['refund_price'], (string)$data['refunded_price'], 2);
-                if ($bj < 0) {
-                    return app('json')->fail(400148);
-                }
+            $data['refunded_price'] = bcadd($data['refund_price'], $orderRefund['refunded_price'], 2);
+            $bj = bccomp((string)$orderRefund['refund_price'], (string)$data['refunded_price'], 2);
+            if ($bj < 0) {
+                return app('json')->fail(400148);
             }
             }
 
 
             unset($data['type']);
             unset($data['type']);

+ 2 - 4
crmeb/app/listener/crontab/SystemCrontabListener.php

@@ -36,7 +36,8 @@ class SystemCrontabListener implements ListenerInterface
     }
     }
 
 
     /**
     /**
-     *  0   1   2   3   4   5
+     * 获取定时任务时间表达式
+     * 0   1   2   3   4   5
      * |   |   |   |   |   |
      * |   |   |   |   |   |
      * |   |   |   |   |   +------ day of week (0 - 6) (Sunday=0)
      * |   |   |   |   |   +------ day of week (0 - 6) (Sunday=0)
      * |   |   |   |   +------ month (1 - 12)
      * |   |   |   |   +------ month (1 - 12)
@@ -44,9 +45,6 @@ class SystemCrontabListener implements ListenerInterface
      * |   |   +---------- hour (0 - 23)
      * |   |   +---------- hour (0 - 23)
      * |   +------------ min (0 - 59)
      * |   +------------ min (0 - 59)
      * +-------------- sec (0-59)[可省略,如果没有0位,则最小时间粒度是分钟]
      * +-------------- sec (0-59)[可省略,如果没有0位,则最小时间粒度是分钟]
-     */
-    /**
-     * 获取定时任务时间表达式
      * @param $data
      * @param $data
      * @return string
      * @return string
      */
      */

+ 16 - 5
crmeb/app/services/order/StoreOrderCreateServices.php

@@ -488,10 +488,8 @@ class StoreOrderCreateServices extends BaseServices
             $cart['coupon_price'] = 0.00;
             $cart['coupon_price'] = 0.00;
         }
         }
         try {
         try {
-            [$cartInfo, $spread_ids] = $this->computeOrderProductBrokerage($uid, $cartInfo, $orderInfo);
             $cartInfo = $this->computeOrderProductCoupon($cartInfo, $priceData);
             $cartInfo = $this->computeOrderProductCoupon($cartInfo, $priceData);
             $cartInfo = $this->computeOrderProductIntegral($cartInfo, $priceData);
             $cartInfo = $this->computeOrderProductIntegral($cartInfo, $priceData);
-//            $cartInfo = $this->computeOrderProductPostage($cartInfo, $priceData, $addressId);
         } catch (\Throwable $e) {
         } catch (\Throwable $e) {
             Log::error('订单商品结算失败,File:' . $e->getFile() . ',Line:' . $e->getLine() . ',Message:' . $e->getMessage());
             Log::error('订单商品结算失败,File:' . $e->getFile() . ',Line:' . $e->getLine() . ',Message:' . $e->getMessage());
             throw new ApiException(410248);
             throw new ApiException(410248);
@@ -513,6 +511,12 @@ class StoreOrderCreateServices extends BaseServices
                 $cart['truePrice'] = $cart['truePrice'] > $uni_integral_price ? bcsub((string)$cart['truePrice'], $uni_integral_price, 2) : 0;
                 $cart['truePrice'] = $cart['truePrice'] > $uni_integral_price ? bcsub((string)$cart['truePrice'], $uni_integral_price, 2) : 0;
             }
             }
         }
         }
+        try {
+            [$cartInfo, $spread_ids] = $this->computeOrderProductBrokerage($uid, $cartInfo, $orderInfo);
+        } catch (\Throwable $e) {
+            Log::error('订单商品结算失败,File:' . $e->getFile() . ',Line:' . $e->getLine() . ',Message:' . $e->getMessage());
+            throw new ApiException(410248);
+        }
         return [$cartInfo, $spread_ids];
         return [$cartInfo, $spread_ids];
     }
     }
 
 
@@ -794,12 +798,19 @@ class StoreOrderCreateServices extends BaseServices
                 $productInfo = $cart['productInfo'];
                 $productInfo = $cart['productInfo'];
 
 
                 //计算商品金额
                 //计算商品金额
-                if (isset($productInfo['attrInfo'])) {
-                    $price = bcmul((string)($productInfo['attrInfo']['price'] ?? '0'), $cartNum, 4);
+                if (sys_config('user_brokerage_type') == 1) {
+                    //按照实际支付价格返佣
+                    $price = bcmul((string)$cart['truePrice'], $cartNum, 4);
                 } else {
                 } else {
-                    $price = bcmul((string)($productInfo['price'] ?? '0'), $cartNum, 4);
+                    //按照商品价格返佣
+                    if (isset($productInfo['attrInfo'])) {
+                        $price = bcmul((string)($productInfo['attrInfo']['price'] ?? '0'), $cartNum, 4);
+                    } else {
+                        $price = bcmul((string)($productInfo['price'] ?? '0'), $cartNum, 4);
+                    }
                 }
                 }
 
 
+
                 $staffBrokerage = bcmul((string)$price, (string)bcdiv($staffPercent, 100, 4), 2);
                 $staffBrokerage = bcmul((string)$price, (string)bcdiv($staffPercent, 100, 4), 2);
                 $agentBrokerage = bcmul((string)$price, (string)bcdiv($agentPercent, 100, 4), 2);
                 $agentBrokerage = bcmul((string)$price, (string)bcdiv($agentPercent, 100, 4), 2);
                 $divisionBrokerage = bcmul((string)$price, (string)bcdiv($divisionPercent, 100, 4), 2);
                 $divisionBrokerage = bcmul((string)$price, (string)bcdiv($divisionPercent, 100, 4), 2);

+ 16 - 0
crmeb/app/services/system/crontab/CrontabRunServices.php

@@ -20,6 +20,22 @@ use think\facade\Log;
  */
  */
 class CrontabRunServices
 class CrontabRunServices
 {
 {
+    /**
+     * 定时任务类型 每一个定义的类型会对应CrontabRunServices类中的一个方法
+     * @var string[]
+     */
+    public $markList = [
+        'orderCancel' => '未支付自动取消订单',
+        'pinkExpiration' => '拼团到期订单处理',
+        'agentUnbind' => '到期自动解绑上级',
+        'liveProductStatus' => '自动更新直播商品状态',
+        'liveRoomStatus' => '自动更新直播间状态',
+        'takeDelivery' => '订单自动收货',
+        'advanceOff' => '预售商品到期自动下架',
+        'productReplay' => '订单商品自动好评',
+        'clearPoster' => '清除昨日海报',
+    ];
+
     /**
     /**
      * 调用不存在的方法
      * 调用不存在的方法
      * @param $name
      * @param $name

+ 2 - 18
crmeb/app/services/system/crontab/SystemCrontabServices.php

@@ -18,22 +18,6 @@ use think\helper\Str;
 
 
 class SystemCrontabServices extends BaseServices
 class SystemCrontabServices extends BaseServices
 {
 {
-    /**
-     * 定时任务类型 每一个定义的类型会对应CrontabRunServices类中的一个方法
-     * @var string[]
-     */
-    private $markList = [
-        'order_cancel' => '未支付自动取消订单',
-        'pink_expiration' => '拼团到期订单处理',
-        'agent_unbind' => '到期自动解绑上级',
-        'live_product_status' => '自动更新直播商品状态',
-        'live_room_status' => '自动更新直播间状态',
-        'take_delivery' => '订单自动收货',
-        'advance_off' => '预售商品到期自动下架',
-        'product_replay' => '订单商品自动好评',
-        'clear_poster' => '清除昨日海报',
-    ];
-
     public function __construct(SystemCrontabDao $dao)
     public function __construct(SystemCrontabDao $dao)
     {
     {
         $this->dao = $dao;
         $this->dao = $dao;
@@ -80,7 +64,7 @@ class SystemCrontabServices extends BaseServices
      */
      */
     public function getMarkList(): array
     public function getMarkList(): array
     {
     {
-        return $this->markList;
+        return app()->make(CrontabRunServices::class)->markList;
     }
     }
 
 
     /**
     /**
@@ -93,7 +77,7 @@ class SystemCrontabServices extends BaseServices
         if (!$data['id'] && $this->dao->getCount(['mark' => $data['mark'], 'is_del' => 0])) {
         if (!$data['id'] && $this->dao->getCount(['mark' => $data['mark'], 'is_del' => 0])) {
             throw new AdminException('该定时任务已存在,请勿重复添加');
             throw new AdminException('该定时任务已存在,请勿重复添加');
         }
         }
-        $data['name'] = $this->markList[$data['mark']];
+        $data['name'] = $this->getMarkList()[$data['mark']];
         $data['add_time'] = time();
         $data['add_time'] = time();
         if (!$data['id']) {
         if (!$data['id']) {
             unset($data['id']);
             unset($data['id']);

+ 1 - 1
crmeb/crmeb/services/easywechat/v3pay/PayClient.php

@@ -212,7 +212,7 @@ class PayClient extends BaseClient
         $totalFee = '0';
         $totalFee = '0';
         $amount = bcadd($amount, '0', 2);
         $amount = bcadd($amount, '0', 2);
         foreach ($transferDetailList as &$item) {
         foreach ($transferDetailList as &$item) {
-            if ($item['transfer_amount'] >= 2000 && !empty($item['user_name'])) {
+            if ($item['transfer_amount'] >= 2000 && empty($item['user_name'])) {
                 throw new PayException('明细金额大于等于2000时,收款人姓名必须填写');
                 throw new PayException('明细金额大于等于2000时,收款人姓名必须填写');
             }
             }
             $totalFee = bcadd($totalFee, $item['transfer_amount'], 2);
             $totalFee = bcadd($totalFee, $item['transfer_amount'], 2);

+ 9 - 9
crmeb/public/install/crmeb.sql

@@ -34875,15 +34875,15 @@ CREATE TABLE IF NOT EXISTS `eb_system_timer` (
 --
 --
 
 
 INSERT INTO `eb_system_timer` (`id`, `name`, `mark`, `content`, `type`, `week`, `day`, `hour`, `minute`, `second`, `last_execution_time`, `next_execution_time`, `add_time`, `is_del`, `is_open`) VALUES
 INSERT INTO `eb_system_timer` (`id`, `name`, `mark`, `content`, `type`, `week`, `day`, `hour`, `minute`, `second`, `last_execution_time`, `next_execution_time`, `add_time`, `is_del`, `is_open`) VALUES
-(1, '未支付自动取消订单', 'order_cancel', '每隔30秒执行自动取消到期未支付的订单', 1, 1, 1, 1, 30, 30, 0, 1670642407, 1670642377, 0, 1),
-(2, '拼团到期订单处理', 'pink_expiration', '每隔1分钟拼团到期之后的操作', 2, 1, 1, 1, 1, 0, 0, 1670642487, 1670642427, 0, 1),
-(3, '到期自动解绑上级', 'agent_unbind', '每隔1分钟执行到期的绑定关系的解除', 2, 1, 1, 1, 1, 0, 0, 1670642534, 1670642474, 0, 1),
-(4, '自动更新直播商品状态', 'live_product_status', '每隔3分钟执行更新直播商品状态', 2, 1, 1, 1, 3, 0, 0, 1670642694, 1670642514, 0, 1),
-(5, '自动更新直播间状态', 'live_room_status', '每隔3分钟执行更新直播间状态', 2, 1, 1, 1, 3, 0, 0, 1670642709, 1670642529, 0, 1),
-(6, '订单自动收货', 'take_delivery', '每隔5分钟执行订单到期自动收货', 2, 1, 1, 1, 5, 0, 0, 1670642891, 1670642591, 0, 1),
-(7, '预售商品到期自动下架', 'advance_off', '每隔5分钟执行预售商品到期下架', 2, 1, 1, 1, 5, 0, 0, 1670642913, 1670642613, 0, 1),
-(8, '订单商品自动好评', 'product_replay', '每隔5分钟执行订单到期商品好评', 2, 1, 1, 1, 5, 0, 0, 1670642933, 1670642633, 0, 1),
-(9, '清除昨日海报', 'clear_poster', '每天0时30分0秒执行一次清除昨日海报', 5, 1, 1, 0, 30, 0, 0, 1670862600, 1670815378, 0, 1);
+(1, '未支付自动取消订单', 'orderCancel', '每隔30秒执行自动取消到期未支付的订单', 1, 1, 1, 1, 30, 30, 0, 1670642407, 1670642377, 0, 1),
+(2, '拼团到期订单处理', 'pinkExpiration', '每隔1分钟拼团到期之后的操作', 2, 1, 1, 1, 1, 0, 0, 1670642487, 1670642427, 0, 1),
+(3, '到期自动解绑上级', 'agentUnbind', '每隔1分钟执行到期的绑定关系的解除', 2, 1, 1, 1, 1, 0, 0, 1670642534, 1670642474, 0, 1),
+(4, '自动更新直播商品状态', 'liveProductStatus', '每隔3分钟执行更新直播商品状态', 2, 1, 1, 1, 3, 0, 0, 1670642694, 1670642514, 0, 1),
+(5, '自动更新直播间状态', 'liveRoomStatus', '每隔3分钟执行更新直播间状态', 2, 1, 1, 1, 3, 0, 0, 1670642709, 1670642529, 0, 1),
+(6, '订单自动收货', 'takeDelivery', '每隔5分钟执行订单到期自动收货', 2, 1, 1, 1, 5, 0, 0, 1670642891, 1670642591, 0, 1),
+(7, '预售商品到期自动下架', 'advanceOff', '每隔5分钟执行预售商品到期下架', 2, 1, 1, 1, 5, 0, 0, 1670642913, 1670642613, 0, 1),
+(8, '订单商品自动好评', 'productReplay', '每隔5分钟执行订单到期商品好评', 2, 1, 1, 1, 5, 0, 0, 1670642933, 1670642633, 0, 1),
+(9, '清除昨日海报', 'clearPoster', '每天0时30分0秒执行一次清除昨日海报', 5, 1, 1, 0, 30, 0, 0, 1670862600, 1670815378, 0, 1);
 
 
 -- --------------------------------------------------------
 -- --------------------------------------------------------
 
 

+ 2 - 1
template/admin/src/pages/agent/agentManage.vue

@@ -20,7 +20,8 @@
                 <Radio :label="item.val" v-for="(item, i) in fromList.fromTxt" :key="i">{{ item.text }}</Radio>
                 <Radio :label="item.val" v-for="(item, i) in fromList.fromTxt" :key="i">{{ item.text }}</Radio>
               </RadioGroup>
               </RadioGroup>
               <DatePicker
               <DatePicker
-                :editable="false"
+                :editable="true"
+                :clearable="true"
                 @on-change="onchangeTime"
                 @on-change="onchangeTime"
                 :value="timeVal"
                 :value="timeVal"
                 format="yyyy/MM/dd"
                 format="yyyy/MM/dd"

+ 1 - 1
template/admin/src/pages/system/configTab/index.vue

@@ -46,7 +46,7 @@
         :data="classList"
         :data="classList"
         row-id="id"
         row-id="id"
       >
       >
-        <vxe-table-column field="id" title="ID" tooltip min-width="60"></vxe-table-column>
+        <vxe-table-column field="id" title="ID" tooltip width="60"></vxe-table-column>
         <vxe-table-column field="title" tree-node title="分类名称" min-width="150"></vxe-table-column>
         <vxe-table-column field="title" tree-node title="分类名称" min-width="150"></vxe-table-column>
         <vxe-table-column field="eng_title" title="分类字段" min-width="150"></vxe-table-column>
         <vxe-table-column field="eng_title" title="分类字段" min-width="150"></vxe-table-column>
         <vxe-table-column field="statuss" title="状态" min-width="150">
         <vxe-table-column field="statuss" title="状态" min-width="150">

+ 5 - 3
template/uni-app/pages/activity/bargain/index.vue

@@ -21,8 +21,8 @@
 					</div>
 					</div>
 					<div class="bottom acea-row row-between-wrapper">
 					<div class="bottom acea-row row-between-wrapper">
 						<div class="purple" v-if="item.status === 1">{{$t(`活动进行中`)}}</div>
 						<div class="purple" v-if="item.status === 1">{{$t(`活动进行中`)}}</div>
-						<div class="success" v-else-if="item.status === 3">{{$t(`砍价成功`)}}</div>
-						<div class="end" v-else>{{$t(`活动已结束`)}}</div>
+						<div class="success" v-if="item.status === 3">{{$t(`砍价成功`)}}</div>
+						<div class="end" v-if="item.status === 2">{{$t(`活动已结束`)}}</div>
 						<div class="acea-row row-middle row-right">
 						<div class="acea-row row-middle row-right">
 							<div class="bnt cancel" v-if="item.status === 1"
 							<div class="bnt cancel" v-if="item.status === 1"
 								@click="getBargainUserCancel(item.bargain_id)">
 								@click="getBargainUserCancel(item.bargain_id)">
@@ -31,7 +31,9 @@
 							<div class="bnt bg-color-red" v-if="item.status === 1" @click="goDetail(item.bargain_id)">
 							<div class="bnt bg-color-red" v-if="item.status === 1" @click="goDetail(item.bargain_id)">
 								{{$t(`继续砍价`)}}
 								{{$t(`继续砍价`)}}
 							</div>
 							</div>
-							<!-- <div class="bnt bg-color-red" v-else @click="goList">重开一个</div> -->
+						</div>
+						<div class="acea-row row-middle row-right success"  v-if="item.status === 3">
+							{{item.success_time}}
 						</div>
 						</div>
 					</div>
 					</div>
 				</div>
 				</div>