StoreTryRecord.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. /**
  3. * Created by PhpStorm
  4. * Author: 向往那片天空
  5. * Date: 2020/6/11
  6. * Time: 10:32
  7. * 微信/QQ: 250023777
  8. * 格言: 抓住中心,宁精勿杂,宁专勿多
  9. */
  10. namespace app\api\controller\activity;
  11. use app\admin\model\store\StoreDescription;
  12. use app\admin\model\store\StoreProductAttrValue;
  13. use app\models\store\StoreActivity;
  14. use app\models\store\StoreOrder;
  15. use app\models\store\StoreProductAttr;
  16. use app\models\store\StoreProductRelation;
  17. use app\Request;
  18. use crmeb\services\QrcodeService;
  19. use crmeb\services\UtilService;
  20. use app\models\store\StoreTryProduct as StoreTryProductModel;
  21. use think\facade\Db;
  22. use app\models\store\StoreTryRecord as StoreTryRecordModel;
  23. /**
  24. * 试用申请控制器
  25. * Class StoreActivityProduct
  26. * @package app\api\controller\activity
  27. */
  28. class StoreTryRecord
  29. {
  30. /**
  31. * 试用申请列表
  32. * @param Request $request
  33. * @return mixed
  34. */
  35. public function lst(Request $request)
  36. {
  37. list($type, $page, $limit) = UtilService::getMore([
  38. ['type', 0],
  39. ['page', 1],
  40. ['limit', 10],
  41. ], $request, true);
  42. $uid = $request->uid();
  43. $ret = [];
  44. $list = StoreTryRecordModel::setWherePage(new StoreTryRecordModel(), [], [])->field("tr.*,tp.store_name,tp.image,tp.is_finish,pro.price")->where("tr.uid={$uid} and tr.is_del=0")->alias('tr')->join('store_try_product tp', 'tp.id=tr.tid')->join('store_product pro', 'pro.id=tp.product_id')->page($page, $limit)->select()->each(function ($item) use ($type, &$ret) {
  45. $item['add_time'] = date('Y-m-d H:i:s', $item['add_time']);
  46. if ($type == 0) {
  47. if ($item['is_finish'] == 0) {
  48. $ret[] = $item;
  49. }
  50. } else if ($type == 1) {
  51. if ($item['is_finish'] == 1 && $item['is_check'] == 1) {
  52. $ret[] = $item;
  53. }
  54. } else {
  55. if ($item['is_finish'] == 1 && $item['is_check'] == 0) {
  56. $ret[] = $item;
  57. }
  58. }
  59. })->toArray();
  60. return app('json')->success('ok', $ret);
  61. }
  62. /**
  63. * 试用申请
  64. * @param Request $request
  65. * @return mixed
  66. * @throws \think\db\exception\DataNotFoundException
  67. * @throws \think\db\exception\DbException
  68. * @throws \think\db\exception\ModelNotFoundException
  69. */
  70. public function add(Request $request)
  71. {
  72. $param = UtilService::postMore([
  73. 'tid',
  74. 'name',
  75. 'phone',
  76. 'address',
  77. 'attr'
  78. ], $request);
  79. $uid = $request->uid();
  80. $time = time();
  81. if (StoreTryRecordModel::be([
  82. 'uid' => $uid,
  83. 'tid' => $param['tid'],
  84. 'is_del' => 0
  85. ])) {
  86. return app('json')->fail('已经申请过,请勿重复申请');
  87. }
  88. $tryPro = StoreTryProductModel::where("id={$param['tid']} and is_del=0")->find();
  89. if (!$tryPro || $tryPro['is_show'] == 0) {
  90. return app('json')->fail('找不到试用商品或者已经下架');
  91. }
  92. if ($tryPro['start_time'] > time()) {
  93. return app('json')->fail('试用还没开始');
  94. }
  95. if ($tryPro['stop_time'] < time()) {
  96. return app('json')->fail('试用已经结束');
  97. }
  98. if ($tryPro['is_finish']) {
  99. return app('json')->fail('试用已经结束,无法申请');
  100. }
  101. StoreTryRecordModel::create([
  102. 'uid' => $uid,
  103. 'tid' => $param['tid'],
  104. 'name' => $param['name'],
  105. 'phone' => $param['phone'],
  106. 'address' => $param['address'],
  107. 'attr' => $param['attr'],
  108. 'add_time' => $time,
  109. ]);
  110. return app('json')->success('试用申请成功');
  111. }
  112. }