Welfare.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. <?php
  2. namespace app\admin\controller;
  3. use app\common\library\OneFileUpload;
  4. use app\common\logic\Member as MemberService;
  5. use think\Loader;
  6. use think\Db;
  7. class Welfare extends Admin
  8. {
  9. protected $gameList;
  10. public function _initialize()
  11. {
  12. parent::_initialize(); // TODO: Change the autogenerated stub
  13. }
  14. /**
  15. *玩家福利列表
  16. */
  17. public function index()
  18. {
  19. $where = [];
  20. $order = 'create_time desc,id desc';
  21. //查询参数
  22. $gameid = $this->request->get('gameid', '', 'trim');
  23. $name = $this->request->get('name', '', 'trim');
  24. if (isset($name) && !empty($name)) {
  25. $where['a.name'] = ['like', "%$name%"];
  26. }
  27. $tmpGameList = model('Common/Game')->getAllByCondition('id,name',['is_welfare'=>2]);
  28. $gameList = array();
  29. foreach ($tmpGameList as $game) {
  30. $gameList[$game['id']] = $game;
  31. }
  32. $welfareGiftType = model('welfareGiftType')->select();
  33. foreach ($welfareGiftType as $ty) {
  34. $welfareGiftType[$ty['id']] = $ty;
  35. }
  36. $resourcesModel = Db::name('cy_welfare_resources');
  37. $resources = $resourcesModel->field('id,name')->select();
  38. foreach ($resources as $v) {
  39. $resources[$v['id']] = $v;
  40. }
  41. $welfareModel = model('welfare');
  42. $list = $welfareModel->alias('a')
  43. ->field('a.*')
  44. ->where($where)
  45. ->where(function ($query) use ($gameid) {
  46. if (isset($gameid) && !empty($gameid)) {
  47. $query->whereRaw(sprintf('FIND_IN_SET(%s,game_id)', $gameid));
  48. }
  49. })
  50. ->order($order)
  51. ->paginate(10, false, ['query' => input('get.')])->each(function ($item, $key) use ($gameList, $welfareGiftType, $resources) {
  52. $game_ids = explode(',', $item['game_id']);
  53. $tmp = [];
  54. foreach ($game_ids as $k => $v) {
  55. $tmp[] = $gameList[$v]['name'];
  56. }
  57. $item['game_name'] = implode('<br>', $tmp);
  58. if ($welfareGiftType[$item['welfare_gift_type_id']]['type_id'] == 1) {
  59. $dayStr = '';
  60. switch ($welfareGiftType[$item['welfare_gift_type_id']]['recharge_type']){
  61. case 1:
  62. $dayStr = '全部';
  63. break;
  64. case 2:
  65. $dayStr = '日';
  66. break;
  67. case 3:
  68. $dayStr = '周';
  69. break;
  70. case 4:
  71. $dayStr = '月';
  72. break;
  73. case 5:
  74. $dayStr = '季';
  75. break;
  76. case 6:
  77. $dayStr = '年';
  78. break;
  79. case 7:
  80. $dayStr = '自定义';
  81. break;
  82. }
  83. if($welfareGiftType[$item['welfare_gift_type_id']]['recharge_type'] == 1){
  84. $note = '(使用条件:最低充值金额' . $welfareGiftType[$item['welfare_gift_type_id']]['recharge_amount'] . ')时间段:'.$dayStr;
  85. }else{
  86. $note = '(使用条件:区间金额' . $welfareGiftType[$item['welfare_gift_type_id']]['recharge_amount'].'-'.$welfareGiftType[$item['welfare_gift_type_id']]['max_recharge_amount'] . ')时间段:'.$dayStr;
  87. }
  88. } elseif ($welfareGiftType[$item['welfare_gift_type_id']]['type_id'] == 2) {
  89. // $note = '(使用条件: 创角)';
  90. $note = '';
  91. } else {
  92. $note = '(使用条件: 最低等级' . $welfareGiftType[$item['welfare_gift_type_id']]['role_level'] . ')';
  93. }
  94. $item['welfare_gift_type_name'] = $welfareGiftType[$item['welfare_gift_type_id']]['name'] . $note;
  95. $resources_data = json_decode($item['resources_data'], true);
  96. $tmp = [];
  97. foreach ($resources_data as $k => $v) {
  98. $tmp[] = '礼包名称:' . $resources[$v['welfare_resources_id']]['name'] . ' 数量:' . $v['number'];
  99. }
  100. if ($tmp) {
  101. $item['welfare_resources_name'] = implode('<br>', $tmp);
  102. } else {
  103. $item['welfare_resources_name'] = '';
  104. }
  105. return $item;
  106. });
  107. $this->assign('game_list', $tmpGameList);
  108. $this->assign('list', $list);
  109. $this->assign('page', $list->render());
  110. return $this->fetch();
  111. }
  112. /**
  113. *增
  114. */
  115. public function add()
  116. {
  117. if ($this->request->isPost()) {
  118. $data = $this->request->post();
  119. if (!in_array($data['grant_type_id'], [3, 8, 9])) {
  120. $data['frequency'] = 1;
  121. }
  122. if (!in_array($data['grant_type_id'], [7])) {
  123. $data['first_type'] = 1;
  124. }
  125. if (!in_array($data['grant_type_id'], [8,9])) {
  126. $data['month_type'] = 1;
  127. }
  128. if (!$data['select']) {
  129. $this->error('请选择游戏');
  130. }
  131. $data['game_id'] = $data['select'];
  132. if(!$data['welfare_gift_type_id']){
  133. $this->error('福利礼包类型');
  134. }
  135. if(!isset($data['welfare_resources_id']) && !$data['welfare_resources_id']){
  136. $this->error('请选择福利!');
  137. }
  138. $resources_data = [];
  139. foreach ($data['welfare_resources_id'] as $k => $v) {
  140. if(!$v){
  141. $this->error('请选择福利!');
  142. }
  143. $resources_data[] = [
  144. 'welfare_resources_id' => $v,
  145. 'number' => $data['number'][$k],
  146. ];
  147. }
  148. $data['resources_data'] = json_encode($resources_data);
  149. unset($data['select'], $data['welfare_resources_id'], $data['number']);
  150. $data['update_time'] = $data['create_time'] = time();
  151. $m = Db::name('cy_welfare')->insertGetId($data);
  152. if (!empty($m)) {
  153. $this->success('添加成功', url('index'));
  154. }
  155. $this->error('添加失败');
  156. }
  157. $tmpGameList = model('Common/Game')->getAllByCondition('id,name',['is_welfare'=>2]);
  158. $this->assign('game_list', $tmpGameList);
  159. $welfare_gift_type = Db::name('cy_welfare_gift_type')->select();
  160. $this->assign('welfare_gift_type', $welfare_gift_type);
  161. $this->assign('grant_type_ids', model('Welfare')->grant_type_id);
  162. return $this->fetch();
  163. }
  164. /**
  165. *删
  166. */
  167. public function delete()
  168. {
  169. $id = $this->request->param('id', '', 'intval');
  170. if (empty($id)) {
  171. $this->error('参数错误!');
  172. }
  173. $appModel = model('Common/Welfare');
  174. if (!$appModel->find($id)) {
  175. $this->error('参数错误,不存在该数据');
  176. }
  177. if ($appModel->where('id', '=', $id)->delete()) {
  178. $this->success('删除成功', url('index'));
  179. }
  180. $error = $appModel->getError();
  181. $this->error($error ?: '删除失败');
  182. }
  183. /**
  184. *编辑SDK密钥
  185. */
  186. public function edit()
  187. {
  188. $id = $this->request->param('id', '', 'intval');
  189. $appModel = Db::name('cy_welfare');
  190. if (!$data = $appModel->find($id)) {
  191. $this->error('参数错误,不存在该数据');
  192. }
  193. if (empty($id)) {
  194. $this->error('参数错误!');
  195. }
  196. if ($this->request->isPost()) {
  197. $data = $this->request->post();
  198. if (!in_array($data['grant_type_id'], [3, 8, 9])) {
  199. $data['frequency'] = 1;
  200. }
  201. $resources_data = [];
  202. if(!isset($data['welfare_resources_id']) && !$data['welfare_resources_id']){
  203. $this->error('请选择福利!');
  204. }
  205. foreach ($data['welfare_resources_id'] as $k => $v) {
  206. if(!$v){
  207. $this->error('请选择福利!');
  208. }
  209. $resources_data[] = [
  210. 'welfare_resources_id' => $v,
  211. 'number' => $data['number'][$k],
  212. ];
  213. }
  214. $data['resources_data'] = json_encode($resources_data);
  215. unset($data['welfare_resources_id'], $data['number']);
  216. $data['update_time'] = time();
  217. Db::name('cy_welfare')->where(['id' => $id])->update($data);
  218. $this->success('修改成功', url('index'));
  219. $this->error($appModel->getError() ?: '修改失败');
  220. }
  221. $game = explode(',', $data['game_id']);
  222. $tmpGameList = model('Common/Game')->getAllByCondition('name', ['id' => ['in', $game]]);
  223. $resourcesModel = Db::name('cy_welfare_resources');
  224. $resources = $resourcesModel->where(function ($query) use ($game) {
  225. foreach ($game as $k => $v) {
  226. $query->whereRaw(sprintf('FIND_IN_SET(%s,game_id)', $v));
  227. }
  228. })->field('id,name')->select();
  229. $this->assign('resources', $resources);
  230. $this->assign('game_name', implode(',', array_column($tmpGameList, 'name')));
  231. $welfare_gift_type = Db::name('cy_welfare_gift_type')->select();
  232. $this->assign('welfare_gift_type', $welfare_gift_type);
  233. $this->assign('grant_type_ids', model('Welfare')->grant_type_id);
  234. $this->assign('resources_data', json_decode($data['resources_data'], true));
  235. $this->assign('data', $data);
  236. return $this->fetch();
  237. }
  238. public function getWelfareResources()
  239. {
  240. $resourcesModel = Db::name('cy_welfare_resources');
  241. $game = input('game');
  242. if (!$game) {
  243. $this->error('游戏不能为空');
  244. }
  245. $gameArr = explode(',', $game);
  246. $result = $resourcesModel->where(function ($query) use ($gameArr) {
  247. foreach ($gameArr as $k => $v) {
  248. $query->whereRaw(sprintf('FIND_IN_SET(%s,game_id)', $v));
  249. }
  250. })->field('id,name')->select();
  251. $result = array_merge([['id'=>'','name'=>'']],json_decode(json_encode($result),true));
  252. $this->jsonResult($result, 1, '成功');
  253. }
  254. }