Explorar o código

订单流水id问题修复

shish %!s(int64=6) %!d(string=hai) anos
pai
achega
0fcc218cb9

+ 7 - 5
app/business/controllers/OrderController.php

@@ -36,7 +36,7 @@ class OrderController extends BaseController
 		$detail = OrderService::getDetail();
 		util::success($detail);
 	}
-	
+
 	//订单归类 shish 2019.12.17
 	public function actionClassify()
 	{
@@ -44,9 +44,11 @@ class OrderController extends BaseController
 		$id = isset($post['id']) ? $post['id'] : 0;
 		$order = OrderService::getById($id);
 		OrderService::valid($order, $this->merchantId);
-		unset($post['id']);
-		OrderService::classify($id, $post);
+		$categoryId = isset($post['categoryId']) ? $post['categoryId'] : $post['categoryId'];
+		$usageId = isset($post['usageId']) ? $post['usageId'] : $post['usageId'];
+
+		OrderService::classify($id, $categoryId, $usageId);
 		util::ok();
 	}
-	
-}
+
+}

+ 9 - 10
biz/merchant/services/MerchantCapitalService.php

@@ -1,7 +1,9 @@
 <?php
 
 namespace biz\merchant\services;
+
 use biz\base\services\BaseService;
+use biz\merchant\classes\MerchantCapitalClass;
 use biz\stat\services\StatIncomeCategoryService;
 use biz\stat\services\StatIncomeUsageService;
 use common\components\validate;
@@ -13,25 +15,22 @@ class MerchantCapitalService extends BaseService
 	
 	public static $baseFile = '\biz\merchant\classes\MerchantCapitalClass';
 	
-	//根据订单设置流水的类型和用途 $data
-	public static function setCategoryUsage($data)
+	//商家订单类的流水归类 shish 2019.12.17
+	public static function orderClassify($data)
 	{
-		$valid = ['capitalId', 'usageId', 'categoryId', 'amount', 'merchantId', 'payWay'];
-		validate::easyCheck($valid, $data);
 		$capitalId = $data['capitalId'];
 		if (empty($capitalId)) {
-			util::fail('流水id无效');
+			util::fail('没有找到商家流水id');
 		}
-		$capital = self::getById($capitalId, true);
+		$capital = MerchantCapitalClass::getById($capitalId, true);
 		$capital->usageId = $data['usageId'];
 		$capital->categoryId = $data['categoryId'];
 		$capital->save();
-
-		/**类型增加资金**/
+		
+		//类型增加资金
 		StatIncomeCategoryService::replaceData($data);
-		/**用途增加资金**/
+		//用途增加资金
 		StatIncomeUsageService::replaceData($data);
-		return true;
 	}
 	
 }

+ 14 - 9
biz/order/services/OrderService.php

@@ -105,29 +105,34 @@ class OrderService extends BaseService
 	}
 	
 	//订单归类
-	public static function classify($id, $data)
+	public static function classify($id, $categoryId, $usageId)
 	{
 		$connection = Yii::$app->db;//事务处理
 		$transaction = $connection->beginTransaction();
 		try {
-			$id = $data['id'];
 			$order = OrderClass::getById($id, true);
 			if ($order->payStatus != 1) {
 				util::fail('订单还未付款');
 			}
-			if (!empty($order->categoryId) && !empty($order->usageId)) {
+			if ($order->classify == 1) {
 				util::fail('已经归类过了');
 			}
-			$categoryId = $data['categoryId'];
-			$usageId = $data['usageId'];
 			$order->categoryId = $categoryId;
 			$order->usageId = $usageId;
+			$order->classify = 1;
 			$order->save();
-			
+
 			//设置流水的分类和用途并分配资金
-			$setData = ['merchantId' => $order->merchantId, 'capitalId' => $order->capitalId, 'time' => $order->payTime,
-				'usageId' => $order->usageId, 'categoryId' => $order->categoryId, 'amount' => $order->actPrice, 'payWay' => $order->payWay];
-			MerchantCapitalService::setCategoryUsage($setData);
+			$setData = [
+				'merchantId' => $order->merchantId,
+				'capitalId' => $order->capitalId,
+				'time' => $order->payTime,
+				'usageId' => $order->usageId,
+				'categoryId' => $order->categoryId,
+				'amount' => $order->actPrice,
+				'payWay' => $order->payWay,
+			];
+			MerchantCapitalService::orderClassify($setData);
 
 			$transaction->commit();
 		} catch (Exception $e) {

+ 10 - 15
common/services/xhPayToolService.php

@@ -182,7 +182,7 @@ class xhPayToolService
 				default:
 			}
 			$capitalData = [
-				'relateId' => (string)$orderSn,
+				'relateId' => $orderId,
 				'balance' => $mBalance,
 				'totalIncome' => $mIncome,
 				'totalExpend' => $mExpend,
@@ -208,16 +208,16 @@ class xhPayToolService
 			$updateData['payTime'] = $now;
 			switch ($capitalType) {
 				case $typeList['xhOrder']['id']://购买商品
-					xhOrderService::updateById($orderSn, $updateData);
+					xhOrderService::updateById($orderId, $updateData);
 					//发货里的下单流程完成
 					OrderSendClass::placeOrder(['orderId' => $orderId, 'payTime' => $now]);
 					break;
 				case $typeList['xhActiveOrder']['id']://活动报名
-					xhActiveOrderService::updateById($orderSn, $updateData);
+					xhActiveOrderService::updateById($orderId, $updateData);
 					break;
 				case $typeList['xhApplyOrder']['id']://申请服务
 					$updateData['inviteCodeStatus'] = 1;
-					xhApplyOrderService::updateById($orderSn, $updateData);
+					xhApplyOrderService::updateById($orderId, $updateData);
 					break;
 				default:
 					Yii::warning('更新订单失败,回调传过来的 capitalType 不符合要求,即订单流水类型不明确,capitalType:' . $capitalType . ' orderSn:' . $orderSn);
@@ -238,11 +238,11 @@ class xhPayToolService
 			$upAssetData['totalBuyNum'] = $userTotalBuyNum;
 			xhUserAssetService::ioChangeAsset($user, $userAsset, $upAssetData, $merchant, $merchantExtend, $order, $capitalType);//用户资产改变
 			
-			$integralData = [
+			$growData = [
 				'userId' => $userId,
 				'userName' => $userName,
 				'merchantId' => $merchantId,
-				'relateId' => (string)$orderSn,
+				'relateId' => $orderId,
 				'growth' => $userGrowth,
 				'num' => floor($totalFee),
 				'io' => 1,
@@ -254,10 +254,10 @@ class xhPayToolService
 				'capitalType' => $capitalType,
 				'addTime' => $now,
 			];
-			xhUserGrowthService::add($integralData);//用户兑换型积分流水增加
+			xhUserGrowthService::add($growData);//用户兑换型积分流水增加
 			
 			$userCapitalData = [
-				'relateId' => (string)$orderSn,
+				'relateId' => $orderId,
 				'balance' => $remainBalance,
 				'totalIncome' => $userAsset['totalIncome'],
 				'totalExpend' => $userTotalExpend,
@@ -275,14 +275,9 @@ class xhPayToolService
 				'capitalType' => $capitalType,
 			];
 			xhUserCapitalService::add($userCapitalData);//用户资金流水增加
-			
+
 			$transaction->commit();
-			
-			//订单有选择分类和用途,则直接进行老带新的发放和资金分类登记 shish 2019.9.3
-			if (isset($order['categoryId']) && !empty($order['categoryId']) && isset($order['usageId']) && !empty($order['usageId'])) {
-				//$setOrderData = ['id' => $orderSn, 'categoryId' => $order['categoryId'], 'usageId' => $order['usageId']];
-				//OrderService::setOrderStyle($setOrderData, true);
-			}
+
 		} catch (Exception $e) {
 			$transaction->rollBack();
 			util::fail('支付没有成功');

+ 11 - 1
sql.txt

@@ -1,4 +1,12 @@
-2019.12.17 shish
+2019.12.17 shish 商家流水相关表修改 !!!
+UPDATE `xhMerchantCapital` SET `relateId`=0;!!!!!!这条要使用php来转换
+ALTER TABLE `xhMerchantCapital` MODIFY `relateId` INT NOT NULL DEFAULT 0 COMMENT '关联id;订单id';
+UPDATE `xhUserGrowth` SET `relateId`=0;!!!!!!这条要使用php来转换
+ALTER TABLE `xhUserGrowth` MODIFY `relateId` int NOT NULL DEFAULT 0 COMMENT '关联id';
+UPDATE `xhUserCapital` SET `relateId`=0;!!!!!!这条要使用php来转换
+ALTER TABLE `xhUserCapital` MODIFY `relateId` int NOT NULL DEFAULT 0 COMMENT '关联id';
+
+2019.12.17 shish 用途相关的统计
 drop table if exists `xhStatIncomeUsage`;
 CREATE TABLE if not exists `xhStatIncomeUsage` (
   `id` int(11) NOT NULL auto_increment primary key,
@@ -29,6 +37,8 @@ CREATE TABLE if not exists `xhStatIncomeUsageMonth` (
 `shopId` int not null default 0 comment '门店id,0表示商家所有门店',
   `addTime` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '添加时间'
 ) COMMENT='按用途统计每月收入';
+ALTER TABLE `xhMerchantCapital` MODIFY shopId INT NOT NULL DEFAULT 0 COMMENT '0表示商家所有门店';
+ALTER TABLE `xhOrder` ADD `classify` TINYINT NOT NULL DEFAULT 0 COMMENT '是否归类 0未归类 1已归类' AFTER `usageId`;
 
 2019.12.15 16:30 shish 数据要重新更新过去!!!!!
 ALTER TABLE xhOrder ADD `reachDate` DATE DEFAULT NULL COMMENT '客户要求送到的日期' AFTER `sendDistance`;