DataDownload.php 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\merchant\controller\download;
  12. use app\merchant\controller\AuthController;
  13. use service\JsonService as Json;
  14. use app\merchant\model\download\DataDownloadCategpry;
  15. use app\merchant\model\download\DataDownload as DownloadModel;
  16. use app\merchant\model\download\DataDownloadRecords;
  17. use service\SystemConfigService;
  18. use think\Url;
  19. /**资料控制器
  20. * Class DataDownload
  21. * @package app\merchant\controller\download
  22. */
  23. class DataDownload extends AuthController
  24. {
  25. /**
  26. * 资料下载列表
  27. */
  28. public function index()
  29. {
  30. $cate_list = DataDownloadCategpry::specialCategoryAll(2);
  31. $this->assign('cate_list', $cate_list);
  32. return $this->fetch();
  33. }
  34. /**
  35. * 获取资料下载列表
  36. */
  37. public function data_download_list()
  38. {
  39. $where = parent::getMore([
  40. ['start_time', ''],
  41. ['end_time', ''],
  42. ['status', ''],
  43. ['page', 1],
  44. ['limit', 20],
  45. ['cate_id', 0],
  46. ['is_show', ''],
  47. ['title', '']
  48. ]);
  49. $where['mer_id'] = $this->merchantId;
  50. return Json::successlayui(DownloadModel::get_download_list($where));
  51. }
  52. /**资料审核
  53. * @return mixed
  54. */
  55. public function examine()
  56. {
  57. $cate_list = DataDownloadCategpry::specialCategoryAll(2);
  58. $this->assign('cate_list', $cate_list);
  59. return $this->fetch();
  60. }
  61. /**获得审核资料
  62. * @throws \think\Exception
  63. */
  64. public function data_download_examine_list()
  65. {
  66. $where = parent::getMore([
  67. ['start_time', ''],
  68. ['end_time', ''],
  69. ['page', 1],
  70. ['limit', 20],
  71. ['cate_id', 0],
  72. ['is_show', ''],
  73. ['title', '']
  74. ]);
  75. $where['mer_id'] = $this->merchantId;
  76. return Json::successlayui(DownloadModel::get_download_examine_list($where));
  77. }
  78. public function get_cate_list()
  79. {
  80. $cate_list = DataDownloadCategpry::specialCategoryAll(2);
  81. return Json::successful($cate_list);
  82. }
  83. /**资料编辑、添加
  84. * @param int $id
  85. */
  86. public function add($id = 0)
  87. {
  88. if ($id) {
  89. $download = DownloadModel::get($id);
  90. if (!$download) return Json::fail('资料不存在');
  91. $this->assign(['download' => json_encode($download)]);
  92. }
  93. $this->assign(['id' => $id]);
  94. return $this->fetch();
  95. }
  96. /**保存、编辑轻专题
  97. * @param int $id
  98. */
  99. public function save_data($id = 0)
  100. {
  101. $data = parent::postMore([
  102. ['title', ''],
  103. ['abstract', ''],
  104. ['cate_id', 0],
  105. ['sales', 0],
  106. ['image', ''],
  107. ['poster_image', ''],
  108. ['money', 0],
  109. ['sort', 0],
  110. ['member_money', 0],
  111. ['member_pay_type', 0],
  112. ['pay_type', 0],//支付方式:免费、付费
  113. ['type', 0],
  114. ['link', ''],
  115. ['network_disk_link', ''],
  116. ['network_disk_pwd', '']
  117. ]);
  118. if (!$data['cate_id']) return Json::fail('请选择分类');
  119. if (!$data['title']) return Json::fail('请输入资料标题');
  120. if (!$data['abstract']) return Json::fail('请输入资料简介');
  121. if (!$data['image']) return Json::fail('请上传资料封面图');
  122. if (!$data['poster_image']) return Json::fail('请上传推广海报');
  123. if($data['type'] == 1){
  124. if (!$data['link']) return Json::fail('请上传文件');
  125. $data['network_disk_link'] = '';
  126. $data['network_disk_pwd'] = '';
  127. }else if($data['type'] == 2){
  128. if (!$data['network_disk_link']) return Json::fail('请输入百度网盘文件链接');
  129. if (!$data['network_disk_pwd']) return Json::fail('请输入百度网盘文件获取密码');
  130. $data['link'] = '';
  131. }else{
  132. if (!$data['link']) return Json::fail('请上传文件');
  133. if (!$data['network_disk_link']) return Json::fail('请输入百度网盘文件链接');
  134. if (!$data['network_disk_pwd']) return Json::fail('请输入百度网盘文件获取密码');
  135. }
  136. if ($data['pay_type'] == PAY_MONEY && ($data['money'] == '' || $data['money'] == 0.00 || $data['money'] < 0)) return Json::fail('购买金额未填写或者金额非法');
  137. if ($data['member_pay_type'] == MEMBER_PAY_MONEY && ($data['member_money'] == '' || $data['member_money'] == 0.00 || $data['member_money'] < 0)) return Json::fail('会员购买金额未填写或金额非法');
  138. if ($data['pay_type'] != PAY_MONEY) {
  139. $data['money'] = 0;
  140. }
  141. if ($data['member_pay_type'] != MEMBER_PAY_MONEY) {
  142. $data['member_money'] = 0;
  143. }
  144. DownloadModel::beginTrans();
  145. try {
  146. if ($id) {
  147. $data['status'] = $this->isAudit == 1 ? 0 : 1;
  148. $res = DownloadModel::update($data, ['id' => $id]);
  149. if ($res) {
  150. DownloadModel::commitTrans();
  151. return Json::successful('修改成功');
  152. } else {
  153. DownloadModel::rollbackTrans();
  154. return Json::fail('添加失败');
  155. }
  156. } else {
  157. $data['is_show'] = 1;
  158. $data['status'] = $this->isAudit == 1 ? 0 : 1;
  159. $data['mer_id'] = $this->merchantId;
  160. $data['add_time'] = time();
  161. if (DownloadModel::be(['title' => $data['title'], 'mer_id' => $this->merchantId, 'is_del' => 0])) return Json::fail('资料已存在');
  162. $res = DownloadModel::set($data);
  163. if ($res) {
  164. DownloadModel::commitTrans();
  165. return Json::successful('添加成功');
  166. } else {
  167. DownloadModel::rollbackTrans();
  168. return Json::fail('添加失败');
  169. }
  170. }
  171. } catch (\Exception $e) {
  172. DownloadModel::rollbackTrans();
  173. return Json::fail($e->getMessage());
  174. }
  175. }
  176. public function sliceFileUpload()
  177. {
  178. $aliyunOss = \Api\AliyunOss::instance([
  179. 'AccessKey' => SystemConfigService::get('accessKeyId'),
  180. 'AccessKeySecret' => SystemConfigService::get('accessKeySecret'),
  181. 'OssEndpoint' => SystemConfigService::get('end_point'),
  182. 'OssBucket' => SystemConfigService::get('OssBucket'),
  183. 'uploadUrl' => SystemConfigService::get('uploadUrl'),
  184. ]);
  185. $res = $aliyunOss->sliceFileUpload('file');
  186. if ($res) {
  187. return Json::successful('上传成功', ['url' => $res['url']]);
  188. } else {
  189. return Json::fail('上传失败');
  190. }
  191. }
  192. /**
  193. * 快速编辑
  194. * @param string $field 字段名
  195. * @param int $id 修改的主键
  196. * @param string value 修改后的值
  197. * @return json
  198. */
  199. public function set_value($field = '', $id = '', $value = '')
  200. {
  201. if (!$field || !$id || $value == '') Json::fail('缺少参数3');
  202. if ($field == 'sort' && bcsub($value, 0, 0) < 0) return Json::fail('排序不能为负数');
  203. if ($field == 'ficti' && bcsub($value, 0, 0) < 0) return Json::fail('虚拟下载量不能为负数');
  204. $res = DownloadModel::where('id', $id)->update([$field => $value]);
  205. if ($res)
  206. return Json::successful('保存成功');
  207. else
  208. return Json::fail('保存失败');
  209. }
  210. /**资料删除
  211. * @param int $id
  212. */
  213. public function delete($id = 0)
  214. {
  215. if (!$id) $this->failed('缺少参数');
  216. $download = DownloadModel::get($id);
  217. if (!$download) $this->failed('没有查到此资料');
  218. if ($download->is_del) $this->failed('此资料已删除');
  219. $data['is_del'] = 1;
  220. $res = DownloadModel::edit($data, $id);
  221. if ($res)
  222. return Json::successful('删除成功');
  223. else
  224. return Json::fail('删除失败');
  225. }
  226. /**下载记录
  227. * @param int $id
  228. * @throws \think\exception\DbException
  229. */
  230. public function records($id = 0)
  231. {
  232. $this->assign(['id' => $id, 'year' => getMonth('y')]);
  233. return $this->fetch();
  234. }
  235. public function get_download_records_list($id)
  236. {
  237. $where = parent::getMore([
  238. ['id', 0],
  239. ['page', 1],
  240. ['limit', 20],
  241. ['excel', 0],
  242. ['data', '']
  243. ]);
  244. $where['id'] = $where['id'] >= 0 ? $where['id'] : $id;
  245. $where['mer_id'] = $this->merchantId;
  246. return Json::successlayui(DataDownloadRecords::specialLearningRecordsLists($where, $where['id']));
  247. }
  248. }