소스 검색

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

wangxiaoming 5 년 전
부모
커밋
24be1cb7a6
18개의 변경된 파일1200개의 추가작업 그리고 112개의 파일을 삭제
  1. 10 1
      watero-rst-core/src/main/java/com.iamberry.rst.core/address/City.java
  2. 20 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/address/Province.java
  3. 56 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/address/AddressService.java
  4. 53 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/address/AddressServiceImpl.java
  5. 58 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/AddressMapper.java
  6. 98 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/addressMapper.xml
  7. 222 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/address/AddressController.java
  8. 1 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/product/AdminProductController.java
  9. 37 27
      watero-rst-web/src/main/resources/log4j.properties
  10. 92 0
      watero-rst-web/src/main/webapp/WEB-INF/views/address/add_city.ftl
  11. 107 0
      watero-rst-web/src/main/webapp/WEB-INF/views/address/add_district.ftl
  12. 207 0
      watero-rst-web/src/main/webapp/WEB-INF/views/address/address_list.ftl
  13. 83 0
      watero-rst-web/src/main/webapp/WEB-INF/views/address/update_city.ftl
  14. 98 0
      watero-rst-web/src/main/webapp/WEB-INF/views/address/update_district.ftl
  15. 36 66
      watero-rst-web/src/main/webapp/WEB-INF/views/home/pc_index.ftl
  16. 10 10
      watero-rst-web/src/main/webapp/WEB-INF/web.xml
  17. 1 1
      watero-rst-web/src/main/webapp/common/js/customer/customer.js
  18. 11 7
      watero-rst-web/src/main/webapp/common/static/h-ui.admin/js/H-ui.admin.js

+ 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>

+ 222 - 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,217 @@ 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 districtId
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/to_update_district")
+    public ModelAndView to_update_district(@RequestParam("districtId") Integer districtId) {
+        District district = new District();
+        district.setDistrictId(districtId);
+        List<District> districts = addressService.listDistrict(district);
+        return new ModelAndView("address/update_district").addObject("district", districts.get(0));
+    }
+
+    /**
+     * 进入修改市页面
+     * @param cityId
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/to_update_city")
+    public ModelAndView to_update_city(@RequestParam("cityId") Integer cityId) {
+        City city = new City();
+        city.setCityId(cityId);
+        List<City> citys = addressService.listCity(city);
+        return new ModelAndView("address/update_city").addObject("city", citys.get(0));
+    }
+
+    /**
+     *  修改区
+     * @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);

+ 37 - 27
watero-rst-web/src/main/resources/log4j.properties

@@ -1,41 +1,51 @@
-#levels: debug, info, warn, error, fatal
-log4j.rootLogger=info,stdout,infoLog,errorLog,ACT
-
-#\u63A7\u5236\u53F0
+# 整个项目日志级别设置为info,设置四个具体的日志    levels: debug, info, warn, error, fatal
+log4j.rootLogger=info,stdout,infoLog,errorLog,ACT,debugLog
+# stdout具体设置
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.Target=System.out
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m %n
-log4j.appender.stdout.File=D:/log/rst/iamberry_rst_out.log
-
-#\u4E3B\u65E5\u5FD7\u6587\u4EF6
+log4j.appender.stdout.File=D:/log/rst/out.log
+# infoLog具体设置
 log4j.appender.infoLog=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.infoLog.File=D:/log/rst/iamberry_rst_info.log
+log4j.appender.infoLog.File=D:/log/rst/info.log
 log4j.appender.infoLog.Append=true
 log4j.appender.infoLog.Threshold=INFO
 log4j.appender.infoLog.layout=org.apache.log4j.PatternLayout
-log4j.appender.infoLog.layout.ConversionPattern=%d %p [%c] - %m %n 
+log4j.appender.infoLog.layout.ConversionPattern=%d %p [%c] - %m %n
 log4j.appender.infoLog.encoding=UTF-8
-
-#\u9519\u8BEF\u65E5\u5FD7
+# errorLog具体设置
 log4j.appender.errorLog=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.errorLog.File=D:/log/rst/iamberry_rst_error.log
+log4j.appender.errorLog.File=D:/log/rst/error.log
 log4j.appender.errorLog.Append=true
 log4j.appender.errorLog.Threshold=ERROR
 log4j.appender.errorLog.layout=org.apache.log4j.PatternLayout
-log4j.appender.errorLog.layout.ConversionPattern=%d %p [%c] - %m %n 
+log4j.appender.errorLog.layout.ConversionPattern=%d %p [%c] - %m %n
 log4j.appender.errorLog.encoding=UTF-8
-
-#\u663E\u793ASQL\u8BED\u53E5\u90E8\u5206
-log4j.logger.com.iamberry.rst.service=DEBUG
-log4j.logger.java.sql.ResultSet=INFO
-log4j.logger.org.apache=INFO
-log4j.logger.java.sql.Connection=INFO
-log4j.logger.java.sql.Statement=INFO
-log4j.logger.java.sql.PreparedStatement=INFO
-
-# 工作流日志信息
-#log4j.logger.org.activiti.engine.impl.persistence.entity=trace
-#log4j.appender.ACT=org.apache.log4j.ConsoleAppender
-#log4j.appender.ACT.layout=org.apache.log4j.PatternLayout
-#log4j.appender.ACT.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n
+# debugLog具体设置
+log4j.appender.debugLog=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.debugLog.File=D:/log/rst/debug.log
+log4j.appender.debugLog.Append=true
+log4j.appender.debugLog.Threshold=DEBUG
+log4j.appender.debugLog.layout=org.apache.log4j.PatternLayout
+log4j.appender.debugLog.layout.ConversionPattern=%d %p [%c] - %m %n
+log4j.appender.debugLog.encoding=UTF-8
+# ACT具体设置
+log4j.appender.ACT=org.apache.log4j.ConsoleAppender
+log4j.appender.ACT.layout=org.apache.log4j.PatternLayout
+log4j.appender.ACT.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n
+log4j.appender.ACT.Threshold=INFO
+log4j.appender.ACT.File=D:/log/rst/act.log
+# apache日志级别
+log4j.logger.org.apache=DEBUG
+# 工作流日志级别
+log4j.logger.org.activiti=INFO
+# 整个项目代码的日志级别
+log4j.logger.com.iamberry=DEBUG
+# mybatis日志配置,为了方便定位问题,将日志级别设置为DEBUG,方便打印SQL语句
+log4j.logger.com.apache.ibatis=DEBUG
+log4j.logger.com.mybatis=DEBUG
+log4j.logger.java.sql.Connection=DEBUG
+log4j.logger.java.sql.Statement=DEBUG
+log4j.logger.java.sql.PreparedStatement=DEBUG
+log4j.logger.java.sql.ResultSet=DEBUG

+ 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>

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

@@ -0,0 +1,207 @@
+<!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="add('添加区','${path}/address/to_add_district?cityId=${city.cityId!''}','570','450');">
+                                        <i class="Hui-iconfont">添加区</i>
+                                    </a>
+                                    <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_update_city?cityId=${city.cityId!''}','570','450');">
+                                        <i class="Hui-iconfont">修改市</i>
+                                    </a>
+                                    <a style="text-decoration:none" href="javascript:;" title="修改区"
+                                       onclick="to_updateCity(${city.cityId!''});">
+                                        <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;
+    }
+
+    /**
+     *修改区
+     * @param employee
+     */
+    function to_updateCity(cityId) {
+        var districtId = $("#district"+cityId).val();
+        add('修改区','${path}/address/to_update_district?districtId='+districtId,'570','450')
+
+    }
+
+    /*分配快递方式*/
+    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>

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

@@ -0,0 +1,83 @@
+<!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="${city.city!''}" placeholder="请输入名称" id="city" name="city">
+        </div>
+        <div style="text-align:center;">
+            <input type="hidden" value="${city.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 city = $("#city").val();
+        if(city == null || city === ""){
+            layer.msg('名称不能为空',{icon: 5,time:1000});
+            return;
+        }
+        if( city != null){
+            if( city.length > 20 ){
+                layer.msg('名称长度不得大于20个字符',{icon: 5,time:1000});
+                return;
+            }
+        }
+        $.ajax({
+            cache: true,
+            type: "POST",
+            url: "${path}/address/update_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>

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

@@ -0,0 +1,98 @@
+<!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="${district.district!''}" 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="${district.postcode!''}" placeholder="请输入邮编" id="postcode" name="postcode">
+        </div>
+        <div style="text-align:center;">
+            <input type="hidden" value="${district.districtId!''}" id="districtId" name="districtId">
+            <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 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/updateDistrict",
+            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>

+ 36 - 66
watero-rst-web/src/main/webapp/WEB-INF/views/home/pc_index.ftl

@@ -83,10 +83,10 @@
 <section class="Hui-article-box">
     <div id="Hui-tabNav" class="Hui-tabNav hidden-xs">
         <div class="Hui-tabNav-wp">
-            <ul id="min_title_list" class="acrossTab cl">
-                <li class="active">
-                    <span title="我的桌面" data-href="welcome.html">我的桌面</span>
-                    <em></em></li>
+            <ul id="min_title_list" class="acrossTab cl" style="width: 100%">
+                <li class="active" style="padding-right: 15px;padding-left: 15px;">
+                    <span title="我的桌面" data-href="welcome.html">我的桌面</span><em></em>
+                </li>
             </ul>
         </div>
         <div class="Hui-tabNav-more btn-group"><a id="js-tabNav-prev" class="btn radius btn-default size-S" href="javascript:;"><i class="Hui-iconfont">&#xe6d4;</i></a><a id="js-tabNav-next" class="btn radius btn-default size-S" href="javascript:;"><i class="Hui-iconfont">&#xe6d7;</i></a></div>
@@ -101,10 +101,10 @@
     <div id="selectTodo" class="menu_dropdown bk_2" style="display:none">
         <div>
             <div>订单</div>
-            <a onclick="toOrserList('${path}/admin/salesOrder/list_order_page?salesStatus=0',1,'')"  ><span>(</span><span id="toBeConfirmedOrder" style="color: #f00">0</span><span>)待确认订单数量</span></a><br>
-            <a onclick="toOrserList('${path}/admin/salesOrder/list_order_page?salesShippingStatus=0',1,'')"  ><span>(</span><span id="toBeAnnounced" style="color: #f00">0</span><span>)待通知配货数量</span></a><br>
-            <a onclick="toOrserList('${path}/admin/salesOrder/list_order_page?salesShippingStatus=11',1,'')"  ><span>(</span><span id="toBeDelivered" style="color: #f00">0</span><span>)待发货数量</span></a><br>
-            <a onclick="toOrserList('${path}/admin/salesOrder/list_order_page?1=1',1,'today')"  ><span>(</span><span id="allToDayOrder" style="color: #f00">0</span><span>)今日订单总数</span></a><br>
+            <a onclick="toOrserList('${path}/admin/salesOrder/list_order_page?salesStatus=0',1,'',this)"  ><span>(</span><span id="toBeConfirmedOrder" style="color: #f00">0</span><span>)待确认订单数量</span></a><br>
+            <a onclick="toOrserList('${path}/admin/salesOrder/list_order_page?salesShippingStatus=0',1,'',this)"  ><span>(</span><span id="toBeAnnounced" style="color: #f00">0</span><span>)待通知配货数量</span></a><br>
+            <a onclick="toOrserList('${path}/admin/salesOrder/list_order_page?salesShippingStatus=11',1,'',this)"  ><span>(</span><span id="toBeDelivered" style="color: #f00">0</span><span>)待发货数量</span></a><br>
+            <a onclick="toOrserList('${path}/admin/salesOrder/list_order_page?1=1',1,'today',this)"  ><span>(</span><span id="allToDayOrder" style="color: #f00">0</span><span>)今日订单总数</span></a><br>
 
             <#--<div>客诉</div>-->
             <#--<a onclick="toOrserList('${path}/admin/customer/select_customer_list?customerIsSolve=2&isFirst=1',2,'')"  ><span>(</span><span id="notSolvedCustomer" style="color: #f00">0</span><span>)未解决客诉数量</span></a><br>-->
@@ -125,32 +125,6 @@
 <script type="text/javascript" src="${path}/common/js/index/index.js"></script>
 <script type="text/javascript" src="${path}/common/lib/layer/2.4/layer.js"></script>
 <script>
-    $.ajax({
-        "type" : "post",
-        "url" : "${path}/admin/customer/selectNumberBacklog",
-        /*"url" : "/admin/order/selectTodo",*/
-        "dataType" : "json",
-        async:false,
-        "success" : function(data) {
-            if(data.status){
-                $("#toBeConfirmedOrder").html(data.data.toBeConfirmedOrder);
-                $("#toBeAnnounced").html(data.data.toBeAnnounced);
-                $("#toBeDelivered").html(data.data.toBeDelivered);
-                $("#allToDayOrder").html(data.data.allToDayOrder);
-
-//                $("#notSolvedCustomer").html(data.data.notSolvedCustomer);
-//                $("#amountReceivedCustomer").html(data.data.amountReceivedCustomer);
-//                $("#noEntryCustomer").html(data.data.noEntryCustomer);
-//                $("#notSendCustomer").html(data.data.notSendCustomer);
-                if(data.data.adminDept == 3){
-                    toDoShow();
-                }
-            }
-        },
-        "error":function(data){
-            alert("操作失败,请联系管理员!");
-        }
-    });
     function toDoShow(){
         //页面层
         layer.open({
@@ -162,46 +136,42 @@
             shade: 0
         });
     }
-
-
-    function toOrserList(url,type,type2){
+    function toOrserList(url,type,type2, obj){
         var titleText = "";
-        if(type == 1){
+        if (type === 1) {
             titleText = "订单列表"
-        }else if(type == 2){
+        } else {
             titleText = "客诉列表";
         }
-
-        //去除其它选项选中样式
-        $("#min_title_list li").removeClass("active");
-        //判断是否已存在订单列表选项卡
-        /*alert($("#min_title_list li span").text());*/
-        var bolean = true;
-        $(function() {
-            $("#min_title_list li").each(function() {
-                if(($(this).find("span").text()) == titleText){
-                    $(this).addClass("active");
-                    bolean = false;
-                }
-            })
-
-        });
-        if(bolean){
-            //新增一个选项卡标题
-            $("#min_title_list").append('<li id="orderTitleId" class="active"><span data-href="/admin/order/selectShopOrder">'+ titleText +'</span><i></i><em></em></li>')
-            //获取前面ul个数计算新增的选项卡位置
-            var left = $("#min_title_list>li").length*133;//获取前面ul位置长度
-            $("#min_title_list").css("width",left+"px");
-        }
-        //隐藏其它选项卡内容
-        $("#iframe_box .show_iframe").css("display","none");
-        //新增选项卡内容
-        $("#iframe_box").append('<div class="show_iframe">' +
-                '<div style="display: none" class="loading"></div><iframe id="indexframe" scrolling="yes" frameborder="0" src="'+url+'"></iframe></div>');
+        $(obj).attr("data-href", url).attr("data-title", titleText);
+        Hui_admin_tab(obj);
     }
     $(document).on('click', ' .Hui-aside .menu_dropdown dd li', function() {
         $(this).addClass("active").siblings().removeClass("active");
     });
+    $(function() {
 
+        $.ajax({
+            "type" : "post",
+            "url" : "${path}/admin/customer/selectNumberBacklog",
+            /*"url" : "/admin/order/selectTodo",*/
+            "dataType" : "json",
+            async:false,
+            "success" : function(data) {
+                if(data.status){
+                    $("#toBeConfirmedOrder").html(data.data.toBeConfirmedOrder);
+                    $("#toBeAnnounced").html(data.data.toBeAnnounced);
+                    $("#toBeDelivered").html(data.data.toBeDelivered);
+                    $("#allToDayOrder").html(data.data.allToDayOrder);
+                    if(data.data.adminDept === 3){
+                        toDoShow();
+                    }
+                }toDoShow();
+            },
+            "error":function(data){
+                alert("操作失败,请联系管理员!");
+            }
+        });
+    });
 </script>
 </html>

+ 10 - 10
watero-rst-web/src/main/webapp/WEB-INF/web.xml

@@ -28,16 +28,6 @@
     <listener-class>com.iamberry.common.web.ApplicationInitListener</listener-class>
   </listener>
 
-  <!-- Shiro配置 -->
-  <filter>
-    <filter-name>shiroFilter</filter-name>
-    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
-  </filter>
-  <filter-mapping>
-    <filter-name>shiroFilter</filter-name>
-    <url-pattern>/*</url-pattern>
-  </filter-mapping>
-
   <!--SpringMVC配置-->
   <servlet>
     <servlet-name>springDispatcherServlet</servlet-name>
@@ -53,6 +43,16 @@
     <url-pattern>/</url-pattern>
   </servlet-mapping>
 
+  <!-- Shiro配置 -->
+  <filter>
+    <filter-name>shiroFilter</filter-name>
+    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
+  </filter>
+  <filter-mapping>
+    <filter-name>shiroFilter</filter-name>
+    <url-pattern>/*</url-pattern>
+  </filter-mapping>
+
   <!-- 配置默认访问SpringMVC -->
   <servlet-mapping>
     <servlet-name>springDispatcherServlet</servlet-name>

+ 1 - 1
watero-rst-web/src/main/webapp/common/js/customer/customer.js

@@ -344,7 +344,7 @@ function initProduceType(){
                 var check = "checked";
                 for(var i=0;i<data.returnMsg.productTypeList.length;i++){
                     var produce = data.returnMsg.productTypeList[i];
-                    html += ' <div class="radio-box"  style="width: 180px;">' +
+                    html += ' <div class="radio-box"  style="width: 190px;">' +
                         '<input type="radio" class="single_loading"  id="produce-type-'+ i +'" name="typeId" typeCompany="'+ produce.typeCompany +'" complaintType="'+ produce.complaintType +'"  datatype="*" value="'+ produce.typeId +'"  '+ check +' nullmsg="请选择产品类型!" >' +
                         ' <label for="produce-type-'+ i +'">'+ produce.typeName +'</label>' +
                         ' </div>';

+ 11 - 7
watero-rst-web/src/main/webapp/common/static/h-ui.admin/js/H-ui.admin.js

@@ -48,7 +48,10 @@ function getskincookie(){
 		$("#skin").attr("href",hrefRes);
 	}
 }
-/*菜单导航*/
+/**
+ * 菜单导航
+ * @return {boolean}
+ */
 function Hui_admin_tab(obj){
 	var bStop = false,
 		bStopIndex = 0,
@@ -58,20 +61,22 @@ function Hui_admin_tab(obj){
 		show_navLi = topWindow.find("#min_title_list li"),
 		iframe_box = topWindow.find("#iframe_box");
 	//console.log(topWindow);
-	if(!href||href==""){
+	if(!href||href===""){
 		alert("data-href不存在,v2.5版本之前用_href属性,升级后请改为data-href属性");
 		return false;
 	}if(!title){
 		alert("v2.5版本之后使用data-title属性");
 		return false;
 	}
-	if(title==""){
+	if(title===""){
 		alert("data-title属性不能为空");
 		return false;
 	}
 	show_navLi.each(function() {
-		if($(this).find('span').attr("data-href")==href){
-			bStop=true;
+        var temp = href.split("?")[0];
+        var targ = $(this).find('span').attr("data-href").split("?")[0];
+        if(targ===temp){
+			bStop = true;
 			bStopIndex=show_navLi.index($(this));
 			return false;
 		}
@@ -79,8 +84,7 @@ function Hui_admin_tab(obj){
 	if(!bStop){
 		creatIframe(href,title);
 		min_titleList();
-	}
-	else{
+	} else{
 		show_navLi.removeClass("active").eq(bStopIndex).addClass("active");			
 		iframe_box.find(".show_iframe").hide().eq(bStopIndex).show().find("iframe").attr("src",href);
 	}