GoodsReviewsLogic.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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::where('sn',$params['sn'])->findOrEmpty()->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']);
  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. 'sn'=>$params['sn'],
  39. 'work_id'=>$order['work_id'],
  40. 'user_id'=>$params['user_id'],
  41. 'nickname'=>$params['user_info']['nickname'],
  42. 'avatar'=>$params['user_info']['avatar'],
  43. 'rating'=>$params['rating'],
  44. 'comment'=>!empty($params['comment'])?$params['comment']:'用户暂无评论',
  45. 'review_image'=>!empty($params['review_image'])?$params['review_image']:[],
  46. ]);
  47. $work->work_status = 8;
  48. $work->save();
  49. Db::commit();
  50. return true;
  51. } catch (\Exception $e) {
  52. Db::rollback();
  53. self::setError($e->getMessage());
  54. return false;
  55. }
  56. }
  57. }