'散客', self::LEVEL_PT => '花店', self::LEVEL_HJ => '同行', self::LEVEL_ZS => '金店', ]; public static $nickNameMap = [ self::LEVEL_SK => '散客', self::LEVEL_PT => '花店', self::LEVEL_HJ => '同行', self::LEVEL_ZS => '金店', ]; public static $levelPriceKeyMap = [ self::LEVEL_SK => 'skPrice', self::LEVEL_PT => 'price', self::LEVEL_HJ => 'hjPrice', self::LEVEL_ZS => 'zsPrice', ]; public static $levelAddPriceKeyMap = [ self::LEVEL_SK => 'skAddPrice', self::LEVEL_PT => 'addPrice', self::LEVEL_HJ => 'hjAddPrice', self::LEVEL_ZS => 'zsAddPrice', ]; //建立客户和供应商关系 public static function build($ghsShopId, $hdShopId) { return GhsClass::build($ghsShopId, $hdShopId, 2); } //添加客户 ssh 2021.2.24 public static function addCustom($data) { return self::add($data); } //获取客户信息 ssh 2021.2.4 public static function getCustom($id) { $info = self::getById($id); if (empty($info)) { return $info; } $respond = self::groupBaseInfo([$info]); return current($respond); } public static function getCustomByIds($ids) { $list = self::getByIds($ids, null, 'id'); return self::groupBaseInfo($list); } //整合头像等信息 ssh 2021.1.8 public static function groupBaseInfo($list) { if (empty($list)) { return $list; } //获取客户信息 $customSjIdList = array_unique(array_filter(array_column($list, 'sjId'))); $sjInfo = MerchantClass::getByIds($customSjIdList, null, 'id'); $levelMap = self::$levelMap; foreach ($list as $key => $val) { $customSjId = $val['sjId']; $currentInfo = isset($sjInfo[$customSjId]) ? $sjInfo[$customSjId] : []; $currentInfo = business::formatMerchantLogo($currentInfo); $smallAvatar = !empty($currentInfo['smallLogoUrl']) ? $currentInfo['smallLogoUrl'] : imgUtil::getPrefix() . '/hhb_small.png'; $avatar = !empty($currentInfo['logoUrl']) ? $currentInfo['logoUrl'] : imgUtil::getPrefix() . '/hhb_small.png'; $list[$key]['smallAvatar'] = $smallAvatar; $list[$key]['shortSmallAvatar'] = $currentInfo['shortSmallLogoUrl']; $list[$key]['avatar'] = $avatar; $list[$key]['shortAvatar'] = $currentInfo['shortLogoUrl']; $list[$key]['sn'] = $val['id']; $level = $val['level'] ?? 1; $levelName = $levelMap[$level] ?? ''; $list[$key]['levelName'] = $levelName; } return $list; } //欠款权限开关 ssh 2021.1.8 public static function debt($custom, $debt) { $id = isset($custom['id']) ? $custom['id'] : 0; self::updateById($id, ['debt' => $debt]); return true; } //采购查看权限的黑白名单设置 shizhongqi 2021.08.08 public static function black($custom, $black) { $id = isset($custom['id']) ? $custom['id'] : 0; self::updateById($id, ['black' => $black]); return true; } //权限判断 ssh 2021.1.8 public static function valid($custom, $shopId) { if (empty($custom)) { util::fail('没有找到客户'); } if ($custom['ownShopId'] != $shopId) { util::fail('您没有权限操作此客户'); } } //客户采购欠款金额增加 ssh 20220306 public static function cgDebtAmountAdd($custom, $order, $bookOrder = false) { $amount = $order->remainDebtPrice ?? 0; $custom->isDebt = CustomClass::IS_DEBT_YES; $debtLimit = $custom->debtLimit ?? 0; if ($bookOrder == false) { if ($custom->debtAmount > $debtLimit) { util::fail("您已欠款{$custom->debtAmount},请先结账哦"); } } $balance = bcadd($custom->debtAmount, $amount, 2); $custom->debtAmount = $balance; $custom->save(); $relateId = $order->id ?? 0; $customId = $custom->id ?? 0; $orderSn = $order->orderSn ?? ''; $capitalType = dict::getDict('capitalType', 'xhGhsOrder', 'id'); $event = '购买花材,单号:' . $orderSn; if ($bookOrder) { $event = '预订单多退少补,单号:' . $orderSn; } $change = [ 'relateId' => $relateId, 'customId' => $customId, 'ptStyle' => dict::getDict('ptStyle', 'ghs'), 'capitalType' => $capitalType, 'amount' => $amount, 'balance' => $balance, 'io' => 1, 'payWay' => $order->payWay, 'event' => $event, 'sjId' => $order->sjId, 'shopId' => $order->id, ]; CustomDebtChangeClass::addChange($change); } //客户结账欠款金额减少 ssh 20220306 public static function clearDebtAmountReduce($custom, $ghs, $amount, $clear) { $debtAmount = $custom->debtAmount ?? 0.00; $remain = bcsub($debtAmount, $amount, 2); if ($remain < 0) { noticeUtil::push("客户欠款总金额:{$custom->debtAmount} 本次结账金额:{$amount} 客户ID:{$custom->id} 【里外金额有问题】", '15280215347'); util::fail('收款失败,结账后欠款金额会出现负数'); } $custom->isDebt = $remain <= 0 ? 0 : 1; $custom->debtAmount = $remain; $custom->save(); $relateId = $clear->id ?? 0; $customId = $custom->id ?? 0; $capitalType = dict::getDict('capitalType', 'ghsXsClear', 'id'); $orderSn = $clear->orderSn ?? ''; $change = [ 'relateId' => $relateId, 'customId' => $customId, 'ptStyle' => dict::getDict('ptStyle', 'ghs'), 'capitalType' => $capitalType, 'amount' => $amount, 'balance' => $remain, 'io' => 0, 'payWay' => 0, 'event' => "结账,单号:{$orderSn}", 'sjId' => $ghs->sjId, 'shopId' => $ghs->id, ]; CustomDebtChangeClass::addChange($change); } //客户退款欠款金额减少 ssh 20220306 public static function refundDebtAmountReduce($custom, $refund, $order) { $refundPrice = $refund->refundPrice ?? 0; $balance = bcsub($custom->debtAmount, $refundPrice, 2); $custom->debtAmount = $balance; $custom->save(); $relateId = $refund->id ?? 0; $customId = $custom->id ?? 0; $saleOrderSn = $order->orderSn ?? ''; $capitalType = dict::getDict('capitalType', 'saleRefund', 'id'); $change = [ 'relateId' => $relateId, 'customId' => $customId, 'ptStyle' => dict::getDict('ptStyle', 'ghs'), 'capitalType' => $capitalType, 'amount' => $refundPrice, 'balance' => $balance, 'io' => 0, 'payWay' => 0, 'event' => "订单号:{$saleOrderSn} 退款", 'sjId' => $refund->sjId, 'shopId' => $refund->id, ]; CustomDebtChangeClass::addChange($change); } }