Activity.Class.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. <?php
  2. /**
  3. * 促销活动
  4. * Created by PhpStorm.
  5. * User: XiaoMing
  6. * Date: 2019/12/18
  7. * Time: 12:15
  8. */
  9. namespace JinDouYun\Controller\Market;
  10. use JinDouYun\Model\Price\MPrice;
  11. use Mall\Framework\Core\ErrorCode;
  12. use Mall\Framework\Core\StatusCode;
  13. use JinDouYun\Controller\BaseController;
  14. use JinDouYun\Model\Market\MActivity;
  15. class Activity extends BaseController
  16. {
  17. private $objMActivity;
  18. /**
  19. * Activity constructor.
  20. * @param bool $isCheckAcl
  21. * @param bool $isMustLogin
  22. * @throws \Exception
  23. */
  24. public function __construct($isCheckAcl = true, $isMustLogin = true)
  25. {
  26. parent::__construct($isCheckAcl, $isMustLogin);
  27. $this->objMActivity = new MActivity($this->onlineUserId, $this->onlineEnterpriseId,'',false);
  28. }
  29. /**
  30. * 添加,编辑促销活动公共数据
  31. * @return array
  32. */
  33. public function commonFieldFilter()
  34. {
  35. $params = $this->request->getRawJson();
  36. if (empty($params)) {
  37. $this->sendOutput('参数为空', ErrorCode::$paramError);
  38. }
  39. $data = [
  40. 'activityType' => isset($params['activityType']) ? $params['activityType'] : '',
  41. 'title' => isset($params['title']) ? $params['title'] : '',
  42. 'startTime' => isset($params['startTime']) ? $params['startTime'] : '',
  43. 'endTime' => isset($params['endTime']) ? $params['endTime'] : '',
  44. 'images' => isset($params['images']) ? json_encode($params['images']) : '',
  45. 'enableStatus' => isset($params['enableStatus']) ? $params['enableStatus'] : StatusCode::$standard,
  46. 'useShop' => isset($params['useShop']) ? trim($params['useShop'],',') : '',
  47. 'customerRange' => isset($params['customerRange']) ? $params['customerRange'] : '',
  48. 'isMutex' => isset($params['isMutex']) ? $params['isMutex'] : StatusCode::$standard,//是否互斥
  49. 'activityGoods' => isset($params['activityGoods']) ? $params['activityGoods'] : '',
  50. ];
  51. foreach ($data as $key => $value) {
  52. if ($value === '') {
  53. parent::sendOutput($key . '参数错误', ErrorCode::$paramError);
  54. }
  55. }
  56. $data['describe'] = isset($params['describe']) ? $params['describe'] : '';
  57. $data['sort'] = isset($params['sort']) ? $params['sort'] : 0;
  58. $data['remark'] = isset($params['remark']) ? $params['remark'] : '';
  59. $data['createTime'] = time();
  60. $data['updateTime'] = time();
  61. if ($data['customerRange'] == StatusCode::$delete) {
  62. if (!isset($params['customerSourceId'])) {
  63. parent::sendOutput('customerSourceId参数错误', ErrorCode::$paramError);
  64. }
  65. $data['customerSourceId'] = $params['customerSourceId'];
  66. }
  67. //促销商品数据
  68. $activityGoods = [];
  69. foreach ($data['activityGoods'] as $key => $val) {
  70. $activityGoods[$key] = [
  71. 'goodsId' => isset($val['goodsId']) ? $val['goodsId'] : '',
  72. 'shopId' => isset($val['shopId']) ? $val['shopId'] : '',
  73. 'skuId' => isset($val['skuId']) ? $val['skuId'] : '',
  74. 'price' => isset($val['price']) ? $val['price'] : '',
  75. 'basicGoodsId' => isset($val['basicGoodsId']) ? $val['basicGoodsId'] : '',
  76. 'activityNum' => isset($val['activityNum']) ? $val['activityNum'] : '',//活动数量
  77. 'limitNum' => isset($val['limitNum']) ? $val['limitNum'] : '',//限购数量
  78. ];
  79. foreach ($activityGoods[$key] as $k => $v) {
  80. if (empty($v)) {
  81. $this->sendOutput($k . '参数错误', ErrorCode::$paramError);
  82. }
  83. }
  84. if (isset($val['id'])) $activityGoods[$key]['id'] = $val['id'];
  85. $activityGoods[$key]['createTime'] = time();
  86. $activityGoods[$key]['updateTime'] = time();
  87. }
  88. $data['activityGoods'] = $activityGoods;//商品数据
  89. return $data;
  90. }
  91. /**
  92. * 新增
  93. */
  94. public function add()
  95. {
  96. $data = $this->commonFieldFilter();
  97. $result = $this->objMActivity->add($data);
  98. if ($result->isSuccess()) {
  99. parent::sendOutput($result->getData());
  100. }
  101. parent::sendOutput($result->getData(), $result->getErrorCode());
  102. }
  103. /**
  104. * 详情
  105. */
  106. public function getInfo()
  107. {
  108. $id = $this->request->param('request_id');
  109. if (empty($id)) {
  110. $this->sendOutput('参数错误', ErrorCode::$paramError);
  111. }
  112. $result = $this->objMActivity->getInfo($id);
  113. if ($result->isSuccess()) {
  114. parent::sendOutput($result->getData());
  115. }
  116. parent::sendOutput($result->getData(), $result->getErrorCode());
  117. }
  118. /**
  119. * 编辑
  120. */
  121. public function edit()
  122. {
  123. $id = $this->request->param('request_id');
  124. $deleteArray = $this->request->param('deleteArray');
  125. if (empty($id)) {
  126. $this->sendOutput('参数错误', ErrorCode::$paramError);
  127. }
  128. $data = $this->commonFieldFilter();
  129. $result = $this->objMActivity->edit($data, $id, $deleteArray);
  130. if ($result->isSuccess()) {
  131. parent::sendOutput($result->getData());
  132. }
  133. parent::sendOutput($result->getData(), $result->getErrorCode());
  134. }
  135. /**
  136. * 更新审核状态
  137. */
  138. public function updateAuditStatus()
  139. {
  140. $params = $this->request->getRawJson();
  141. if (empty($params)) {
  142. $this->sendOutput('参数为空', ErrorCode::$paramError);
  143. }
  144. $data = [
  145. 'id' => isset($params['id']) ? $params['id'] : '',
  146. 'auditStatus' => isset($params['auditStatus']) ? $params['auditStatus'] : '',
  147. ];
  148. foreach ($data as $k => $v) {
  149. if (empty($v) && $v !== 0) {
  150. $this->sendOutput($k . '参数错误', ErrorCode::$paramError);
  151. }
  152. }
  153. $result = $this->objMActivity->updateAuditStatus($data);
  154. if ($result->isSuccess()) {
  155. parent::sendOutput($result->getData());
  156. }
  157. parent::sendOutput($result->getData(), $result->getErrorCode());
  158. }
  159. /**
  160. * 删除
  161. */
  162. public function del()
  163. {
  164. $id = $this->request->param('request_id');
  165. if (empty($id)) {
  166. $this->sendOutput('参数错误', ErrorCode::$paramError);
  167. }
  168. $result = $this->objMActivity->del($id);
  169. if ($result->isSuccess()) {
  170. parent::sendOutput($result->getData());
  171. }
  172. parent::sendOutput($result->getData(), $result->getErrorCode());
  173. }
  174. /**
  175. * 列表
  176. */
  177. public function getAll()
  178. {
  179. $params = $this->request->getRawJson();
  180. if (empty($params)) {
  181. $this->sendOutput('参数为空', ErrorCode::$paramError);
  182. }
  183. $selectParams = [
  184. 'title' => isset($params['title']) ? $params['title'] : '',
  185. 'activityType' => isset($params['activityType']) ? $params['activityType'] : '',
  186. 'enableStatus' => isset($params['enableStatus']) ? $params['enableStatus'] : '',//审核状态
  187. 'start' => isset($params['start']) ? $params['start'] : '',
  188. 'end' => isset($params['end']) ? $params['end'] : '',
  189. 'useShop' => isset($params['useShop']) ? $params['useShop'] : '',
  190. 'isEnd' => isset($params['isEnd']) ? $params['isEnd'] : '',
  191. 'auditStatus' => isset($params['auditStatus']) ? $params['auditStatus'] : '',
  192. ];
  193. $pageParams = pageToOffset(isset($params['page']) ? $params['page'] : 1, isset($params['pageSize']) ? $params['pageSize'] : 10);
  194. $selectParams['limit'] = $pageParams['limit'];
  195. $selectParams['offset'] = $pageParams['offset'];
  196. $orderData = $this->objMActivity->getAll($selectParams);
  197. if ($orderData->isSuccess()) {
  198. $returnData = $orderData->getData();
  199. $pageData = [
  200. 'pageIndex' => $params['page'],
  201. 'pageSize' => $params['pageSize'],
  202. 'pageTotal' => $returnData['total'],
  203. ];
  204. parent::sendOutput($returnData['data'], 0, $pageData);
  205. }
  206. parent::sendOutput($orderData->getData(), ErrorCode::$dberror);
  207. }
  208. /**
  209. * 搜索
  210. */
  211. public function search()
  212. {
  213. $params = $this->request->getRawJson();
  214. if (empty($params)) {
  215. $this->sendOutput('参数为空', ErrorCode::$paramError);
  216. }
  217. $selectParams = [
  218. 'title' => isset($params['title']) ? $params['title'] : '',
  219. 'activityType' => isset($params['activityType']) ? $params['activityType'] : '',
  220. 'enableStatus' => isset($params['enableStatus']) ? $params['enableStatus'] : '',//审核状态
  221. 'start' => isset($params['start']) ? $params['start'] : '',
  222. 'end' => isset($params['end']) ? $params['end'] : '',
  223. 'useShop' => isset($params['useShop']) ? $params['useShop'] : '',
  224. 'isEnd' => isset($params['isEnd']) ? $params['isEnd'] : '',
  225. 'auditStatus' => isset($params['auditStatus']) ? $params['auditStatus'] : '',
  226. ];
  227. $pageParams = pageToOffset(isset($params['page']) ? $params['page'] : 1, isset($params['pageSize']) ? $params['pageSize'] : 10);
  228. $selectParams['limit'] = $pageParams['limit'];
  229. $selectParams['offset'] = $pageParams['offset'];
  230. $result = $this->objMActivity->search($selectParams);
  231. if ($result->isSuccess()) {
  232. $returnData = $result->getData();
  233. $pageData = [
  234. 'pageIndex' => $params['page'],
  235. 'pageSize' => $params['pageSize'],
  236. 'pageTotal' => $returnData['total'],
  237. ];
  238. parent::sendOutput($returnData['data'], 0, $pageData);
  239. }
  240. parent::sendOutput($result->getData(), $result->getErrorCode());
  241. }
  242. /**
  243. * 启用/禁用
  244. */
  245. public function updateEnableStatus()
  246. {
  247. $params = $this->request->getRawJson();
  248. if (empty($params)) {
  249. $this->sendOutput('参数为空', ErrorCode::$paramError);
  250. }
  251. $data = [
  252. 'id' => isset($params['id']) ? $params['id'] : '',
  253. 'enableStatus' => isset($params['enableStatus']) ? $params['enableStatus'] : '',
  254. 'activityType' => isset($params['activityType']) ? $params['activityType'] : '',
  255. ];
  256. foreach ($data as $k => $v) {
  257. if (empty($v) && $v !== 0) {
  258. $this->sendOutput($k . '参数错误', ErrorCode::$paramError);
  259. }
  260. }
  261. $result = $this->objMActivity->updateEnableStatus($data);
  262. if ($result->isSuccess()) {
  263. parent::sendOutput($result->getData());
  264. }
  265. parent::sendOutput($result->getData(), $result->getErrorCode());
  266. }
  267. public function test()
  268. {
  269. $dbResult = $this->objMActivity->getActivityPriceByParams([
  270. 'material'=>[
  271. 1=>[124,125,126],
  272. ],
  273. 'customerId' => 3
  274. ]);
  275. }
  276. }