Comment.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace app\api\validate;
  3. use think\Validate;
  4. use app\common\Enum\CommentEnum;
  5. class Comment extends Validate
  6. {
  7. protected $rule = [
  8. 'goods_id' => 'integer|>:0',
  9. 'pid' => 'integer|>=:0',
  10. 'page' => 'integer|>:0',
  11. 'page_size' => 'integer|between:1,50',
  12. 'order_by' => 'in:pid,id,createtime,updatetime,rand',
  13. 'order_way' => 'in:asc,desc',
  14. 'has_picture' => 'integer|checkHasPicture',
  15. 'rating_type' => 'integer|checkRatingType',
  16. 'order_id' => 'require|integer|>:0',
  17. 'remark' => 'require|array',
  18. 'remark.*.goods_id' => 'require|integer|>:0',
  19. 'remark.*.star' => 'require|integer|between:1,5',
  20. 'remark.*.content' => 'require|max:500',
  21. 'remark.*.images' => 'array',
  22. 'evaluate_status' => 'integer|in:1,2,3',
  23. 'comment_id' => 'require|integer|>:0',
  24. ];
  25. protected $message = [
  26. 'goods_id.integer' => '商品ID必须为整数',
  27. 'pid.integer' => '父评论ID必须为整数',
  28. 'page.integer' => '页码必须为正整数',
  29. 'page_size.between' => '每页显示条数必须在1-50之间',
  30. 'order_by.in' => '排序字段不正确',
  31. 'order_way.in' => '排序方式不正确',
  32. 'has_picture.in' => '是否有图片参数错误',
  33. 'rating_type.in' => '评价类型参数错误',
  34. 'order_id.require' => '订单ID不能为空',
  35. 'order_id.integer' => '订单ID必须为整数',
  36. 'remark.require' => '评论内容不能为空',
  37. 'remark.array' => '评论内容格式不正确',
  38. 'remark.*.goods_id.require' => '商品ID不能为空',
  39. 'remark.*.goods_id.integer' => '商品ID必须为整数',
  40. 'remark.*.star.require' => '评分不能为空',
  41. 'remark.*.star.between' => '评分必须在1-5之间',
  42. 'remark.*.content.require' => '评论内容不能为空',
  43. 'remark.*.content.max' => '评论内容不能超过500字',
  44. 'remark.*.images.array' => '图片格式不正确',
  45. 'evaluate_status.in' => '评价状态参数错误',
  46. 'comment_id.require' => '评论ID不能为空',
  47. 'comment_id.integer' => '评论ID必须为整数',
  48. ];
  49. protected $scene = [
  50. 'index' => ['goods_id', 'pid', 'page', 'page_size', 'order_by', 'order_way','has_picture', 'rating_type'],
  51. 'add' => ['order_id', 'remark', 'pid'],
  52. 'myList' => ['page', 'page_size'],
  53. 'stats' => ['goods_id' => 'require|integer|>:0'],
  54. 'audit' => ['comment_id', 'evaluate_status'],
  55. ];
  56. /**
  57. * 验证评价状态
  58. * @param $value
  59. * @param $rule
  60. * @param $data
  61. * @return bool|string
  62. */
  63. public function checkEvaluateStatus($value, $rule, $data)
  64. {
  65. if (!CommentEnum::isValidEvaluateStatus($value)) {
  66. return '评价状态参数错误';
  67. }
  68. return true;
  69. }
  70. /**
  71. * 验证有图片状态
  72. * @param $value
  73. * @param $rule
  74. * @param $data
  75. * @return bool|string
  76. */
  77. public function checkHasPicture($value, $rule, $data)
  78. {
  79. if (!CommentEnum::isValidHasPicture($value)) {
  80. return '有图片状态参数错误';
  81. }
  82. return true;
  83. }
  84. /**
  85. * 验证评价类型
  86. * @param $value
  87. * @param $rule
  88. * @param $data
  89. * @return bool|string
  90. */
  91. public function checkRatingType($value, $rule, $data)
  92. {
  93. if (!CommentEnum::isValidRatingType($value)) {
  94. return '评价类型参数错误';
  95. }
  96. return true;
  97. }
  98. }