member.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. <?php
  2. /**
  3. * 会员管理
  4. *
  5. *
  6. *
  7. **by 好商城V3 www.33hao.com 运营版*/
  8. defined('InShopNC') or exit('Access Invalid!');
  9. require_once(BASE_ROOT_PATH . '/helper/member_helper.php');
  10. class memberControl extends SystemControl{
  11. const EXPORT_SIZE = 1000;
  12. public function __construct(){
  13. parent::__construct();
  14. Language::read('member');
  15. }
  16. /**
  17. * 会员管理
  18. */
  19. public function memberOp()
  20. {
  21. $lang = Language::getLangContent();
  22. $model_member = Model('member');
  23. /**
  24. * 删除
  25. */
  26. if (chksubmit()){
  27. /**
  28. * 判断是否是管理员,如果是,则不能删除
  29. */
  30. /**
  31. * 删除
  32. */
  33. if (!empty($_POST['del_id'])){
  34. if (is_array($_POST['del_id'])){
  35. foreach ($_POST['del_id'] as $k => $v){
  36. $v = intval($v);
  37. $rs = true;//$model_member->del($v);
  38. if ($rs){
  39. //删除该会员商品,店铺
  40. //获得该会员店铺信息
  41. $member = $model_member->getMemberInfo(array(
  42. 'member_id'=>$v
  43. ));
  44. //删除用户
  45. $model_member->del($v);
  46. }
  47. }
  48. }
  49. showMessage($lang['nc_common_del_succ']);
  50. }else {
  51. showMessage($lang['nc_common_del_fail']);
  52. }
  53. }
  54. //会员级别
  55. $member_grade = $model_member->getMemberGradeArr();
  56. if ($_GET['search_field_value'] != '') {
  57. switch ($_GET['search_field_name']){
  58. case 'member_name':
  59. $condition['member_name'] = array('like', '%' . trim($_GET['search_field_value']) . '%');
  60. break;
  61. case 'member_email':
  62. $condition['member_email'] = array('like', '%' . trim($_GET['search_field_value']) . '%');
  63. break;
  64. //好商 城v3- b11
  65. case 'member_mobile':
  66. $condition['member_mobile'] = array('like', '%' . trim($_GET['search_field_value']) . '%');
  67. break;
  68. case 'member_truename':
  69. $condition['member_truename'] = array('like', '%' . trim($_GET['search_field_value']) . '%');
  70. break;
  71. }
  72. }
  73. switch ($_GET['search_state']){
  74. case 'no_informallow':
  75. $condition['inform_allow'] = '2';
  76. break;
  77. case 'no_isbuy':
  78. $condition['is_buy'] = '0';
  79. break;
  80. case 'no_isallowtalk':
  81. $condition['is_allowtalk'] = '0';
  82. break;
  83. case 'no_memberstate':
  84. $condition['member_state'] = '0';
  85. break;
  86. }
  87. //会员等级
  88. $search_grade = intval($_GET['search_grade']);
  89. if ($search_grade >= 0 && $member_grade){
  90. $condition['member_exppoints'] = array(array('egt',$member_grade[$search_grade]['exppoints']),array('lt',$member_grade[$search_grade+1]['exppoints']),'and');
  91. }
  92. //排序
  93. $order = trim($_GET['search_sort']);
  94. if (empty($order)) {
  95. $order = 'member_id desc';
  96. }
  97. $member_list = $model_member->getMemberList($condition, '*', 10, $order);
  98. //整理会员信息
  99. if (is_array($member_list)){
  100. foreach ($member_list as $k=> $v){
  101. $member_list[$k]['member_time'] = $v['member_time']?date('Y-m-d H:i:s',$v['member_time']):'';
  102. $member_list[$k]['member_login_time'] = $v['member_login_time']?date('Y-m-d H:i:s',$v['member_login_time']):'';
  103. $member_list[$k]['member_grade'] = ($t = $model_member->getOneMemberGrade($v['member_exppoints'], false, $member_grade))?$t['level_name']:'';
  104. }
  105. }
  106. Tpl::output('member_grade',$member_grade);
  107. Tpl::output('search_sort',trim($_GET['search_sort']));
  108. Tpl::output('search_field_name',trim($_GET['search_field_name']));
  109. Tpl::output('search_field_value',trim($_GET['search_field_value']));
  110. Tpl::output('member_list',$member_list);
  111. Tpl::output('page',$model_member->showpage());
  112. Tpl::showpage('member.index');
  113. }
  114. /**
  115. * 会员修改
  116. */
  117. public function member_editOp(){
  118. $lang = Language::getLangContent();
  119. $model_member = Model('member');
  120. /**
  121. * 保存
  122. */
  123. if (chksubmit()){
  124. /**
  125. * 验证
  126. */
  127. $obj_validate = new Validator();
  128. $obj_validate->validateparam = array(
  129. array("input"=>$_POST["member_email"], "require"=>"true", 'validator'=>'Email', "message"=>$lang['member_edit_valid_email']),
  130. );
  131. $error = $obj_validate->validate();
  132. if ($error != ''){
  133. showMessage($error);
  134. }else {
  135. $update_array = array();
  136. $update_array['member_id'] = intval($_POST['member_id']);
  137. if (!empty($_POST['member_passwd'])){
  138. $update_array['member_passwd'] = md5($_POST['member_passwd']);
  139. }
  140. $update_array['member_email'] = $_POST['member_email'];
  141. $update_array['member_truename'] = $_POST['member_truename'];
  142. $update_array['member_sex'] = $_POST['member_sex'];
  143. $update_array['member_qq'] = $_POST['member_qq'];
  144. $update_array['member_ww'] = $_POST['member_ww'];
  145. $update_array['inform_allow'] = $_POST['inform_allow'];
  146. $update_array['is_buy'] = $_POST['isbuy'];
  147. $update_array['is_allowtalk'] = $_POST['allowtalk'];
  148. $update_array['member_state'] = $_POST['memberstate'];
  149. //v3-b11 新增
  150. $update_array['member_cityid'] = $_POST['city_id'];
  151. $update_array['member_provinceid'] = $_POST['province_id'];
  152. $update_array['member_areainfo'] = $_POST['area_info'];
  153. $update_array['member_mobile'] = $_POST['member_mobile'];
  154. $update_array['member_email_bind'] = intval($_POST['memberemailbind']);
  155. $update_array['member_mobile_bind'] = intval($_POST['membermobilebind']);
  156. if (!empty($_POST['member_avatar'])){
  157. $update_array['member_avatar'] = $_POST['member_avatar'];
  158. }
  159. $result = $model_member->editMember(array('member_id'=>intval($_POST['member_id'])),$update_array);
  160. if ($result){
  161. $url = array(
  162. array(
  163. 'url'=>'index.php?act=member&op=member',
  164. 'msg'=>$lang['member_edit_back_to_list'],
  165. ),
  166. array(
  167. 'url'=>'index.php?act=member&op=member_edit&member_id='.intval($_POST['member_id']),
  168. 'msg'=>$lang['member_edit_again'],
  169. ),
  170. );
  171. $this->log(L('nc_edit,member_index_name').'[ID:'.$_POST['member_id'].']',1);
  172. showMessage($lang['member_edit_succ'],$url);
  173. }else {
  174. showMessage($lang['member_edit_fail']);
  175. }
  176. }
  177. }
  178. $condition['member_id'] = intval($_GET['member_id']);
  179. $member_array = $model_member->getMemberInfo($condition);
  180. Tpl::output('member_array',$member_array);
  181. Tpl::showpage('member.edit');
  182. }
  183. /**
  184. * 新增会员
  185. */
  186. public function member_addOp(){
  187. $lang = Language::getLangContent();
  188. $model_member = Model('member');
  189. /**
  190. * 保存
  191. */
  192. if (chksubmit()){
  193. /**
  194. * 验证
  195. */
  196. $obj_validate = new Validator();
  197. $obj_validate->validateparam = array(
  198. array("input"=>$_POST["member_name"], "require"=>"true", "message"=>$lang['member_add_name_null']),
  199. array("input"=>$_POST["member_passwd"], "require"=>"true", "message"=>'密码不能为空'),
  200. array("input"=>$_POST["member_email"], "require"=>"true", 'validator'=>'Email', "message"=>$lang['member_edit_valid_email'])
  201. );
  202. $error = $obj_validate->validate();
  203. if ($error != ''){
  204. showMessage($error);
  205. }else {
  206. $insert_array = array();
  207. $insert_array['member_name'] = trim($_POST['member_name']);
  208. $insert_array['member_passwd'] = trim($_POST['member_passwd']);
  209. $insert_array['member_email'] = trim($_POST['member_email']);
  210. $insert_array['member_truename']= trim($_POST['member_truename']);
  211. $insert_array['member_sex'] = trim($_POST['member_sex']);
  212. $insert_array['member_qq'] = trim($_POST['member_qq']);
  213. $insert_array['member_ww'] = trim($_POST['member_ww']);
  214. //默认允许举报商品
  215. $insert_array['inform_allow'] = '1';
  216. if (!empty($_POST['member_avatar'])){
  217. $insert_array['member_avatar'] = trim($_POST['member_avatar']);
  218. }
  219. $result = $model_member->addMember($insert_array);
  220. if ($result){
  221. $url = array(
  222. array(
  223. 'url'=>'index.php?act=member&op=member',
  224. 'msg'=>$lang['member_add_back_to_list'],
  225. ),
  226. array(
  227. 'url'=>'index.php?act=member&op=member_add',
  228. 'msg'=>$lang['member_add_again'],
  229. ),
  230. );
  231. $this->log(L('nc_add,member_index_name').'[ '.$_POST['member_name'].']',1);
  232. showMessage($lang['member_add_succ'],$url);
  233. }else {
  234. showMessage($lang['member_add_fail']);
  235. }
  236. }
  237. }
  238. Tpl::showpage('member.add');
  239. }
  240. /**
  241. * ajax操作
  242. */
  243. public function ajaxOp()
  244. {
  245. switch ($_GET['branch'])
  246. {
  247. /**
  248. * 验证会员是否重复
  249. */
  250. case 'check_user_name':
  251. $model_member = Model('member');
  252. $condition['member_name'] = $_GET['member_name'];
  253. $condition['member_id'] = array('neq',intval($_GET['member_id']));
  254. $list = $model_member->getMemberInfo($condition);
  255. if (empty($list)){
  256. echo 'true';exit;
  257. }else {
  258. echo 'false';exit;
  259. }
  260. break;
  261. /**
  262. * 验证邮件是否重复
  263. */
  264. case 'check_email':
  265. $model_member = Model('member');
  266. $condition['member_email'] = $_GET['member_email'];
  267. $condition['member_id'] = array('neq',intval($_GET['member_id']));
  268. $list = $model_member->getMemberInfo($condition);
  269. if (empty($list)){
  270. echo 'true';exit;
  271. }else {
  272. echo 'false';exit;
  273. }
  274. break;
  275. }
  276. }
  277. /**
  278. * 会员属性
  279. */
  280. public function members_attributeOp(){
  281. if(chksubmit())
  282. {
  283. $members = member_helper::from_mobiles($_POST['members'],$err);
  284. if($members != false)
  285. {
  286. $ids = [];
  287. foreach ($members as $member) {
  288. $ids[] = $member['member_id'];
  289. }
  290. $attribute = $_POST['attribute'];
  291. if($attribute == 'lrlz') {
  292. $attribute = member_helper::member_lrlz_type;
  293. }
  294. elseif ($attribute == 'brand') {
  295. $attribute = member_helper::member_brand_type;
  296. }
  297. else {
  298. $attribute = member_helper::member_normal_type;
  299. }
  300. if(!empty($ids)) {
  301. $mod_member = Model('member');
  302. $mod_member->where(array('member_id' => array('in',$ids)))->update(array('member_user_type' => $attribute));
  303. showMessage('成功修改会员属性');
  304. } else {
  305. showMessage("修改失败,请确认输入的号码,是否是会员.");
  306. }
  307. }
  308. }
  309. else {
  310. Tpl::showpage('member.attr');
  311. }
  312. }
  313. public function member_callOp(){
  314. $bonus_rate = trim($_POST['bonus_rate']);
  315. $bonus_num = trim($_POST['bonus_num']);
  316. $member_id = trim($_POST['member_id']);
  317. echo json_encode(array('jsonObj'=>'200'));
  318. }
  319. }