Explorar o código

增加会员分类功能

stanley-king %!s(int64=8) %!d(string=hai) anos
pai
achega
704af9ee10

+ 56 - 46
admin/control/member_diff.php

@@ -4,6 +4,8 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
+require_once(BASE_ROOT_PATH . '/helper/algorithm.php');
+
 class member_diffControl extends SystemControl
 {
     public function __construct()
@@ -16,55 +18,63 @@ class member_diffControl extends SystemControl
     {
         if (chksubmit())
         {
-//            $obj_validate = new Validator();
-//            $obj_validate->validateparam = array(
-//                array("input"=>$_POST["bonus_rate"],   "require"=>"true",'validator'=>'Compare','operator'=>' >= ','to'=> 1,"message" => '红包抵扣率必须大于0'),
-//                array("input"=>$_POST["bonus_amount"], "require"=>"true",'validator'=>'Compare','operator'=>' >= ','to'=> 0.01,"message" => '金额最少一分钱')
-//            );
-//            $error = $obj_validate->validate();
-//            if ($error != ''){
-//                showMessage($error,'','','error');
-//            }
-//
-//            $members = $this->member_ids($_POST['member_name'],$errno);
-//            if(empty($members)) {
-//                return showMessage(Language::get('nc_common_save_fail'),'index.php?act=person_bonus&op=add','','error');
-//            }
-//
-//            $rate = intval($_POST['bonus_rate']);
-//            $amount = doubleval($_POST['bonus_amount']);
-//            $optype = intval($_POST['operatetype']);
-//            $bonusdesc = $_POST['bonusdesc'];
-//
-//            if ($optype == 1)
-//            {
-//                $ids = [];
-//                foreach ($members as $member) {
-//                    $ids[] = $member['member_id'];
-//                }
-//                $ret = account_helper::add_bonus($rate,$amount,$ids,$bonusdesc);
-//
-//                foreach ($members as $member) {
-//                    $mobile = $member['member_mobile'];
-//                    sms_helper::send_nostore_message($mobile,Sms::active_38,array('time'=>'5'));
-//                }
-//            }
-//            else
-//            {
-//                foreach ($members as $member) {
-//                    $member_id = $member['member_id'];
-//                    $ret = account_helper::withhold_bonus($rate,$amount,$member_id);
-//                }
-//            }
-//
-//            if($ret == true) {
-//                showMessage(Language::get('nc_common_save_succ'),'index.php?act=person_bonus&op=add');
-//            } else {
-//                showMessage(Language::get('nc_common_save_fail'),'index.php?act=person_bonus&op=add','','error');
-//            }
+            $members = $this->member_ids($_POST['mobiles'],$errno);
+            if(empty($members)) {
+                return showMessage(Language::get('nc_common_save_fail'),'index.php?act=member_diff&op=add','','error');
+            }
+
+            $mids = [];
+            foreach ($members as $member) {
+                $mids[] = $member['member_id'];
+            }
+
+            $usertype = intval($_POST['usertype']);
+            $mod_member = Model('member');
+
+            $ret = $mod_member->where(array('member_id' => array('in',$mids)))->update(array('member_user_type' => $usertype));
+
+            if($ret != false) {
+                showMessage(Language::get('nc_common_save_succ'),'index.php?act=member_diff&op=add');
+            } else {
+                showMessage(Language::get('nc_common_save_fail'),'index.php?act=member_diff&op=add','','error');
+            }
         }
         else {
             Tpl::showpage('member_diff.add');
         }
     }
+
+    private function member_ids($inputs,&$errno)
+    {
+        $items = preg_split('/,/',$inputs);
+
+        $errno = [];
+        $mobiles = [];
+        foreach ($items as $item)
+        {
+            $mobile = trim($item);
+            $validate = new Validator();
+            $validate->setValidate(Validator::verify_mobile($mobile));
+            $err = $validate->validate();
+            if(empty($err))
+            {
+                $nMobile = intval($mobile);
+                if(algorithm::binary_search($mobiles,$nMobile) == false) {
+                    $pos = algorithm::lower_bonud($mobiles,$nMobile);
+                    algorithm::array_insert($mobiles,$pos,$nMobile);
+                    continue;
+                }
+            }
+
+            $errno[] = $mobile;
+        }
+
+        if(!empty($mobiles)) {
+            $member = Model('member');
+            $items = $member->getMemberList(array('member_mobile' => array('in',$mobiles)),'member_id,member_mobile');
+            return $items;
+        } else {
+            return false;
+        }
+    }
 }

+ 1 - 4
admin/control/person_bonus.php

@@ -6,6 +6,7 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
+require_once(BASE_ROOT_PATH . '/helper/algorithm.php');
 require_once(BASE_ROOT_PATH . '/helper/account_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/sms_helper.php');
 
@@ -17,10 +18,6 @@ class person_bonusControl extends SystemControl
     {
         parent::__construct();
         Language::read('points');
-        //判断系统是否开启积分功能
-//        if (C('points_isuse') != 1){
-//            showMessage(Language::get('admin_person_bonus_unavailable'),'index.php?act=dashboard&op=welcome','','error');
-//        }
     }
 
     /**

+ 7 - 71
admin/templates/default/member_diff.add.php

@@ -6,7 +6,7 @@
             <h3>会员分类</h3>
             <ul class="tab-base">
                 <li><a href="JavaScript:void(0);" class="current"><span><?php echo $lang['nc_manage']?></span></a></li>
-                <li><a href="index.php?act=person_bonus&op=log"><span><?php echo $lang['admin_person_bonus_log_title']?></span></a></li>
+<!--                <li><a href="index.php?act=person_bonus&op=log"><span>--><?php //echo $lang['admin_person_bonus_log_title']?><!--</span></a></li>-->
             </ul>
         </div>
     </div>
@@ -20,10 +20,7 @@
             </tr>
             <tr class="noborder">
                 <td class="vatop rowform">
-                    <textarea name="member_name" id="member_name" cols="100" rows="10" class="members"></textarea>
-                    <!--                    <input type="text" name="member_name" id="member_name" class="txt">-->
-                    <input type="hidden" name="member_id" id="member_id" value='0'/></td>
-                <td class="vatop tips"><?php echo $lang['member_index_name']?></td>
+                    <textarea name="mobiles" id="mobiles" cols="100" rows="10" class="members"></textarea>
             </tr>
             <tr id="tr_memberinfo">
                 <td colspan="2" style="font-weight:bold;" id="td_memberinfo"></td>
@@ -32,10 +29,10 @@
                 <td colspan="2" class="required"><label>会员类型:</label></td>
             </tr>
             <tr class="noborder">
-                <td class="vatop rowform"><select id="operatetype" name="operatetype">
-                        <option value="0">公司员工</option>
-                        <option value="1">全体会员</option>
-                        <option value="2">品牌方员</option>
+                <td class="vatop rowform"><select id="usertype" name="usertype">
+                        <option value="0">普通会员</option>
+                        <option value="1">公司员工</option>
+                        <option value="2">品牌方员</option>
                     </select></td>
                 <td class="vatop tips"></td>
             </tr>
@@ -48,65 +45,4 @@
             </tfoot>
         </table>
     </form>
-</div>
-<script type="text/javascript">
-    function checkmember()
-    {
-        var membername = $.trim($("#member_name").val());
-        if(membername == ''){
-            $("#member_id").val('0');
-            alert(<?php echo $lang['admin_points_addmembername_error']; ?>);
-            return false;
-        }
-        $.getJSON("index.php?act=points&op=checkmember", {'name':membername}, function(data){
-            if (data)
-            {
-                $("#tr_memberinfo").show();
-                var msg= "<?php echo $lang['admin_points_member_tip']; ?> "+ data.name + "<?php echo $lang['admin_points_member_tip_2']; ?>" + data.points;
-                $("#member_name").val(data.name);
-                $("#member_id").val(data.id);
-                $("#td_memberinfo").text(msg);
-            }
-            else
-            {
-                $("#member_name").val('');
-                $("#member_id").val('0');
-                alert("<?php echo $lang['admin_points_userrecord_error']; ?>");
-            }
-        });
-    }
-    $(function(){
-        $("#tr_memberinfo").hide();
-
-        $('#points_form').validate({
-//        errorPlacement: function(error, element){
-//            $(element).next('.field_notice').hide();
-//            $(element).after(error);
-//        },
-            rules : {
-                member_name: {
-                    required : true
-                },
-                member_id: {
-                    required : true
-                },
-                bonus_rate   : {
-                    required : true,
-                    min : 1
-                }
-            },
-            messages : {
-                member_name: {
-                    required : '<?php echo $lang['admin_points_addmembername_error'];?>'
-                },
-                member_id : {
-                    required : '<?php echo $lang['admin_points_member_error_again'];?>'
-                },
-                bonus_rate  : {
-                    required : '<?php echo $lang['admin_points_points_null_error']; ?>',
-                    min : '<?php echo $lang['admin_points_points_min_error']; ?>'
-                }
-            }
-        });
-    });
-</script>
+</div>