Browse Source

员工业绩

shish 5 years ago
parent
commit
ba99fb47b0

+ 33 - 0
app/ghs/controllers/StatYjController.php

@@ -0,0 +1,33 @@
+<?php
+
+namespace ghs\controllers;
+
+use bizGhs\stat\classes\StatYjClass;
+use common\components\dateUtil;
+use Yii;
+use common\components\util;
+
+class StatYjController extends BaseController
+{
+
+	//员工业绩 shish 2021.3.15
+	public function actionList()
+	{
+		$get = Yii::$app->request->get();
+		$where = [];
+		$where['shopId'] = $this->shopId;
+		if (isset($get['shopId']) && !empty($get['shopId'])) {
+			$where['shopId'] = $get['shopId'];
+		}
+		$searchTime = $get['searchTime'] ?? '';
+		if (!empty($searchTime)) {
+			$startTime = $get['startTime'] ?? '';
+			$endTime = $get['endTime'] ?? '';
+			$period = dateUtil::formatTime($searchTime, $startTime, $endTime, true);
+			$where['time'] = ['between', [$period['startTime'], $period['endTime']]];
+		}
+		$respond = StatYjClass::getYjList($where);
+		util::success($respond);
+	}
+
+}

+ 1 - 0
app/hd/controllers/OrderController.php

@@ -13,6 +13,7 @@ use bizHd\saas\services\RegionService;
 use bizHd\user\services\UserService;
 use bizGhs\order\classes\OrderItemClass;
 use common\components\configDict;
+use common\components\dateUtil;
 use common\services\xhPayToolService;
 use Yii;
 use common\components\util;

+ 51 - 0
biz-ghs/stat/classes/StatYjClass.php

@@ -0,0 +1,51 @@
+<?php
+
+namespace bizGhs\stat\classes;
+
+use bizGhs\shop\classes\ShopAdminClass;
+use common\components\arrayUtil;
+use Yii;
+use bizGhs\base\classes\BaseClass;
+
+class StatYjClass extends BaseClass
+{
+	
+	public static $baseFile = '\bizGhs\stat\models\StatYj';
+	
+	//业绩列表 shish 2021.3.15
+	public static function getYjList($where)
+	{
+		$data = self::getList('*', $where, 'addTime DESC');
+		$list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
+		if (empty($list)) {
+			return $data;
+		}
+		foreach ($data['list'] as $key => $val) {
+			$shopAdminId = $val['shopAdminId'];
+			if (isset($arr[$shopAdminId]) == false) {
+				$arr[$shopAdminId] = ['amount' => 0, 'num' => 0];
+			}
+			$arr[$shopAdminId]['amount'] = bcadd($val['amount'], $arr[$shopAdminId]['amount'], 2);
+			$arr[$shopAdminId]['num'] = bcadd($val['num'], $arr[$shopAdminId]['num']);
+		}
+		$ids = array_keys($arr);
+		$admin = ShopAdminClass::getByIds($ids);
+		$show = [];
+		foreach ($admin as $key => $val) {
+			$adminId = $val['id'];
+			$adminName = $val['adminName'] ?? '';
+			$amount = $arr[$adminId]['amount'] ?? 0.00;
+			$num = $arr[$adminId]['num'] ?? 0;
+			$show[] = [
+				'adminName' => $adminName,
+				'amount' => $amount,
+				'num' => $num,
+				'id' => $val['id'],
+			];
+		}
+		//排序
+		$show = arrayUtil::arraySort($show, 'amount');
+		return $show;
+	}
+	
+}

+ 15 - 0
biz-ghs/stat/models/StatYj.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizGhs\stat\models;
+
+use bizGhs\base\models\Base;
+
+class StatYj extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhGhsStatYj';
+    }
+
+}

+ 13 - 0
biz-ghs/stat/services/StatYjService.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizGhs\stat\services;
+
+use bizGhs\base\services\BaseService;
+use Yii;
+
+class StatYjService extends BaseService
+{
+
+    public static $baseFile = '\bizGhs\stat\classes\StatYjClass';
+
+}

+ 32 - 3
common/components/dateUtil.php

@@ -8,33 +8,53 @@ class dateUtil
 {
 	
 	//日期时间转换 shish 2021.3.4
-	public static function formatTime($searchTime, $startTime, $endTime)
+	public static function formatTime($searchTime, $startTime, $endTime, $Stat = false)
 	{
 		switch ($searchTime) {
 			case 'yesterday':
 				//昨天
 				$startTime = date("Y-m-d 00:00:00", strtotime("-1 day"));
 				$endTime = date("Y-m-d 23:59:59", strtotime("-1 day"));
+				if ($Stat) {
+					$startTime = date("Ymd", strtotime("-1 day"));
+					$endTime = date("Ymd", strtotime("-1 day"));
+				}
 				break;
 			case 'today':
 				//今天
 				$startTime = date("Y-m-d 00:00:00");
 				$endTime = date("Y-m-d 23:59:59");
+				if ($Stat) {
+					$startTime = date("Ymd");
+					$endTime = date("Ymd");
+				}
 				break;
 			case 'thisMonth':
 				//本月
 				$startTime = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m"), 1, date("Y")));
 				$endTime = date("Y-m-d H:i:s", mktime(23, 59, 59, date("m"), date("t"), date("Y")));
+				if ($Stat) {
+					$startTime = date("Ymd", mktime(0, 0, 0, date("m"), 1, date("Y")));
+					$endTime = date("Ymd", mktime(23, 59, 59, date("m"), date("t"), date("Y")));
+				}
 				break;
 			case 'lastMonth':
 				//上个月
 				$start = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m") - 1, 1, date("Y")));
 				$endTime = date("Y-m-d H:i:s", mktime(23, 59, 59, date("m"), 0, date("Y")));
+				if ($Stat) {
+					$start = date("Ymd", mktime(0, 0, 0, date("m") - 1, 1, date("Y")));
+					$endTime = date("Ymd", mktime(23, 59, 59, date("m"), 0, date("Y")));
+				}
 				break;
 			case 'thisYear':
 				//今年
 				$startTime = date("Y-m-d H:i:s", mktime(0, 0, 0, 1, 1, date("Y")));
 				$endTime = date("Y-m-d H:i:s", mktime(23, 59, 59, 1, 0, date("Y", strtotime('+1 year'))));
+				if ($Stat) {
+					$startTime = date("Ymd", mktime(0, 0, 0, 1, 1, date("Y")));
+					$endTime = date("Ymd", mktime(23, 59, 59, 1, 0, date("Y", strtotime('+1 year'))));
+				}
 				break;
 			case 'lastWeek':
 				//上周
@@ -61,13 +81,22 @@ class dateUtil
 				if (empty($endTime)) {
 					util::fail('请选择结束时间');
 				}
-				$startTime = $startTime . ' 00:00:00';
-				$endTime = $endTime . ' 23:59:59';
+				if ($Stat) {
+					$startTime = date("Ymd", strtotime($startTime));
+					$endTime = date("Ymd", strtotime($endTime));
+				} else {
+					$startTime = $startTime . ' 00:00:00';
+					$endTime = $endTime . ' 23:59:59';
+				}
 				break;
 			default:
 				//今天
 				$startTime = date("Y-m-d 00:00:00");
 				$endTime = date("Y-m-d 23:59:59");
+				if ($Stat) {
+					$startTime = date("Ymd");
+					$endTime = date("Ymd");
+				}
 		}
 		return ['startTime' => $startTime, 'endTime' => $endTime];
 	}

+ 62 - 1
sql.sql

@@ -1429,4 +1429,65 @@ ALTER TABLE xhGhsOrderClear ADD customId INT NOT NULL DEFAULT 0 COMMENT '客户i
 ALTER TABLE xhGhsOrderClear ADD shopAdminId INT NOT NULL DEFAULT 0 COMMENT '员工id' AFTER `customId`;
 ALTER TABLE xhGhsOrderClear ADD clearType TINYINT NOT NULL DEFAULT 1 COMMENT '清算方式 1花店发起清算 2供货商发起清算' AFTER `shopAdminId`;
 ALTER TABLE `xhGhsOrder` MODIFY `debt` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '0正常订单 1欠款';
-ALTER TABLE `xhGhsOrder` ADD clearId INT NOT NULL DEFAULT 0 COMMENT '欠款清算id' AFTER `debt`;
+ALTER TABLE `xhGhsOrder` ADD clearId INT NOT NULL DEFAULT 0 COMMENT '欠款清算id' AFTER `debt`;
+CREATE TABLE `xhGhsStatYj` (
+  `id` INT(11) NOT NULL AUTO_INCREMENT,
+  `time` INT(11) NOT NULL DEFAULT '0' COMMENT '时间戳',
+  `amount` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '开单金额',
+  `sjId` INT(11) NOT NULL DEFAULT '0' COMMENT '商家id',
+  `shopId` INT(11) NOT NULL DEFAULT '0' COMMENT '门店id',
+  `shopAdminId` INT NOT NULL DEFAULT 0 COMMENT '员工id',
+  `addTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `yj` (`sjId`,`time`)
+) COMMENT='员工每天开单业绩';
+CREATE TABLE `xhGhsStatYjMonth` (
+  `id` INT(11) NOT NULL AUTO_INCREMENT,
+  `time` INT(11) NOT NULL DEFAULT '0' COMMENT '月份',
+  `year` SMALLINT(6) NOT NULL DEFAULT '0' COMMENT '年',
+  `month` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '月份',
+  `amount` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '开单金额',
+  `sjId` INT(11) NOT NULL DEFAULT '0' COMMENT '商家id',
+  `shopId` INT(11) NOT NULL DEFAULT '0' COMMENT '门店id',
+  `shopAdminId` INT NOT NULL DEFAULT 0 COMMENT '员工id',
+  `addTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `yj` (`sjId`,`year`,`month`)
+) COMMENT='员工每月开单业绩';
+ALTER TABLE `xhGhsStatYj` ADD totalAmount DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '总金额' AFTER `amount`;
+ALTER TABLE `xhGhsStatYj` ADD `num` INT NOT NULL DEFAULT 0 COMMENT '开单数量' AFTER `totalAmount`;
+ALTER TABLE `xhGhsStatYj` ADD `totalNum` INT NOT NULL DEFAULT 0 COMMENT '总数量' AFTER `num`;
+ALTER TABLE `xhGhsStatYjMonth` ADD totalAmount DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '总金额' AFTER `amount`;
+ALTER TABLE `xhGhsStatYjMonth` ADD `num` INT NOT NULL DEFAULT 0 COMMENT '开单数量' AFTER `totalAmount`;
+ALTER TABLE `xhGhsStatYjMonth` ADD `totalNum` INT NOT NULL DEFAULT 0 COMMENT '总数量' AFTER `num`;
+CREATE TABLE `xhStatYj` (
+  `id` INT(11) NOT NULL AUTO_INCREMENT,
+  `time` INT(11) NOT NULL DEFAULT '0' COMMENT '时间戳',
+  `amount` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '开单金额',
+  `totalAmount` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '总金额',
+  `num` INT(11) NOT NULL DEFAULT '0' COMMENT '开单数量',
+  `totalNum` INT(11) NOT NULL DEFAULT '0' COMMENT '总数量',
+  `sjId` INT(11) NOT NULL DEFAULT '0' COMMENT '商家id',
+  `shopId` INT(11) NOT NULL DEFAULT '0' COMMENT '门店id',
+  `shopAdminId` INT(11) NOT NULL DEFAULT '0' COMMENT '员工id',
+  `addTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `yj` (`sjId`,`time`)
+) COMMENT='员工每天开单业绩';
+CREATE TABLE `xhStatYjMonth` (
+  `id` INT(11) NOT NULL AUTO_INCREMENT,
+  `time` INT(11) NOT NULL DEFAULT '0' COMMENT '月份',
+  `year` SMALLINT(6) NOT NULL DEFAULT '0' COMMENT '年',
+  `month` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '月份',
+  `amount` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '开单金额',
+  `totalAmount` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '总金额',
+  `num` INT(11) NOT NULL DEFAULT '0' COMMENT '开单数量',
+  `totalNum` INT(11) NOT NULL DEFAULT '0' COMMENT '总数量',
+  `sjId` INT(11) NOT NULL DEFAULT '0' COMMENT '商家id',
+  `shopId` INT(11) NOT NULL DEFAULT '0' COMMENT '门店id',
+  `shopAdminId` INT(11) NOT NULL DEFAULT '0' COMMENT '员工id',
+  `addTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `yj` (`sjId`,`year`,`month`)
+) COMMENT='员工每月开单业绩';
+ALTER TABLE xhShopAdmin ADD adminName VARCHAR(80) NOT NULL DEFAULT '' COMMENT '员工名称' AFTER `adminId`;