GoodsReviewsLogic.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. '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'=>!empty($params['review_image'])?json_encode($params['review_image'],JSON_UNESCAPED_UNICODE):'',
  44. ]);
  45. $work->work_status = 8;
  46. $work->save();
  47. Db::commit();
  48. return true;
  49. } catch (\Exception $e) {
  50. Db::rollback();
  51. self::setError($e->getMessage());
  52. return false;
  53. }
  54. }
  55. }