|
|
@@ -7,6 +7,8 @@ use biz\hb\classes\HbClass;
|
|
|
use biz\shop\classes\ShopCapitalClass;
|
|
|
use biz\shop\classes\ShopClass;
|
|
|
use biz\wx\classes\WxMessageClass;
|
|
|
+use bizGhs\order\classes\OrderClass;
|
|
|
+use bizGhs\order\services\RefundOrderService;
|
|
|
use bizGhs\product\classes\ProductClass;
|
|
|
use bizGhs\stock\classes\StockRecordClass;
|
|
|
use bizHd\base\services\BaseService;
|
|
|
@@ -28,24 +30,94 @@ class CgRefundService extends BaseService
|
|
|
|
|
|
public static $baseFile = '\bizHd\cg\classes\CgRefundClass';
|
|
|
|
|
|
+ public static function createOrder($cgData, $cg)
|
|
|
+ {
|
|
|
+ $respond = self::addRefund($cgData, $cg);
|
|
|
+ $saleId = $cg->saleId ?? 0;
|
|
|
+ $cgProductList = $cgData['product'] ?? [];
|
|
|
+ if (empty($cgProductList)) {
|
|
|
+ util::fail('没有花材');
|
|
|
+ }
|
|
|
+ $cgIds = array_column($cgProductList, 'productId');
|
|
|
+ $cgProductInfo = ProductClass::getAllByCondition(['id' => ['in', $cgIds]], null, 'id,itemId');
|
|
|
+ if (empty($cgProductInfo)) {
|
|
|
+ util::fail('花材数据有问题');
|
|
|
+ }
|
|
|
+ $cgMap = [];
|
|
|
+ foreach ($cgProductInfo as $cc) {
|
|
|
+ $ccId = $cc['id'] ?? 0;
|
|
|
+ $ccPtItemId = $cc['itemId'] ?? 0;
|
|
|
+ $cgMap[$ccId] = $ccPtItemId;
|
|
|
+ }
|
|
|
+ $ptItemList = array_column($cgProductInfo, 'itemId');
|
|
|
+
|
|
|
+ $order = OrderClass::getById($saleId, true);
|
|
|
+ if (empty($order)) {
|
|
|
+ util::fail('没有订单信息');
|
|
|
+ }
|
|
|
+ $hdRemark = $cgData['hdRemark'] ?? '';
|
|
|
+ $price = $cgData['price'] ?? 0;
|
|
|
+ $refundType = $cgData['refundType'] ?? 1;
|
|
|
+ $imgList = $cgData['imgList'] ?? '';
|
|
|
+ $sjId = $order->sjId ?? 0;
|
|
|
+ $shopId = $order->shopId ?? 0;
|
|
|
+ $mainId = $order->mainId ?? 0;
|
|
|
+
|
|
|
+ $saleProductInfo = ProductClass::getAllByCondition(['mainId' => $mainId, 'itemId' => ['in', $ptItemList]], null, 'id,itemId');
|
|
|
+ if (empty($saleProductInfo)) {
|
|
|
+ util::fail('花材信息有问题');
|
|
|
+ }
|
|
|
+ $saleMap = [];
|
|
|
+ foreach ($saleProductInfo as $ss) {
|
|
|
+ $ssId = $ss['id'] ?? 0;
|
|
|
+ $ssPtItemId = $ss['itemId'] ?? 0;
|
|
|
+ $saleMap[$ssPtItemId] = $ssId;
|
|
|
+ }
|
|
|
+
|
|
|
+ $newProductList = [];
|
|
|
+ foreach ($cgProductList as $cg) {
|
|
|
+ if (isset($cg['productId']) == false) {
|
|
|
+ util::fail('花材有问题呢');
|
|
|
+ }
|
|
|
+ $productId = $cg['productId'];
|
|
|
+ if (isset($cgMap[$productId]) == false) {
|
|
|
+ util::fail('花材有问题哈');
|
|
|
+ }
|
|
|
+ $ptItemId = $cgMap[$productId];
|
|
|
+ if (isset($saleMap[$ptItemId]) == false) {
|
|
|
+ util::fail('花材有问题哦');
|
|
|
+ }
|
|
|
+ $newProductId = $saleMap[$ptItemId];
|
|
|
+ $cg['productId'] = $newProductId;
|
|
|
+ $newProductList[] = $cg;
|
|
|
+ }
|
|
|
+
|
|
|
+ $orderData = [
|
|
|
+ 'hdRemark' => $hdRemark,
|
|
|
+ 'price' => $price,
|
|
|
+ 'refundType' => $refundType,
|
|
|
+ 'imgList' => $imgList,
|
|
|
+ 'sjId' => $sjId,
|
|
|
+ 'shopId' => $shopId,
|
|
|
+ 'mainId' => $mainId,
|
|
|
+ 'product' => $newProductList,
|
|
|
+ ];
|
|
|
+ RefundOrderService::addRefund($orderData, $order);
|
|
|
+ return $respond;
|
|
|
+ }
|
|
|
+
|
|
|
//新增退款
|
|
|
public static function addRefund($post, $cg)
|
|
|
{
|
|
|
- $cgId = $cg->id ?? 0;
|
|
|
$mainId = $cg->mainId ?? 0;
|
|
|
$shopId = $cg->shopId ?? 0;
|
|
|
$sjId = $cg->sjId ?? 0;
|
|
|
- $payWay = $cg->payWay;
|
|
|
- $onlinePay = $cg->onlinePay ?? 1;
|
|
|
$cgOrderSn = $cg->orderSn ?? '';
|
|
|
- $cg->refund = PurchaseClass::REFUND_YES;
|
|
|
- $cg->save();
|
|
|
|
|
|
- $transaction_id = $cg->thirdNo ?? '';
|
|
|
$refundOrderSn = orderSn::getCgRefundSn();
|
|
|
$refundPrice = $post['price'] ?? 0;
|
|
|
if (is_numeric($refundPrice) == false || $refundPrice < 0) {
|
|
|
- util::fail('退款金额有问题');
|
|
|
+ util::fail('请填写退款金额');
|
|
|
}
|
|
|
$shop = ShopClass::getLockById($shopId);
|
|
|
if (empty($shop)) {
|
|
|
@@ -100,12 +172,9 @@ class CgRefundService extends BaseService
|
|
|
$productId = $info['productId'] ?? 0;
|
|
|
$ptItemId = $info['ptItemId'] ?? 0;
|
|
|
|
|
|
- $currentCgItem = $cgItemInfo[$productId] ?? null;
|
|
|
- if (empty($currentCgItem)) {
|
|
|
+ if (isset($cgItemInfo[$productId]) == false) {
|
|
|
util::fail('没有找到花材哦!');
|
|
|
}
|
|
|
- $currentCgItem->refundNum = bcadd($currentCgItem->refundNum, $num);
|
|
|
- $currentCgItem->save();
|
|
|
|
|
|
$refundData = [];
|
|
|
$refundData['orderSn'] = $refundOrderSn;
|