Goodsevaluate.php 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <?php
  2. /**
  3. * Goodsevaluate.php
  4. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  5. * =========================================================
  6. * Copy right 2015-2025 杭州牛之云科技有限公司, 保留所有权利。
  7. * ----------------------------------------------
  8. * 官方网址: https://www.niushop.com
  9. * =========================================================
  10. * @author : niuteam
  11. * @date : 2022.8.8
  12. * @version : v5.0.0.1
  13. */
  14. namespace app\api\controller;
  15. use app\model\goods\GoodsEvaluate as GoodsEvaluateModel;
  16. use app\model\order\Config as ConfigModel;
  17. /**
  18. * 商品评价
  19. * Class Goodsevaluate
  20. * @package app\api\controller
  21. */
  22. class Goodsevaluate extends BaseApi
  23. {
  24. /**
  25. * 添加信息·第一次评价
  26. */
  27. public function add()
  28. {
  29. $token = $this->checkToken();
  30. if ($token[ 'code' ] < 0) return $this->response($token);
  31. $order_id = isset($this->params[ 'order_id' ]) ? $this->params[ 'order_id' ] : 0;
  32. $order_no = isset($this->params[ 'order_no' ]) ? $this->params[ 'order_no' ] : 0;
  33. $member_name = isset($this->params[ 'member_name' ]) ? $this->params[ 'member_name' ] : '';
  34. $member_headimg = isset($this->params[ 'member_headimg' ]) ? $this->params[ 'member_headimg' ] : '';
  35. $is_anonymous = isset($this->params[ 'is_anonymous' ]) ? $this->params[ 'is_anonymous' ] : 0;
  36. $goods_evaluate = isset($this->params[ 'goods_evaluate' ]) ? $this->params[ 'goods_evaluate' ] : "";
  37. if (empty($order_id)) {
  38. return $this->response($this->error('', 'REQUEST_ORDER_ID'));
  39. }
  40. if (empty($goods_evaluate)) {
  41. return $this->response($this->error('', 'REQUEST_GOODS_EVALUATE'));
  42. }
  43. $goods_evaluate = json_decode($goods_evaluate, true);
  44. $data = [
  45. 'order_id' => $order_id,
  46. 'order_no' => $order_no,
  47. 'member_name' => $member_name,
  48. 'member_id' => $token[ 'data' ][ 'member_id' ],
  49. 'is_anonymous' => $is_anonymous,
  50. 'member_headimg' => $member_headimg,
  51. 'goods_evaluate' => $goods_evaluate,
  52. ];
  53. $goods_evaluate_model = new GoodsEvaluateModel();
  54. $res = $goods_evaluate_model->addEvaluate($data, $this->site_id);
  55. return $this->response($res);
  56. }
  57. /**
  58. * 追评
  59. * @return string
  60. */
  61. public function again()
  62. {
  63. $token = $this->checkToken();
  64. if ($token[ 'code' ] < 0) return $this->response($token);
  65. $order_id = isset($this->params[ 'order_id' ]) ? $this->params[ 'order_id' ] : 0;
  66. $goods_evaluate = isset($this->params[ 'goods_evaluate' ]) ? $this->params[ 'goods_evaluate' ] : "";
  67. if (empty($order_id)) {
  68. return $this->response($this->error('', 'REQUEST_ORDER_ID'));
  69. }
  70. if (empty($goods_evaluate)) {
  71. return $this->response($this->error('', 'REQUEST_GOODS_EVALUATE'));
  72. }
  73. $goods_evaluate = json_decode($goods_evaluate, true);
  74. $data = [
  75. 'order_id' => $order_id,
  76. 'goods_evaluate' => $goods_evaluate
  77. ];
  78. $goods_evaluate_model = new GoodsEvaluateModel();
  79. $res = $goods_evaluate_model->evaluateAgain($data, $this->site_id);
  80. return $this->response($res);
  81. }
  82. /**
  83. * 基础信息
  84. * @param int $id
  85. * @return false|string
  86. */
  87. public function firstinfo($id = 0)
  88. {
  89. $goods_id = isset($this->params[ 'goods_id' ]) ? $this->params[ 'goods_id' ] : 0;
  90. if (!empty($id)) {
  91. $goods_id = $id;
  92. }
  93. if (empty($goods_id)) {
  94. return $this->response($this->error('', 'REQUEST_GOODS_ID'));
  95. }
  96. $goods_evaluate_model = new GoodsEvaluateModel();
  97. $condition = [
  98. [ 'is_show', '=', 1 ],
  99. [ 'is_audit', '=', 1 ],
  100. [ 'goods_id', '=', $goods_id ]
  101. ];
  102. $field = 'evaluate_id,content,images,explain_first,member_name,member_headimg,is_anonymous,again_content,again_images,again_explain,create_time,again_time,scores';
  103. $order = "create_time desc";
  104. $info = $goods_evaluate_model->getSecondEvaluateInfo($condition, $field, $order);
  105. return $this->response($info);
  106. }
  107. /**
  108. * 列表信息
  109. */
  110. public function page()
  111. {
  112. $page = isset($this->params[ 'page' ]) ? $this->params[ 'page' ] : 1;
  113. $page_size = isset($this->params[ 'page_size' ]) ? $this->params[ 'page_size' ] : PAGE_LIST_ROWS;
  114. $goods_id = isset($this->params[ 'goods_id' ]) ? $this->params[ 'goods_id' ] : 0;
  115. $explain_type = empty($this->params[ 'explain_type' ]) ? '' : $this->params[ 'explain_type' ];
  116. if (empty($goods_id)) {
  117. return $this->response($this->error('', 'REQUEST_GOODS_ID'));
  118. }
  119. $goods_evaluate_model = new GoodsEvaluateModel();
  120. if (!empty($explain_type)) {
  121. $condition[] = [ 'explain_type', '=', $explain_type ];
  122. }
  123. $condition[] = [ 'is_show', '=', 1 ];
  124. $condition[] = [ 'is_audit', '=', 1 ];
  125. $condition[] = [ 'goods_id', '=', $goods_id ];
  126. // $condition = [
  127. // [ 'is_show', '=', 1 ],
  128. // [ 'is_audit', '=', 1 ],
  129. // [ 'goods_id', '=', $goods_id ]
  130. // ];
  131. $list = $goods_evaluate_model->getEvaluatePageList($condition, $page, $page_size);
  132. return $this->response($list);
  133. }
  134. /**
  135. * 获取评价 1好 2中 3差
  136. */
  137. public function getGoodsEvaluate()
  138. {
  139. $goods_id = isset($this->params[ 'goods_id' ]) ? $this->params[ 'goods_id' ] : 0;
  140. if (empty($goods_id)) {
  141. return $this->response($this->error('', 'REQUEST_GOODS_ID'));
  142. }
  143. $goods_evaluate_model = new GoodsEvaluateModel();
  144. $condition[] = [ 'is_show', '=', 1 ];
  145. $condition[] = [ 'is_audit', '=', 1 ];
  146. $condition[] = [ 'goods_id', '=', $goods_id ];
  147. $list = $goods_evaluate_model->getEvaluateList($condition);
  148. $haoping = 0;
  149. $zhongping = 0;
  150. $chaping = 0;
  151. if (!empty($list[ 'data' ])) {
  152. foreach ($list[ 'data' ] as $k => $v) {
  153. if ($v[ 'explain_type' ] == 1) {
  154. $haoping += 1;
  155. } else if ($v[ 'explain_type' ] == 2) {
  156. $zhongping += 1;
  157. } else {
  158. $chaping += 1;
  159. }
  160. }
  161. }
  162. $data = [
  163. 'total' => count($list[ 'data' ]),
  164. 'haoping' => $haoping,
  165. 'zhongping' => $zhongping,
  166. 'chaping' => $chaping
  167. ];
  168. return $this->response($this->success($data));
  169. }
  170. /**
  171. * 评价设置
  172. * @return false|string
  173. */
  174. public function config()
  175. {
  176. $config_model = new ConfigModel();
  177. //订单评价设置
  178. $res = $order_evaluate_config = $config_model->getOrderEvaluateConfig($this->site_id, $this->app_module);
  179. return $this->response($this->success($res[ 'data' ][ 'value' ]));
  180. }
  181. /**
  182. * 评论数量
  183. * @param int $id
  184. * @return false|string
  185. */
  186. public function count($id = 0)
  187. {
  188. $goods_id = $this->params[ 'goods_id' ] ?? 0;
  189. if (!empty($id)) {
  190. $goods_id = $id;
  191. }
  192. if (empty($goods_id)) {
  193. return $this->response($this->error('', 'REQUEST_GOODS_ID'));
  194. }
  195. $goods_evaluate_model = new GoodsEvaluateModel();
  196. $condition[] = [ 'is_show', '=', 1 ];
  197. $condition[] = [ 'is_audit', '=', 1 ];
  198. $condition[] = [ 'goods_id', '=', $goods_id ];
  199. $count = $goods_evaluate_model->getEvaluateCount($condition);
  200. return $this->response($count);
  201. }
  202. }