EvaluateStatService.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace addons\TinyShop\services\product;
  3. use common\components\Service;
  4. use addons\TinyShop\common\forms\EvaluateStatForm;
  5. use addons\TinyShop\common\models\product\EvaluateStat;
  6. /**
  7. * Class EvaluateStatService
  8. * @package addons\TinyShop\services\product
  9. * @author jianyan74 <751393839@qq.com>
  10. */
  11. class EvaluateStatService extends Service
  12. {
  13. /**
  14. * 更新评价数量
  15. *
  16. * @param EvaluateStatForm $evaluateStatForm
  17. * @param $product_id
  18. */
  19. public function updateNum(EvaluateStatForm $evaluateStatForm, $product_id)
  20. {
  21. $updateData = [];
  22. if ($evaluateStatForm->has_cover == true) {
  23. $updateData['cover_num'] = 1;
  24. }
  25. if ($evaluateStatForm->has_video == true) {
  26. $updateData['video_num'] = 1;
  27. }
  28. if ($evaluateStatForm->has_again == true) {
  29. $updateData['again_num'] = 1;
  30. }
  31. if ($evaluateStatForm->has_good == true) {
  32. $updateData['good_num'] = 1;
  33. }
  34. if ($evaluateStatForm->has_ordinary == true) {
  35. $updateData['ordinary_num'] = 1;
  36. }
  37. if ($evaluateStatForm->has_negative == true) {
  38. $updateData['negative_num'] = 1;
  39. }
  40. // 总数
  41. $updateData['total_num'] = 1;
  42. !empty($updateData) && EvaluateStat::updateAllCounters($updateData, ['product_id' => $product_id]);
  43. }
  44. /**
  45. * @param $product_id
  46. * @return array|\yii\db\ActiveRecord|null
  47. */
  48. public function findByProductId($product_id)
  49. {
  50. return EvaluateStat::find()
  51. ->where(['product_id' => $product_id])
  52. ->asArray()
  53. ->one();
  54. }
  55. }
粤ICP备19079148号