No Description

CustomerDepositController.php 9.9KB

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