Sin descripción

CustomerDepositController.php 9.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. <?php
  2. /**
  3. * Created by Sublime.
  4. * User: Williamslife Wang
  5. * Date: 17/10/18
  6. * Time: 上午11:20
  7. */
  8. namespace App\Http\Controllers\Admin;
  9. use App\Http\Controllers\Controller;
  10. use App\Admin;
  11. use Illuminate\Http\Request;
  12. use App\CustomerInfo;
  13. use App\CustomerDeposit;
  14. use App\CustomerConsum;
  15. use App\CustomerDepositPackages;
  16. use Illuminate\Support\Facades\DB;
  17. class CustomerDepositController extends Controller
  18. {
  19. /**
  20. * @return \Illuminate\View\View
  21. */
  22. public function customerList(Request $request)
  23. {
  24. $phone = trim( $request->input('phone') );
  25. $name = trim( $request->input('name') );
  26. $page = (int)$request->input('page');
  27. $pageSize = 20;
  28. if($page<=0){
  29. $page = 1;
  30. }
  31. $offset = ($page-1) * $pageSize;
  32. $count = CustomerInfo::where(function($query) use($phone, $name){
  33. if($phone) $query->where('phone', $phone);
  34. if($name) $query->where('name', 'like', '%'. $name. '%');
  35. })->count();
  36. if ($count > 1) {
  37. // 总页数
  38. $pages = ceil($count/$pageSize);
  39. }else{
  40. // 总页数
  41. $pages = 1;
  42. }
  43. $result = CustomerInfo::where(function($query) use($phone, $name){
  44. if($phone) $query->where('phone', $phone);
  45. if($name) $query->where('name', 'like', '%'. $name. '%');
  46. })->orderBy('id', 'desc')->offset($offset)->limit($pageSize)->get();
  47. $result = json_decode(json_encode($result),true);
  48. return view('deposit/customerList', ['result' =>$result,
  49. 'page' =>$page,
  50. 'count' =>$count,
  51. 'pages' =>$pages,
  52. 'phone' =>$phone,
  53. 'name' =>$name,
  54. ]);
  55. }
  56. /**
  57. * @return \Illuminate\View\View
  58. */
  59. public function index(Request $request)
  60. {
  61. $phone = $request->input('phone');
  62. $page = (int)$request->input('page');
  63. $pageSize = 20;
  64. if($page<=0){
  65. $page = 1;
  66. }
  67. $offset = ($page-1) * $pageSize;
  68. $count = CustomerDeposit::where(function($query) use($phone){
  69. if($phone) $query->where('phone', $phone);
  70. })->where('is_del',0)->count();
  71. if ($count > 1) {
  72. // 总页数
  73. $pages = ceil($count/$pageSize);
  74. }else{
  75. // 总页数
  76. $pages = 1;
  77. }
  78. $result = CustomerDeposit::where(function($query) use($phone){
  79. if($phone) $query->where('phone', $phone);
  80. })->where('is_del',0)->orderBy('pay_time', 'desc')->offset($offset)->limit($pageSize)->get();
  81. $result = json_decode(json_encode($result),true);
  82. return view('deposit/index', ['result' =>$result,
  83. 'page' =>$page,
  84. 'count' =>$count,
  85. 'pages' =>$pages,
  86. 'phone' =>$phone
  87. ]);
  88. }
  89. /**
  90. * @return \Illuminate\View\View
  91. */
  92. public function create(Request $request)
  93. {
  94. $phone = $request->input('phone');
  95. //查询套餐
  96. $packages = CustomerDepositPackages::where('is_del', 0)->orderBy('pay_amount', 'asc')->get();
  97. return view('deposit/create', ['packages'=>$packages, 'phone'=>$phone]);
  98. }
  99. /**
  100. * @param Request $request
  101. * @return \Illuminate\Http\RedirectResponse
  102. */
  103. public function store(Request $request)
  104. {
  105. $pay_money = $request->input('pay_money');
  106. $pack_required = 'required';
  107. if($pay_money>0){
  108. $pack_required = '';
  109. }
  110. $this->validate($request, [
  111. 'phone' => 'required',
  112. 'package_id' => $pack_required,
  113. 'pay_time' => 'required',
  114. ], [
  115. 'phone.required' => '手机号不能为空',
  116. 'package_id.required' => '必须选择套餐',
  117. 'pay_time.required' => '充值时间必须选择',
  118. ]);
  119. $admin_id = session('admin_id');
  120. $deposit = new CustomerDeposit();
  121. $deposit->phone = $request->input('phone');
  122. $deposit->admin_id = $admin_id;
  123. $deposit->pay_time = $request->input('pay_time');
  124. if($pay_money>0){
  125. //自定义充值
  126. $deposit->pay_amount = $pay_money;
  127. $deposit->discount = 0;
  128. $deposit->deposit_amount = $pay_money;
  129. $deposit->note = '自定义充值';
  130. }else{
  131. $package_id = (int)$request->input('package_id');
  132. $package_info = CustomerDepositPackages::where('id', $package_id)->first();
  133. $deposit->pay_amount = $package_info->pay_amount;
  134. $deposit->discount = $package_info->discount;
  135. $deposit->deposit_amount = $deposit->pay_amount + $deposit->discount;
  136. $deposit->note = $package_info->note;
  137. }
  138. if($deposit->save()){
  139. //变更余额
  140. $name = trim( $request->input('name') );
  141. $customerInfo = CustomerInfo::where('phone', $deposit->phone)->first();
  142. if(!empty($customerInfo)){
  143. $customerInfo->balance = $customerInfo->balance + $deposit->deposit_amount;
  144. $customerInfo->deposit_total = $customerInfo->deposit_total + $deposit->deposit_amount;
  145. $customerInfo->deposit_times = $customerInfo->deposit_times + 1;
  146. $customerInfo->save();
  147. }else{
  148. $customerInfo = new CustomerInfo();
  149. $customerInfo->phone = $deposit->phone;
  150. $customerInfo->deposit_times = 1;
  151. $customerInfo->balance = $deposit->deposit_amount;
  152. $customerInfo->deposit_total = $deposit->deposit_amount;
  153. if(!empty($name)) $customerInfo->name = $name;
  154. $customerInfo->admin_id = $admin_id;
  155. $customerInfo->save();
  156. }
  157. }
  158. return redirect('/admin/deposit/index?phone='.$deposit->phone)->with('info', '添加成功');
  159. }
  160. /**
  161. * @param $id
  162. * @return \Illuminate\View\View
  163. */
  164. public function edit($id)
  165. {
  166. $deposit = CustomerDeposit::findOrFail($id);
  167. return view('deposit/edit', ['deposit' => $deposit, 'id'=>$id]);
  168. }
  169. /**
  170. * @param Request $request
  171. * @return \Illuminate\Http\RedirectResponse
  172. */
  173. public function update(Request $request)
  174. {
  175. $id = (int)$request->input('id');
  176. $this->validate($request, [
  177. 'phone' => 'required',
  178. 'pay_amount' => 'required',
  179. 'discount' => 'required',
  180. ], [
  181. 'phone.required' => '手机号不能为空',
  182. 'pay_amount.required' => '参数有误',
  183. 'discount.required' => '参数有误',
  184. ]);
  185. $template = Templates::findOrFail($id);
  186. $template->url = trim($request->input('url'));
  187. $template->note = trim($request->input('note'));
  188. //图片上传 阿里云oss
  189. if ($request->hasFile('img') && $request->file('img')->isValid()) {
  190. $file = $request->file('img');
  191. $ossClient=new oss();
  192. // 上传阿里云
  193. $file = $ossClient->upload($file->getClientOriginalExtension(), $file->getRealPath(), 'upload/seafoodPic'.date("Y-m-d",time()).'/'.date('His'));
  194. $img=$file['oss-request-url'];
  195. $template->img=str_replace("kx-youhuiquan.oss-cn-beijing.aliyuncs.com","imgs.726p.com",$img);
  196. }
  197. $template->save();
  198. return redirect('/admin/template/index')->with('info', '修改模板成功');
  199. }
  200. //获余额
  201. public function getBalance($phone){
  202. $result = CustomerInfo::where('phone', $phone)->pluck('balance');
  203. if(empty($result)){
  204. exit('0');
  205. }
  206. exit($result);
  207. }
  208. /**
  209. * @return \Illuminate\View\View
  210. */
  211. public function consumList(Request $request)
  212. {
  213. $phone = $request->input('phone');
  214. $page = (int)$request->input('page');
  215. $pageSize = 20;
  216. if($page<=0){
  217. $page = 1;
  218. }
  219. $offset = ($page-1) * $pageSize;
  220. $count = CustomerConsum::where(function($query) use($phone){
  221. if($phone) $query->where('phone', $phone);
  222. })->where('is_del',0)->count();
  223. if ($count > 1) {
  224. // 总页数
  225. $pages = ceil($count/$pageSize);
  226. }else{
  227. // 总页数
  228. $pages = 1;
  229. }
  230. $result = CustomerConsum::where(function($query) use($phone){
  231. if($phone) $query->where('phone', $phone);
  232. })->where('is_del',0)->orderBy('id', 'desc')->offset($offset)->limit($pageSize)->get();
  233. $result = json_decode(json_encode($result),true);
  234. return view('deposit/consumList', ['result' =>$result,
  235. 'page' =>$page,
  236. 'count' =>$count,
  237. 'pages' =>$pages,
  238. 'phone' =>$phone
  239. ]);
  240. }
  241. }