GoodsReviewsLogic.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace app\api\logic;
  3. use app\common\logic\BaseLogic;
  4. use app\common\model\goods\Goods;
  5. use app\common\model\orders\RechargeOrder;
  6. use app\common\model\recharge\OrderGoods;
  7. use app\common\model\reviews\GoodsReviews;
  8. use app\common\model\works\ServiceWork;
  9. use think\Exception;
  10. use think\facade\Db;
  11. /**
  12. * 服务商品评论逻辑处理
  13. * Class GoodsReviewsLogic
  14. * @package app\api\logic
  15. */
  16. class GoodsReviewsLogic extends BaseLogic
  17. {
  18. /**
  19. * @param $params
  20. * @return bool
  21. */
  22. public static function add($params)
  23. {
  24. Db::startTrans();
  25. try {
  26. $order = RechargeOrder::findOrEmpty($params['order_id'])->toArray();
  27. $goods_id = OrderGoods::whereIn('sn', RechargeOrder::where('work_id',$order['work_id'])->column('sn'))->value('goods_id');
  28. $work = ServiceWork::findOrEmpty($order['work_id'])->toArray();
  29. if($work['work_status']==8){
  30. throw new Exception('订单已评价');
  31. }
  32. if($work['work_status']!=7){
  33. throw new Exception('订单无法评价');
  34. }
  35. GoodsReviews::create([
  36. 'goods_id'=>$goods_id,
  37. 'goods_category_id'=>$work['goods_category_id'],
  38. 'user_id'=>$params['user_id'],
  39. 'nickname'=>$params['user_info']['nickname'],
  40. 'avatar'=>$params['user_info']['avatar'],
  41. 'rating'=>$params['rating'],
  42. 'comment'=>$params['comment'],
  43. 'review_image'=>$params['review_image'],
  44. ]);
  45. Db::commit();
  46. return true;
  47. } catch (\Exception $e) {
  48. Db::rollback();
  49. self::setError($e->getMessage());
  50. return false;
  51. }
  52. }
  53. }