$params['name'], 'type' => $params['type'], 'rating_start' => $params['rating_start'], 'rating_end' => $params['rating_end'], 'rate' => $params['rate'] ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑 * @param array $params * @return bool * @author likeadmin * @date 2025/03/04 17:21 */ public static function edit(array $params): bool { Db::startTrans(); try { SaleRules::where('id', $params['id'])->update([ 'name' => $params['name'], 'type' => $params['type'], 'rating_start' => $params['rating_start'], 'rating_end' => $params['rating_end'], 'rate' => $params['rate'] ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除 * @param array $params * @return bool * @author likeadmin * @date 2025/03/04 17:21 */ public static function delete(array $params): bool { return SaleRules::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2025/03/04 17:21 */ public static function detail($params): array { return SaleRules::findOrEmpty($params['id'])->toArray(); } /** * 根据档位获取销售绩效金额 * * @param float $rating 档位 * @return float|null 对应的金额,若未找到匹配的档位则返回0 */ public static function getSaleAmountByRating(float $rating,int $type): ?float { $rule = SaleRules::where('type', $type) ->where('rating_start', '<=',$rating) ->where('rating_end', '>',$rating) ->findOrEmpty(); if (!$rule->isEmpty()){ return $rule['rate']??0; } return 0; } }