利用位移运算,做出按地区展示功能。

首先完成页面。编写多个地区的checkbox 勾选后形成一个数组传给controller

 

<div id="editArea" class="modal-window">
    <form id="form2" action="/admin/product/editArea.do" enctype="multipart/form-data" method="post" class="form-horizontal">
        <input type="hidden" name="id">
        <div class="form-group">
            <label  class="col-md-push-1 col-md-2">全选</label>
            <div class="col-md-push-1 col-md-2">
                <input type="checkbox" class="areas" id="area10" >
            </div>
            <label  class="col-md-push-1 col-md-2">华北地区</label>
            <div class="col-md-push-1 col-md-2">
                <input type="checkbox" class="areas"  name="areas" id="area1" value="1">
            </div>
            <label  class="col-md-push-1 col-md-2">东北地区</label>
            <div class="col-md-push-1 col-md-2">
                <input type="checkbox" class="areas" name="areas" id="area2" value="2">
            </div>

        </div>
        <div class="form-group">
            <label  class="col-md-push-1 col-md-2">华东地区</label>
            <div class="col-md-push-1 col-md-2">
                <input type="checkbox" class="areas"  name="areas" id="area3" value="3">
            </div>
            <label  class="col-md-push-1 col-md-2">华中地区</label>
            <div class="col-md-push-1 col-md-2">
                <input type="checkbox" class="areas" name="areas" id="area4" value="4">
            </div>
            <label  class="col-md-push-1 col-md-2">西南地区</label>
            <div class="col-md-push-1 col-md-2">
                <input type="checkbox" class="areas" name="areas" id="area5" value="5">
            </div>

        </div>
        <div class="form-group">
            <label  class="col-md-push-1 col-md-2">西北地区</label>
            <div class="col-md-push-1 col-md-2">
                <input type="checkbox" class="areas" name="areas" id="area6" value="6">
            </div>
            <label  class="col-md-push-1 col-md-2">台湾地区</label>
            <div class="col-md-push-1 col-md-2">
                <input type="checkbox" class="areas" name="areas" id="area7" value="7">
            </div>
            <label  class="col-md-push-1 col-md-2">港澳地区</label>
            <div class="col-md-push-1 col-md-2">
                <input type="checkbox" class="areas" name="areas" id="area8" value="8">
            </div>

        </div>
        <div class="form-group">
            <label  class="col-md-push-1 col-md-2">华南地区</label>
            <div class="col-md-push-1 col-md-2">
                <input type="checkbox" class="areas" name="areas" id="area9" value="9">
            </div>
            <label  class="col-md-push-1 col-md-2">其他地区</label>
            <div class="col-md-push-1 col-md-2">
                <input type="checkbox" class="areas" name="areas" id="area0" value="0">
            </div>



        </div>


        <br>
        <div class="form-group">
            <div class="col-md-push-4 col-md-3">
                <button type="submit" class="btn btn-success btn-block">提交</button>
            </div>
        </div>
    </form>
</div>


编写controller,进行位移运算

@RequestMapping("editArea.do")
@ResponseBody
public JsonResult editAreaAction(Long id,Integer areas[]) {
    Long count=0L;
    if(areas!=null){
        for (Integer a : areas) {
            count|=1<<a;
        }
    }
    Product product = new Product(id);
    product.setArea(count);
    service.save(product, "area");
    return json().setSuccess(true);
}


最后进行查询

通过阿里巴巴提供的接口,获取地区码

public static Integer areaCode() {
    Integer code = (Integer) getSession().getAttribute("AREACODE");
    if (code == null) {
        String url = "http://ip.taobao.com/service/getIpInfo.php?ip=" + getRequestIp();
        try {
           String result = ClientUtil.sendGet(url);
            AreaResults area = JSONObject.parseObject(result, AreaResults.class);
            if (area != null)
                if (area.getCode() == 0)
                    if ("CN".equals(area.getData().getCountry_id()) ||
                            "86".equals(area.getData().getCountry_id())) {
                        Long areaId = area.getData().getArea_id();
                        if (areaId != null)
                            code = Integer.parseInt(areaId.toString().substring(0, 1));
                        getSession().setAttribute("AREACODE", code);
                    } else {
                        code = 0;
                        getSession().setAttribute("AREACODE", code);
                    }
        } catch (Exception e) {
           return 3;
        }
        
    }
    return code;

}

最后根据获取的地区码,展示属于当前地区的数据

<sql-query name="selectSortProduct" resultset-ref="product">
   <![CDATA[
      SELECT *
      FROM lc_products t1 LEFT JOIN  lcv2_brand t2 ON t1.brand_id = t2.id 
      WHERE (t1.area&(1<<?))>0 
      ORDER BY sort DESC 
      LIMIT 0,12
   ]]> 
</sql-query> 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值