Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

xian 5 anni fa
parent
commit
f187ab0a6e

+ 10 - 1
watero-rst-core/src/main/java/com.iamberry.rst.core/address/City.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.core.address;
 
 import java.io.Serializable;
+import java.util.List;
 
 public class City implements Serializable {
     private static final long serialVersionUID = -6644037349560289619L;
@@ -11,7 +12,7 @@ public class City implements Serializable {
     private String city;
 
     private Integer divisionCode;
-
+    private List<District> districtList;
     public City(){}
 
     public City(Integer cityId){
@@ -49,4 +50,12 @@ public class City implements Serializable {
     public void setDivisionCode(Integer divisionCode) {
         this.divisionCode = divisionCode;
     }
+
+    public List<District> getDistrictList() {
+        return districtList;
+    }
+
+    public void setDistrictList(List<District> districtList) {
+        this.districtList = districtList;
+    }
 }

+ 20 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/address/Province.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.core.address;
 
 import java.io.Serializable;
+import java.util.List;
 
 public class Province implements Serializable {
     private static final long serialVersionUID = 3772529317606125313L;
@@ -12,6 +13,9 @@ public class Province implements Serializable {
 
     private Integer divisionCode;
 
+    private List<City> cityList;
+
+    private String provinceName;
     public Province (){}
 
     public Province(Integer provinceId){
@@ -49,4 +53,20 @@ public class Province implements Serializable {
     public void setDivisionCode(Integer divisionCode) {
         this.divisionCode = divisionCode;
     }
+
+    public List<City> getCityList() {
+        return cityList;
+    }
+
+    public void setCityList(List<City> cityList) {
+        this.cityList = cityList;
+    }
+
+    public String getProvinceName() {
+        return provinceName;
+    }
+
+    public void setProvinceName(String provinceName) {
+        this.provinceName = provinceName;
+    }
 }

+ 56 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/address/AddressService.java

@@ -3,6 +3,7 @@ package com.iamberry.rst.faces.address;
 import com.iamberry.rst.core.address.City;
 import com.iamberry.rst.core.address.District;
 import com.iamberry.rst.core.address.Province;
+import com.iamberry.rst.core.page.PagedResult;
 
 import java.util.List;
 
@@ -32,4 +33,59 @@ public interface AddressService {
      */
     List<District> listDistrict(District district);
 
+    /**
+     *  获取省市区
+     * @param province
+     * @return
+     */
+    PagedResult<Province> listProvinces(int pageNO, int pageSize, Province province, boolean isTotalNum);
+
+    /**
+     *  新增市
+     * @param
+     * @return
+     */
+    Integer addCity(City City);
+
+    /**
+     *  新增区
+     * @param
+     * @return
+     */
+    Integer addDistrict(District district);
+
+    /**
+     *  删除市
+     * @param
+     * @return
+     */
+    Integer delCity(Integer cityId);
+
+    /**
+     *  删除区
+     * @param
+     * @return
+     */
+    Integer delDistrict(Integer districtId);
+
+    /**
+     *  根据市id删除区
+     * @param
+     * @return
+     */
+    Integer delDistrictList(Integer cityId);
+
+    /**
+     *  修改市
+     * @param
+     * @return
+     */
+    Integer updateCity(City city);
+
+    /**
+     *  修改区
+     * @param
+     * @return
+     */
+    Integer updateDistrict(District district);
 }

+ 53 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/address/AddressServiceImpl.java

@@ -1,13 +1,17 @@
 package com.iamberry.rst.service.address;
 
 
+import com.github.pagehelper.PageHelper;
 import com.iamberry.rst.core.address.City;
 import com.iamberry.rst.core.address.District;
 import com.iamberry.rst.core.address.Province;
+import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.faces.address.AddressService;
 import com.iamberry.rst.service.address.mapper.AddressMapper;
+import com.iamberry.rst.util.PageUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -33,5 +37,54 @@ public class AddressServiceImpl implements AddressService {
         return addressMapper.listDistrict(district);
     }
 
+    public PagedResult<Province> listProvinces(int pageNO, int pageSize, Province province, boolean isTotalNum) {
+        PageHelper.startPage(pageNO, pageSize, isTotalNum);
+        List<Province> list = addressMapper.listProvinces(province);
+        return PageUtil.getPage(list);
+    }
+
+    @Override
+    public Integer addCity(City city) {
+        return addressMapper.addCity(city);
+    }
 
+    @Override
+    public Integer addDistrict(District district) {
+        return addressMapper.addDistrict(district);
+    }
+
+    @Override
+    @Transactional
+    public Integer delCity(Integer cityId) {
+        Integer num = 0;
+        if(addressMapper.delDistrictList(cityId) < 1){
+                throw new RuntimeException("删除市-删除区失败");
+        }else {
+            num = addressMapper.delCity(cityId);
+            if(num < 1){
+                throw new RuntimeException("删除市失败");
+            }
+        }
+        return num;
+    }
+
+    @Override
+    public Integer delDistrict(Integer districtId) {
+        return addressMapper.delDistrict(districtId);
+    }
+
+    @Override
+    public Integer delDistrictList(Integer cityId) {
+        return addressMapper.delDistrictList(cityId);
+    }
+
+    @Override
+    public Integer updateCity(City city) {
+        return addressMapper.updateCity(city);
+    }
+
+    @Override
+    public Integer updateDistrict(District district) {
+        return addressMapper.updateDistrict(district);
+    }
 }

+ 58 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/AddressMapper.java

@@ -32,4 +32,62 @@ public interface AddressMapper {
      */
     List<District> listDistrict(District district);
 
+    /**
+     *  获取省市区
+     * @param province
+     * @return
+     */
+    List<Province> listProvinces(Province province);
+
+    /**
+     *  新增市
+     * @param
+     * @return
+     */
+    Integer addCity(City City);
+
+    /**
+     *  新增区
+     * @param
+     * @return
+     */
+    Integer addDistrict(District district);
+
+    /**
+     *  删除市
+     * @param
+     * @return
+     */
+    Integer delCity(Integer cityId);
+
+    /**
+     *  删除区
+     * @param
+     * @return
+     */
+    Integer delDistrict(Integer districtId);
+
+    /**
+     *  根据市id删除区
+     * @param
+     * @return
+     */
+    Integer delDistrictList(Integer cityId);
+
+    /**
+     *  修改市
+     * @param
+     * @return
+     */
+    Integer updateCity(City city);
+
+    /**
+     *  修改区
+     * @param
+     * @return
+     */
+    Integer updateDistrict(District district);
+
+
+
 }

+ 98 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/addressMapper.xml

@@ -62,5 +62,103 @@
       </if>
     </where>
   </select>
+<resultMap id="provinceMap" type="Province">
+  <id column="province_id" property="provinceId"  />
+  <result column="country_id" property="countryId"/>
+  <result column="province" property="province"/>
+  <result column="division_code" property="divisionCode"/>
+  <collection property="cityList" column="province_id" javaType="ArrayList" ofType="com.iamberry.rst.core.address.City" select="listCitys"/>
+</resultMap>
+  <resultMap id="CityMap" type="City">
+    <id column="city_id" property="cityId"  />
+    <result column="province_id" property="provinceId"/>
+    <result column="city" property="city"/>
+    <result column="division_code" property="divisionCode"/>
+    <collection property="districtList" column="city_id" javaType="ArrayList" ofType="com.iamberry.rst.core.address.District" select="listDistricts"/>
+  </resultMap>
+  <select id="listProvinces" resultMap="provinceMap" parameterType="Province" >
+    select
+    province_id,
+    country_id,
+    province,
+    division_code
+    from tb_rst_address_province
+    <where>
+      <if test="countryId !=null and countryId !=''">
+        country_id = #{countryId}
+      </if>
+      <if test="province !=null and province !=''">
+        AND province like CONCAT('%',#{province},'%')
+      </if>
+      <if test="provinceId !=null">
+        AND province_id = #{provinceId}
+      </if>
+      <if test="provinceName !=null and provinceName !=''">
+        AND province like CONCAT('%',#{provinceName},'%')
+      </if>
+    </where>
+  </select>
+
+  <select id="listCitys" resultMap="CityMap" parameterType="java.lang.Integer" >
+    select
+    city_id,
+    province_id,
+    city,
+    division_code
+    from tb_rst_address_city
+    where
+      province_id = #{provinceId}
+  </select>
+
+  <select id="listDistricts" resultType="District" parameterType="java.lang.Integer" >
+    SELECT
+    district_id,
+    city_id,
+    district,
+    division_code,
+    postcode
+    from tb_rst_address_district
+    where
+      city_id = #{cityId}
+  </select>
+
+  <insert id="addCity" parameterType="City">
+    INSERT INTO tb_rst_address_city
+    (city_id,province_id,city,division_code)
+    VALUES
+    (#{cityId},#{provinceId},#{city},#{divisionCode})
+  </insert>
+  <insert id="addDistrict" parameterType="District">
+    INSERT INTO tb_rst_address_district
+    (district_id,city_id,district,division_code,postcode)
+    VALUES
+    (#{districtId},#{cityId},#{district},#{divisionCode},#{postcode})
+  </insert>
+
+  <delete id="delCity" parameterType="Integer">
+    DELETE FROM tb_rst_address_city WHERE city_id = #{cityId}
+  </delete>
+
+  <delete id="delDistrict" parameterType="Integer">
+    DELETE FROM tb_rst_address_district WHERE district_id = #{districtId}
+  </delete>
 
+  <delete id="delDistrictList" parameterType="Integer">
+    DELETE FROM tb_rst_address_district WHERE city_id = #{cityId}
+  </delete>
+  <update id="updateCity" parameterType="City">
+    UPDATE tb_rst_address_city
+    SET
+    city = #{city}
+    WHERE
+    city_id = #{cityId}
+  </update>
+  <update id="updateDistrict" parameterType="District">
+    UPDATE tb_rst_address_district
+    SET
+    district = #{district},
+    postcode = #{postcode}
+    WHERE
+    district_id = #{districtId}
+  </update>
 </mapper>

+ 193 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/address/AddressController.java

@@ -3,14 +3,23 @@ package com.iamberry.rst.controllers.address;
 import com.iamberry.rst.core.address.City;
 import com.iamberry.rst.core.address.District;
 import com.iamberry.rst.core.address.Province;
+import com.iamberry.rst.core.cm.SalesOrder;
+import com.iamberry.rst.core.order.Product;
+import com.iamberry.rst.core.order.ProductType;
+import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.faces.address.AddressService;
+import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.wechat.tools.ResponseJson;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
 
+import javax.servlet.http.HttpServletRequest;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.util.List;
@@ -81,4 +90,188 @@ public class AddressController {
         }
     }
 
+    /**
+     * 地址列表
+     * @param request
+     * @return
+     */
+    @RequiresPermissions("address:list:address")
+    @RequestMapping("/listProvinces")
+    public ModelAndView productPage(HttpServletRequest request, Province province,
+                                    @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
+                                    @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
+                                    @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
+        ModelAndView mv = new ModelAndView("address/address_list");
+
+        PagedResult<Province> pagedResult = addressService.listProvinces(pageNO, pageSize, province, totalNum == 0);
+        if (totalNum != 0){
+            pagedResult.setTotal(totalNum);
+        }
+        StitchAttrUtil.getSa()
+                .setModelAndView(province, mv, "/address/listProvinces", pagedResult);
+        return mv;
+    }
+
+    /**
+     * 进入添加市页面
+     * @param provinceId
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/to_add_city")
+    public ModelAndView to_add_city(@RequestParam("provinceId") Integer provinceId) {
+        return new ModelAndView("address/add_city").addObject("provinceId", provinceId);
+    }
+
+    /**
+     * 进入添加区页面
+     * @param cityId
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/to_add_district")
+    public ModelAndView to_add_district(@RequestParam("cityId") Integer cityId) {
+        return new ModelAndView("address/add_district").addObject("cityId", cityId);
+    }
+
+
+    /**
+     *  添加区
+     * @param district
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/add_district")
+    public ResponseJson addDistrict(District district) throws Exception {
+        ResponseJson rj =new ResponseJson(200, "添加成功", 200);
+        if(district.getCityId() == null || district.getDistrict() == null || district.getPostcode() == null){
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        district.setDivisionCode(district.getDistrictId());
+        Integer num = addressService.addDistrict(district);
+        if (num < 1) {
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        return rj;
+    }
+
+    /**
+     *  添加市
+     * @param city
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/add_city")
+    public ResponseJson addDistrict(City city) throws Exception {
+        ResponseJson rj =new ResponseJson(200, "添加成功", 200);
+        if(city.getCityId() == null || city.getProvinceId() == null || city.getCity() == null){
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        Integer num = addressService.addCity(city);
+        city.setDivisionCode(city.getCityId());
+        if (num < 1) {
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        return rj;
+    }
+
+    /**
+     *  删除市
+     * @param cityId
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/detect_city")
+    public ResponseJson detect_city(HttpServletRequest request,Integer cityId) throws Exception {
+        ResponseJson rj =new ResponseJson(200, "删除成功", 200);
+        if(cityId == null || cityId.equals("")){
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        Integer num = addressService.delCity(cityId);
+        if (num < 1) {
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        return rj;
+    }
+
+    /**
+     *  删除区
+     * @param districtId
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/del_district")
+    public ResponseJson delDistrict(Integer districtId) throws Exception {
+        ResponseJson rj =new ResponseJson(200, "删除成功", 200);
+        if(districtId == null || districtId.equals("")){
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        Integer num = addressService.delDistrict(districtId);
+        if (num < 1) {
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        return rj;
+    }
+
+    /**
+     *  修改区
+     * @param district
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/updateDistrict")
+    public ResponseJson updateDistrict(District district) throws Exception {
+        ResponseJson rj =new ResponseJson(200, "修改成功", 200);
+        if(district == null || district.getDistrictId() == null){
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        Integer num = addressService.updateDistrict(district);
+        if (num < 1) {
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        return rj;
+    }
+    /**
+     *  修改市
+     * @param city
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/update_city")
+    public ResponseJson update_city(City city) throws Exception {
+        ResponseJson rj =new ResponseJson(200, "修改成功", 200);
+        if(city == null || city.getCityId() == null|| city.getCity() == null){
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        Integer num = addressService.updateCity(city);
+        if (num < 1) {
+            rj.setResultCode(500);
+            rj.setReturnCode(500);
+            return rj;
+        }
+        return rj;
+    }
+
 }

+ 1 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/product/AdminProductController.java

@@ -355,6 +355,7 @@ public class AdminProductController {
         }
         product.setProductAreaRelaList(productAreaRelaList);
 
+
         Integer flag = 0;
         try{
             flag = productService.update(product);

+ 92 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/address/add_city.ftl

@@ -0,0 +1,92 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta http-equiv="Cache-Control" content="no-siteapp" />
+<#include "/base/add_base.ftl">
+    <title>修改备注</title>
+    <style>
+        .my-title{font-weight: 500;padding-left: 15px;position: relative;}
+        .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
+        .my-input{padding: 8px 5px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-input-date{padding: 8px 10px;border:1px solid rgba(0,0,0,.1);width: 80%;background: url(http://s.iamberry.com/images/rili-1.png) 98.5% center no-repeat; background-size:auto 50%;}
+        .input-box{margin: 18px 0;}
+        .input-dic{float: left;margin:5px 10px 0 0;font-size: 12px;}
+        .add-list{list-style-type: none;padding: 10px;background-color: #f5f5f5;width: 60%;float: left;margin: 0;}
+        .add-list>li{margin: 10px 0;}
+        .my-textarea{padding: 5px 10px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-btn-reset{padding: 10px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-btn-submit{padding: 10px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-11.png) right center no-repeat;background-size:auto 100%;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+    </style>
+    <meta name="keywords" content="${path}">
+    <meta name="description" content="H-ui.admin v3.0,是一款由国人开发的轻量级扁平化网站后台模板,完全免费开源的网站后台管理系统模版,适合中小型CMS后台系统。">
+</head>
+<body>
+<article class="page-container">
+    <form class="form form-horizontal" id="form-admin-add">
+        <div class="input-box"   style="text-align:center;">
+            <span class="spanhidth" style="margin-right: 10px;"><span class="c-red">*</span>名称:</span>
+            <input type="text" class="my-input trim_input"  style="width:200px;margin-right: 0px; margin-bottom: 8px;" value="" placeholder="请输入名称" id="city" name="city">
+        </div>
+        <div class="input-box"   style="text-align:center;">
+            <span class="spanhidth" style="margin-right: 10px;"><span class="c-red">*</span>编号:</span>
+            <input type="text" class="my-input trim_input"  style="width:200px;margin-right: 0px; margin-bottom: 8px;" value="" placeholder="可参考其它市编号" id="cityId" name="cityId">
+        </div>
+        <div style="text-align:center;">
+            <input type="hidden" value="${provinceId!''}" id="provinceId" name="provinceId">
+           <button type="button" class="my-btn-submit" onclick="update();">确认提交</button>
+        </div>
+    </form>
+</article>
+<script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
+<script type="text/javascript">
+
+
+    function  update() {
+        var city = $("#city").val();
+        if(city == null || city === ""){
+            layer.msg('名称不能为空',{icon: 5,time:1000});
+            return;
+        }
+        if( city != null){
+            if( city.length > 200 ){
+                layer.msg('名称长度不得大于20个字符',{icon: 5,time:1000});
+                return;
+            }
+        }
+        var cityId = $("#cityId").val();
+        if(cityId == null || cityId === ""){
+            layer.msg('编号不能为空',{icon: 5,time:1000});
+            return;
+        }
+        $.ajax({
+            cache: true,
+            type: "POST",
+            url: "${path}/address/add_city",
+            data:$('#form-admin-add').serialize(),// 你的formid
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    layer.msg('修改成功',{icon: 1,time:1000},function () {
+                        window.parent.location.reload();
+                        var index = parent.layer.getFrameIndex(window.name);
+                        parent.layer.close(index)
+                    });
+                } else {
+                    layer.msg('修改失败',{icon: 5,time:1000});
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+                layer.msg('修改错误',{icon: 5,time:1000});
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 107 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/address/add_district.ftl

@@ -0,0 +1,107 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta http-equiv="Cache-Control" content="no-siteapp" />
+<#include "/base/add_base.ftl">
+    <title>修改备注</title>
+    <style>
+        .my-title{font-weight: 500;padding-left: 15px;position: relative;}
+        .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
+        .my-input{padding: 8px 5px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-input-date{padding: 8px 10px;border:1px solid rgba(0,0,0,.1);width: 80%;background: url(http://s.iamberry.com/images/rili-1.png) 98.5% center no-repeat; background-size:auto 50%;}
+        .input-box{margin: 18px 0;}
+        .input-dic{float: left;margin:5px 10px 0 0;font-size: 12px;}
+        .add-list{list-style-type: none;padding: 10px;background-color: #f5f5f5;width: 60%;float: left;margin: 0;}
+        .add-list>li{margin: 10px 0;}
+        .my-textarea{padding: 5px 10px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-btn-reset{padding: 10px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-btn-submit{padding: 10px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-11.png) right center no-repeat;background-size:auto 100%;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+    </style>
+    <meta name="keywords" content="${path}">
+    <meta name="description" content="H-ui.admin v3.0,是一款由国人开发的轻量级扁平化网站后台模板,完全免费开源的网站后台管理系统模版,适合中小型CMS后台系统。">
+</head>
+<body>
+<article class="page-container">
+    <form class="form form-horizontal" id="form-admin-add">
+        <div class="input-box"   style="text-align:center;">
+            <span class="spanhidth" style="margin-right: 10px;"><span class="c-red">*</span>名称:</span>
+            <input type="text" class="my-input trim_input"  style="width:200px;margin-right: 0px; margin-bottom: 8px;" value="" placeholder="请输入名称" id="district" name="district">
+        </div>
+        <div class="input-box"   style="text-align:center;">
+            <span class="spanhidth" style="margin-right: 10px;"><span class="c-red">*</span>编号:</span>
+            <input type="text" class="my-input trim_input"  style="width:200px;margin-right: 0px; margin-bottom: 8px;" value="" placeholder="可参考其它区编号" id="districtId" name="districtId">
+        </div>
+        <div class="input-box"   style="text-align:center;">
+            <span class="spanhidth" style="margin-right: 10px;"><span class="c-red">*</span>邮编:</span>
+            <input type="text" class="my-input trim_input"  style="width:200px;margin-right: 0px; margin-bottom: 8px;" value="" placeholder="请输入邮编" id="postcode" name="postcode">
+        </div>
+        <div style="text-align:center;">
+            <input type="hidden" value="${cityId!''}" id="cityId" name="cityId">
+            <button type="button" class="my-btn-submit" onclick="update();">确认提交</button>
+        </div>
+    </form>
+</article>
+<script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
+<script type="text/javascript">
+
+
+    function  update() {
+        var district = $("#district").val();
+        if(district == null || district === ""){
+            layer.msg('名称不能为空',{icon: 5,time:1000});
+            return;
+        }
+        if( district != null){
+            if( district.length > 20 ){
+                layer.msg('名称长度不得大于20个字符',{icon: 5,time:1000});
+                return;
+            }
+        }
+        var districtId = $("#districtId").val();
+        if(districtId == null || districtId === ""){
+            layer.msg('编号不能为空',{icon: 5,time:1000});
+            return;
+        }
+        var postcode = $("#postcode").val();
+        if(postcode == null || postcode === ""){
+            layer.msg('邮编不能为空',{icon: 5,time:1000});
+            return;
+        }
+        if( postcode != null){
+            if( postcode.length > 6 ){
+                layer.msg('邮编长度不得大于6个字符',{icon: 5,time:1000});
+                return;
+            }
+        }
+        $.ajax({
+            cache: true,
+            type: "POST",
+            url: "${path}/address/add_district",
+            data:$('#form-admin-add').serialize(),// 你的formid
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    layer.msg('添加成功',{icon: 1,time:1000},function () {
+                        window.parent.location.reload();
+                        var index = parent.layer.getFrameIndex(window.name);
+                        parent.layer.close(index)
+                    });
+                } else {
+                    layer.msg('添加失败',{icon: 5,time:1000});
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+                layer.msg('修改错误',{icon: 5,time:1000});
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 191 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/address/address_list.ftl

@@ -0,0 +1,191 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta http-equiv="Cache-Control" content="no-siteapp" />
+    <link rel="Bookmark" href="/favicon.ico" >
+    <link rel="Shortcut Icon" href="/favicon.ico" />
+<#include "/base/list_base.ftl">
+    <title>地址信息列表</title>
+    <style>
+        html{-webkit-text-size-adjust:none;}
+        *{padding: 0;margin: 0;}
+        .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
+        /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-11.png) right center no-repeat;background-size:auto 100%;}
+        .my-btn-search{border: 1px solid #50a2ea;padding: 1px 25px;height: 32px;background-color: #fff;color: #50a2ea;}
+        .barcodeImg{margin:10px 0px}
+        .table-bg thead th{background-color: #e2f6ff;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+    </style>
+</head>
+<body>
+<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
+    <span class="c-gray en">/</span> 地址管理
+    <span class="c-gray en">/</span> 地址列表
+    <a class="btn radius r" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
+</nav>
+<div class="page-container">
+    <div class="text-c">
+        <form action="${path}/address/listProvinces" method="post">
+            <input type="text" class="my-input trim_input"  style="width:120px;margin-right: 0px; margin-bottom: 8px;" value="${provinceName!''}" placeholder="省名称" id="provinceName" name="provinceName">
+
+            <button type="submit" class="btn" style="background: #50a2ea;border: 1px solid #50a2ea;color: #fff;height: 35px;margin-top: -8px;"><i class="Hui-iconfont">&#xe665;</i> 查询</button>
+
+        </form>
+    </div>
+
+    <div class="mt-20">
+        <table class="table table-border table-bordered table-bg table-hover table-sort">
+            <thead>
+                <tr class="text-c">
+                    <th width="50">省</th>
+                    <th width="50">市</th>
+                    <th width="50">区</th>
+                    <th width="5">操作</th>
+                </tr>
+            </thead>
+        <tbody>
+            <#if page.dataList?? &&  (page.dataList?size > 0) >
+                    <#list page.dataList as province>
+                        <tr class="text-c">
+                            <th>${province.province!''}(${province.divisionCode!''})</th>
+                            <td></td>
+                            <td></td>
+                            <td>
+                                <a style="text-decoration:none" href="javascript:;" title="添加市"
+                                   onclick="add('添加市','${path}/address/to_add_city?provinceId=${province.provinceId!''}','570','450');">
+                                    <i class="Hui-iconfont">添加市</i>
+                                </a>
+                            </td>
+                        </tr>
+                        <#list province.cityList as city>
+                            <tr class="text-c">
+                                <td></td>
+                                <td>${city.city!''}(${city.divisionCode!''})</td>
+                                <td style="width: 30%;">
+                            <select class="my-select" style="width: 200px;" id="district${city.cityId!''}">
+                            <#list city.districtList as district>
+                                <option value="${district.districtId!''}">${district.district!''}(${district.divisionCode!''})</option>
+                            </#list>
+                            </select>
+                                </td>
+                                <td>
+                                    <a style="text-decoration:none" href="javascript:;" title="删除市"
+                                       onclick="detectCity('${city.cityId!''}','${city.city!''}');">
+                                        <i class="Hui-iconfont">删除市</i>
+                                    </a>
+                                    <a style="text-decoration:none" href="javascript:;" title="删除区"
+                                       onclick="detectDistrict('${city.cityId!''}');">
+                                        <i class="Hui-iconfont">删除区</i>
+                                    </a>
+                                    <a style="text-decoration:none" href="javascript:;" title="添加区"
+                                       onclick="add('添加区','${path}/address/to_add_district?cityId=${city.cityId!''}','570','450');">
+                                        <i class="Hui-iconfont">添加区</i>
+                                    </a>
+                                </td>
+                            </tr>
+                        </#list>
+                    </#list>
+            <#else>
+                <tr><td colspan="4" class="td-manage text-c" >暂时没有数据,请添加!</td></tr>
+            </#if>
+        </tbody>
+    </table>
+    </div>
+</div>
+<tfoot>
+<#include "/base/page_util.ftl">
+</tfoot>
+<script>
+
+    /**
+     *跳转到添加产品
+     * @param employee
+     */
+    function to_add() {
+        window.location.href= "${path}/admin/product/to_add_product";
+    }
+
+    /**
+     *跳转到修改产品
+     * @param employee
+     */
+    function to_update(productId) {
+        window.location.href= "${path}/admin/product/to_update_product?productId="+productId;
+    }
+
+
+
+    /*分配快递方式*/
+    function add(title,url,w,h){
+        layer_show(title,url,w,h);
+    }
+
+    /**
+     * 删除市
+     * @param productId
+     * @param state
+     */
+    function detectCity(cityId,cityName) {
+        layer.confirm('确认要删除'+cityName+'吗?',function(index){
+            $.ajax({
+                type: "POST",
+                data: {
+                    "cityId" :cityId
+                },
+                url: "${path}/address/detect_city",
+                async: false,
+                success: function(data){
+                    if (data.returnCode == 200) {
+                        layer.msg('已删除!',{icon: 5,time:1000},function () {
+                            location.replace(location.href);
+                        });
+                    }else{
+                        layer.msg("删除失败!", {icon: 5, time: 3000});
+                    }
+                },
+                error: function(XmlHttpRequest, textStatus, errorThrown){
+                }
+            });
+
+        });
+    }
+    /**
+     * 删除区
+     * @param productId
+     * @param state
+     */
+    function detectDistrict(cityId) {
+        var districtId = $("#district"+cityId).val();
+        var districtName = $("#district"+cityId).find("option:selected").text();
+        layer.confirm('确认要删除'+districtName+'吗?',function(index){
+            $.ajax({
+                type: "POST",
+                data: {
+                    "districtId" :districtId
+                },
+                url: "${path}/address/del_district",
+                async: false,
+                success: function(data){
+                    if (data.returnCode == 200) {
+                        layer.msg('已删除!',{icon: 5,time:1000},function () {
+                            location.replace(location.href);
+                        });
+                    }else{
+                        layer.msg("删除失败!", {icon: 5, time: 3000});
+                    }
+                },
+                error: function(XmlHttpRequest, textStatus, errorThrown){
+                }
+            });
+
+        });
+    }
+</script>
+</body>
+</html>