StoreTryRecord.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. <?php
  2. /**
  3. * Created by PhpStorm
  4. * Author: 向往那片天空
  5. * Date: 2020/6/8
  6. * Time: 16:21
  7. * 微信/QQ: 250023777
  8. * 格言: 抓住中心,宁精勿杂,宁专勿多
  9. */
  10. namespace app\admin\controller\ump;
  11. use app\admin\controller\AuthController;
  12. use app\admin\model\system\Express;
  13. use app\Request;
  14. use crmeb\services\FormBuilder as Form;
  15. use crmeb\services\JsonService;
  16. use crmeb\services\UtilService;
  17. use app\admin\model\ump\StoreTryRecord as StoreTryRecordModel;
  18. use app\admin\model\ump\StoreTryProduct as StoreTryProductModel;
  19. use think\facade\Route as Url;
  20. /**
  21. * 试用申请记录控制器
  22. * Class StoreActivityProduct
  23. * @package app\admin\controller\ump
  24. */
  25. class StoreTryRecord extends AuthController
  26. {
  27. public function index(Request $request)
  28. {
  29. $tid = $request->param('tid');
  30. $data = StoreTryProductModel::where("id={$tid}")->field("is_finish,store_name")->find();
  31. $this->assign('tid', $tid);
  32. $this->assign('is_finish', $data['is_finish']);
  33. $this->assign('store_name', $data['store_name']);
  34. $this->assign('countCombination', StoreTryRecordModel::where("is_del=0 and tid={$tid}")->count());
  35. return $this->fetch();
  36. }
  37. /**
  38. * 异步获取活动数据
  39. */
  40. public function get_combination_list()
  41. {
  42. $where = UtilService::getMore([
  43. 'tid',
  44. ['page', 1],
  45. ['limit', 20],
  46. ['uid', ''],
  47. ]);
  48. $combinationList = StoreTryRecordModel::systemPage($where);
  49. if (is_object($combinationList['list'])) $combinationList['list'] = $combinationList['list']->toArray();
  50. $data = $combinationList['list']['data'];
  51. foreach ($data as &$value) {
  52. $value['add_time'] = date('Y-m-d H:i:s', $value['add_time']);
  53. }
  54. $count = count($data);
  55. return JsonService::successlayui(['data' => $data, 'count' => $count]);
  56. }
  57. public function save_excel(Request $request)
  58. {
  59. $where = UtilService::getMore([
  60. 'tid'
  61. ]);
  62. StoreTryRecordModel::SaveExcel($where);
  63. }
  64. public function set_check(Request $request)
  65. {
  66. $param = UtilService::getMore([
  67. 'id',
  68. 'is_check'
  69. ], $request);
  70. if (!$param['id']) return JsonService::fail('参数错误');
  71. $data = StoreTryRecordModel::where("r.id={$param['id']}")->alias('r')->join('store_try_product p', 'r.tid=p.id')->find();
  72. if (!$data) {
  73. return JsonService::fail("找不到试用商品");
  74. }
  75. if ($data['is_finish']) {
  76. return JsonService::fail("试用已经结束,没法再选中奖用户了");
  77. }
  78. $count = StoreTryRecordModel::where("tid={$data['tid']} and is_check=1")->count();
  79. if ($param['is_check'] && $count >= $data['quota']) {
  80. return JsonService::fail("中奖人数已满,请先减少中奖人员再试");
  81. }
  82. StoreTryRecordModel::update([
  83. 'id' => $param['id'],
  84. 'is_check' => $param['is_check']
  85. ]);
  86. return JsonService::success("修改成功");
  87. }
  88. /*
  89. * 发送货
  90. * @param int $id
  91. * @return html
  92. * */
  93. public function order_goods($id = 0)
  94. {
  95. $list = Express::where('is_show', 1)->order('sort desc')->column('name', 'id');
  96. $this->assign([
  97. 'list' => $list,
  98. 'id' => $id
  99. ]);
  100. return $this->fetch();
  101. }
  102. /**
  103. * TODO 送货信息提交
  104. * @param Request $request
  105. * @param $id
  106. */
  107. public function update_delivery($id = 0)
  108. {
  109. $data = UtilService::postMore([
  110. ['type', 1],
  111. ['delivery_name', ''],
  112. ['delivery_id', ''],
  113. ['sh_delivery_name', ''],
  114. ['sh_delivery_id', ''],
  115. ], $this->request);
  116. switch ((int)$data['type']) {
  117. case 1:
  118. //发货
  119. $data['delivery_type'] = 'express';
  120. if (!$data['delivery_name']) return JsonService::fail('请选择快递公司');
  121. if (!$data['delivery_id']) return JsonService::fail('请输入快递单号');
  122. $data['status'] = 1;
  123. StoreTryRecordModel::edit($data, $id);
  124. // event('StoreProductOrderDeliveryGoodsAfter', [$data, $id]);
  125. // StoreOrderStatus::setStatus($id, 'delivery_goods', '已发货 快递公司:' . $data['delivery_name'] . ' 快递单号:' . $data['delivery_id']);
  126. break;
  127. case 2:
  128. //送货
  129. $data['delivery_type'] = 'send';
  130. $data['delivery_name'] = $data['sh_delivery_name'];
  131. $data['delivery_id'] = $data['sh_delivery_id'];
  132. unset($data['sh_delivery_name'], $data['sh_delivery_id']);
  133. if (!$data['delivery_name']) return JsonService::fail('请输入送货人姓名');
  134. if (!(int)$data['delivery_id']) return JsonService::fail('请输入送货人电话号码');
  135. else if (!preg_match("/^1[3456789]{1}\d{9}$/", $data['delivery_id'])) return JsonService::fail('请输入正确的送货人电话号码');
  136. $data['status'] = 1;
  137. StoreTryRecordModel::edit($data, $id);
  138. // event('StoreProductOrderDeliveryAfter', [$data, $id]);
  139. // StoreOrderStatus::setStatus($id, 'delivery', '已配送 发货人:' . $data['delivery_name'] . ' 发货人电话:' . $data['delivery_id']);
  140. break;
  141. case 3:
  142. //虚拟发货
  143. $data['delivery_type'] = 'fictitious';
  144. $data['status'] = 1;
  145. StoreTryRecordModel::edit($data, $id);
  146. // event('StoreProductOrderDeliveryAfter', [$data, $id]);
  147. // StoreOrderStatus::setStatus($id, 'delivery_fictitious', '已虚拟发货');
  148. break;
  149. default:
  150. return JsonService::fail('暂时不支持其他发货类型');
  151. break;
  152. }
  153. //短信发送
  154. // event('ShortMssageSend', [StoreTryRecordModel::where('id', $id)->value('order_id'), 'Deliver']);
  155. return JsonService::successful('修改成功!');
  156. }
  157. /**
  158. * 修改配送信息
  159. * @param $id
  160. * @return mixed|\think\response\Json|void
  161. */
  162. public function distribution($id)
  163. {
  164. if (!$id) return $this->failed('数据不存在');
  165. $product = StoreTryRecordModel::get($id);
  166. if (!$product) return JsonService::fail('数据不存在!');
  167. $f = [];
  168. // $f[] = Form::input('order_id', '退款单号', $product->getData('order_id'))->disabled(1);
  169. if ($product['delivery_type'] == 'send') {
  170. $f[] = Form::input('delivery_name', '送货人姓名', $product->getData('delivery_name'));
  171. $f[] = Form::input('delivery_id', '送货人电话', $product->getData('delivery_id'));
  172. } else if ($product['delivery_type'] == 'express') {
  173. $f[] = Form::select('delivery_name', '快递公司', $product->getData('delivery_name'))->setOptions(function () {
  174. $list = Express::where('is_show', 1)->column('name', 'id');
  175. $menus = [];
  176. foreach ($list as $k => $v) {
  177. $menus[] = ['value' => $v, 'label' => $v];
  178. }
  179. return $menus;
  180. });
  181. $f[] = Form::input('delivery_id', '快递单号', $product->getData('delivery_id'));
  182. }else{
  183. $f[] = Form::input('delivery_id', '虚拟发货', '虚拟发货,无法更改');
  184. }
  185. $form = Form::make_post_form('配送信息', $f, Url::buildUrl('updateDistribution', array('id' => $id)), 7);
  186. $this->assign(compact('form'));
  187. return $this->fetch('public/form-builder');
  188. }
  189. /**
  190. * 修改配送信息
  191. * @param $id
  192. */
  193. public function updateDistribution($id)
  194. {
  195. $data = UtilService::postMore([
  196. 'delivery_name',
  197. 'delivery_id',
  198. ]);
  199. if (!$id) return $this->failed('数据不存在');
  200. $product = StoreTryRecordModel::get($id);
  201. if (!$product) return JsonService::fail('数据不存在!');
  202. if ($product['delivery_type'] == 'send') {
  203. if (!$data['delivery_name']) return JsonService::fail('请输入送货人姓名');
  204. if (!(int)$data['delivery_id']) return JsonService::fail('请输入送货人电话号码');
  205. else if (!preg_match("/^1[3456789]{1}\d{9}$/", $data['delivery_id'])) return JsonService::fail('请输入正确的送货人电话号码');
  206. } else if ($product['delivery_type'] == 'express') {
  207. if (!$data['delivery_name']) return JsonService::fail('请选择快递公司');
  208. if (!$data['delivery_id']) return JsonService::fail('请输入快递单号');
  209. }
  210. StoreTryRecordModel::edit($data, $id);
  211. // event('StoreProductOrderDistributionAfter', [$data, $id]);
  212. // StoreOrderStatus::setStatus($id, 'distribution', '修改发货信息为' . $data['delivery_name'] . '号' . $data['delivery_id']);
  213. return JsonService::successful('修改成功!');
  214. }
  215. }