StoreCartPriceDao.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\common\dao\store\order;
  12. use app\common\dao\BaseDao;
  13. use app\common\model\store\order\StoreCartPrice;
  14. use think\model\Relation;
  15. class StoreCartPriceDao extends BaseDao
  16. {
  17. protected function getModel(): string
  18. {
  19. return StoreCartPrice::class;
  20. }
  21. public function getCartPriceInfo(int $cartId)
  22. {
  23. return $this->getWhere(['cart_id' => $cartId]);
  24. }
  25. public function add(int $cartId, array $data, $isBatch = false)
  26. {
  27. $cartPriceData = $isBatch ? $data : $this->getCartPriceData($cartId, $data);
  28. return $this->create($cartPriceData);
  29. }
  30. public function edit(int $id, int $cartId, array $data, $isBatch = false)
  31. {
  32. $cartPriceData = $isBatch ? $data : $this->getCartPriceData($cartId, $data);
  33. return $this->update($id, $cartPriceData);
  34. }
  35. private function getCartPriceData(int $cartId, array $data) : array
  36. {
  37. $newPrice = $data['new_price'] ?? 0;
  38. if($data['type'] == 1){ // 立减
  39. $newPrice = bcsub($data['old_price'], $data['reduce_price'], 2);
  40. }
  41. if($data['type'] == 2){ // 折扣
  42. $newPrice = bcmul($data['old_price'], $data['discount_rate']/100, 2);
  43. }
  44. $storeCartPriceData['cart_id'] = $cartId;
  45. $storeCartPriceData['old_price'] = $data['old_price'];
  46. $storeCartPriceData['type'] = $data['type'];
  47. $storeCartPriceData['reduce_price'] = $data['reduce_price'] ?? 0;
  48. $storeCartPriceData['discount_rate'] = $data['discount_rate'] ?? 0;
  49. $storeCartPriceData['new_price'] = $newPrice;
  50. $storeCartPriceData['is_batch'] = 0;
  51. $storeCartPriceData['update_time'] = date('Y-m-d H:i:s', time());
  52. return $storeCartPriceData;
  53. }
  54. }