Bläddra i källkod

网页开发

Signed-off-by: anderx <312518615@qq.com>
anderx 6 år sedan
förälder
incheckning
9068ba9d81

+ 1 - 5
src/main/java/com/kede/admin/controller/AdminSystemController.java

@@ -35,11 +35,7 @@ public class AdminSystemController extends BaseApiController {
 	@RequestMapping(value = "/updateAdmin", method = RequestMethod.POST)
 	public Result updateAdminInfo(Admin admin, String usedPwd) {
 		Result res = new Result();
-		
-		if (StringUtils.isBlank(admin.getId())) {
-			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户id"));
-			return res;
-		}
+		admin.setId(TokenManager.getAdminId());
 		if (!TokenManager.getAdminId().equals(admin.getId())) {
 			res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "当前用户已注册!"));
 			return res;

+ 10 - 0
src/main/java/com/kede/banners/bo/InputBannerDetails.java

@@ -3,5 +3,15 @@ package com.kede.banners.bo;
 import com.kede.common.model.BannerDetails;
 
 public class InputBannerDetails extends BannerDetails {
+	public InputBannerDetails() {};
+	/**
+	 * 
+	 * @param display 显示 0 否 1是
+	 * @param position 位置  0 首页 1产品中心 2战略合作 3服务客户 4新闻动态 5关于科德 6联系我们  
+	 */
+	public InputBannerDetails(int display, int position) {
+		this.setDisplay(display);
+		this.setPosition(position);
+	}
 
 }

+ 134 - 4
src/main/java/com/kede/common/controller/WebpageController.java

@@ -1,16 +1,43 @@
 package com.kede.common.controller;
 
 
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.view.RedirectView;
+
+import com.kede.banners.bo.InputBannerDetails;
+import com.kede.banners.bo.OutBannerDetails;
+import com.kede.banners.service.BannersService;
+import com.kede.common.constant.AFTConstants;
+import com.kede.common.utils.DateUtils;
+import com.kede.customerCase.bo.InputCustomerCase;
+import com.kede.customerCase.service.CustomerCaseService;
+import com.kede.news.bo.InputNews;
+import com.kede.news.bo.OutNews;
+import com.kede.news.service.NewsService;
+import com.kede.organization.bo.InputOrganization;
+import com.kede.organization.service.OrganizationService;
 
 
 @Controller
 public class WebpageController extends BaseController {
+	
+	@Resource
+	private BannersService	bannersService;
+	@Resource
+	private NewsService newsService;
+	@Resource
+	private CustomerCaseService customerCaseService; 
+	@Resource
+	private OrganizationService	organizationService;
 
 	@RequestMapping(value = "/admin/login", method = RequestMethod.GET)
 	public ModelAndView adminLogin(HttpServletRequest request, ModelAndView modelview) {
@@ -24,15 +51,118 @@ public class WebpageController extends BaseController {
 		return modelview;
 	}
 	
+	/**
+	 * 关于科德
+	 * @param request
+	 * @param modelview
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	@RequestMapping(value = "/portal/aboutKede", method = RequestMethod.GET)
+	public ModelAndView portalAboutKede(HttpServletRequest request, ModelAndView modelview) {
+		modelview.setViewName("/portal/aboutKede");
+		InputBannerDetails ibd=new InputBannerDetails(1,5);
+		OutBannerDetails o=new OutBannerDetails();
+		List<OutBannerDetails> list=(List<OutBannerDetails>) bannersService.listBannersDetails(ibd, 1, 1).getList();
+		o=list.size()>0?list.get(0):null;
+		modelview.addObject("banners",o);
+		return modelview;
+	}
+	
+	/**
+	 * 联系我们
+	 * @param request
+	 * @param modelview
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	@RequestMapping(value = "/portal/contactUs", method = RequestMethod.GET)
+	public ModelAndView portalContactUs(HttpServletRequest request, ModelAndView modelview) {
+		modelview.setViewName("/portal/contactUs");
+		InputBannerDetails ibd=new InputBannerDetails(1,6);
+		OutBannerDetails o=new OutBannerDetails();
+		List<OutBannerDetails> list=(List<OutBannerDetails>) bannersService.listBannersDetails(ibd, 1, 1).getList();
+		o=list.size()>0?list.get(0):null;
+		modelview.addObject("banners",o);
+		return modelview;
+	}
+	/**
+	 * 新闻详情
+	 * @param request
+	 * @param modelview
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	@RequestMapping(value = "/portal/newsDetails", method = RequestMethod.GET)
+	public ModelAndView portalNewsDetails(HttpServletRequest request, ModelAndView modelview,Integer id) {
+		modelview.setViewName("/portal/news/newsDetails");
+		InputBannerDetails ibd=new InputBannerDetails(1,4);
+		OutBannerDetails o=new OutBannerDetails();
+		List<OutBannerDetails> list=(List<OutBannerDetails>) bannersService.listBannersDetails(ibd, 1, 1).getList();
+		o=list.size()>0?list.get(0):null;
+		modelview.addObject("banners",o);
+		modelview.addObject("news",newsService.selectNews(new InputNews(id)));
+		return modelview;
+	}
+	
 	@RequestMapping(value = "/", method = RequestMethod.GET)
-	public ModelAndView index(HttpServletRequest request, ModelAndView modelview) {
-		modelview.setViewName("/protal/index");
+	public ModelAndView home(HttpServletRequest request, ModelAndView modelview) {
+		RedirectView rv = new RedirectView();
+		modelview.setViewName("/portal/index");
+		rv.setExposeModelAttributes(false);
+		modelview.setView(rv);
 		return modelview;
 	}
-	@RequestMapping(value = "/protal/index", method = RequestMethod.GET)
+	@SuppressWarnings("unchecked")
+	@RequestMapping(value = "/portal/index", method = RequestMethod.GET)
 	public ModelAndView protalIndex(HttpServletRequest request, ModelAndView modelview) {
-		modelview.setViewName("/protal/index");
+		modelview.setViewName("/portal/index");
+		//获取轮播图
+		InputBannerDetails ibd=new InputBannerDetails(1,0);
+		modelview.addObject("banners",bannersService.listBannersDetails(ibd, 5, 1).getList());
+		//获取服务客户20个
+		InputCustomerCase ic=new InputCustomerCase();
+		ic.setReleaseStatus(1);
+		ic.setStatus(1);
+		modelview.addObject("clist1",customerCaseService.listCustomerCase(ic, 10, 1).getList());
+		modelview.addObject("clist2",customerCaseService.listCustomerCase(ic, 10, 2).getList());
+		//获取公司新闻1个与3个,获取行业新闻3个
+		InputNews in=new InputNews();
+		in.setType(0);
+		in.setStatus(1);
+		List<OutNews>list=(List<OutNews>) newsService.listnewsDetails(in, 4, 1).getList();
+		OutNews gs1=new OutNews();
+		List<OutNews> gs2=new ArrayList<>();
+		for (int i = 0; i < list.size(); i++) {
+			list.get(i).setReleaseTimeConvert(DateUtils.formatDate(list.get(i).getReleaseTime(), AFTConstants.MMDD));
+			list.get(i).setContent(displayRestriction(list.get(i).getContent()));
+			if (i==1) {
+				gs1=list.get(i);
+			}else {
+				gs2.add(list.get(i));
+			}
+		}
+		in.setType(1);
+		modelview.addObject("gs1", gs1);
+		modelview.addObject("gs2", gs2);
+		List<OutNews>hy=(List<OutNews>) newsService.listnewsDetails(in, 3, 1).getList();
+		for (OutNews o : hy) {
+			o.setReleaseTimeConvert(DateUtils.formatDate(o.getReleaseTime(), AFTConstants.MMDD));
+			o.setContent(displayRestriction(o.getContent()));
+		}
+		modelview.addObject("hy", hy);
+		//获取战略合作16个
+		InputOrganization ir=new InputOrganization();
+		ir.setReleaseStatus(1);
+		modelview.addObject("orgList1", organizationService.listOrganization(ir, 8, 1).getList());
+		modelview.addObject("orgList2", organizationService.listOrganization(ir, 8, 2).getList());
 		return modelview;
 	}
+
+
+	public String displayRestriction(String str) {
+		if(str.length()>24)str=str.substring(0, 24)+"...";
+		return str;
+	}
 	
 }

+ 11 - 11
src/main/java/com/kede/common/dao/OrganizationMapper.java

@@ -11,67 +11,67 @@ public interface OrganizationMapper {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	long countByExample(OrganizationExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	int deleteByExample(OrganizationExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	int deleteByPrimaryKey(Integer id);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	int insert(Organization record);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	int insertSelective(Organization record);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	List<Organization> selectByExample(OrganizationExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	Organization selectByPrimaryKey(Integer id);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	int updateByExampleSelective(@Param("record") Organization record, @Param("example") OrganizationExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	int updateByExample(@Param("record") Organization record, @Param("example") OrganizationExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	int updateByPrimaryKeySelective(Organization record);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	int updateByPrimaryKey(Organization record);
 

+ 2 - 2
src/main/java/com/kede/common/mapper/CustomerCaseMapper.xml

@@ -365,14 +365,14 @@
   </update>
   
   <select id="selectByid" resultType="com.kede.customerCase.bo.outCustomerCase">
-   select id,name,status, release_status releaseStatus,province,region,sort,
+   select id,name,status, release_status releaseStatus,province,region,sort,picture_url pictureUrl,
    date_format(release_time,'%Y-%m-%d %H:%i:%S') as releaseTimeConvert,
    date_format(create_time,'%Y-%m-%d %H:%i:%S') as createTimeConvert
     from customer_case where id = #{id,jdbcType=INTEGER}
   </select>
   
   <select id="findCustomerCaseList" resultType="com.kede.customerCase.bo.outCustomerCase">
-     select id,name,status, release_status releaseStatus,province,region,sort,
+   select id,name,status, release_status releaseStatus,province,region,sort,picture_url pictureUrl,
    date_format(release_time,'%Y-%m-%d %H:%i:%S') as releaseTimeConvert,
    date_format(create_time,'%Y-%m-%d %H:%i:%S') as createTimeConvert
     from customer_case where 1=1

+ 10 - 4
src/main/java/com/kede/common/mapper/NewsMapper.xml

@@ -458,14 +458,14 @@
   
   <select id="selectByid" resultType="com.kede.news.bo.OutNews">
    select id, title, publisher, type, picture_url pictureUrl, status, sort, release_status releaseStatus,content,
-    date_format(create_time,'%Y-%m-%d %H:%i:%S') as createTimeConvert, release_time releaseTime,
-    date_format(release_time,'%Y-%m-%d %H:%i:%S') as releaseTimeConvert 
+  	date_format(create_time,'%Y-%m-%d %H:%i:%S') as createTimeConvert,create_time createTime,  
+    date_format(release_time,'%Y-%m-%d %H:%i:%S') as releaseTimeConvert ,release_time releaseTime
     from news where id = #{id,jdbcType=INTEGER}
   </select>
   <select id="findNewsList" resultType="com.kede.news.bo.OutNews">
   select id, title, publisher, type, picture_url pictureUrl, status, sort, release_status releaseStatus,content,
-  	date_format(create_time,'%Y-%m-%d %H:%i:%S') as createTimeConvert,release_time releaseTime,  
-    date_format(release_time,'%Y-%m-%d %H:%i:%S') as releaseTimeConvert 
+  	date_format(create_time,'%Y-%m-%d %H:%i:%S') as createTimeConvert,create_time createTime,  
+    date_format(release_time,'%Y-%m-%d %H:%i:%S') as releaseTimeConvert ,release_time releaseTime
     from news where 1=1
     <if test="n.id!=null">
     and id = #{n.id}
@@ -476,6 +476,9 @@
     <if test="n.releaseStatus!=null">
     and release_status = #{n.releaseStatus}
     </if>
+    <if test="n.type!=null">
+    and type = #{n.type}
+    </if>
     order by releaseStatus desc,sort desc,create_time desc
     <if test="page_sql!=null">
 			${page_sql}
@@ -494,6 +497,9 @@
     <if test="n.releaseStatus!=null">
     and release_status = #{n.releaseStatus}
     </if>
+    <if test="n.type!=null">
+    and type = #{n.type}
+    </if>
   </select>
   
 </mapper>

+ 37 - 22
src/main/java/com/kede/common/mapper/OrganizationMapper.xml

@@ -5,7 +5,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     <id column="id" jdbcType="INTEGER" property="id" />
     <result column="name" jdbcType="VARCHAR" property="name" />
@@ -14,12 +14,13 @@
     <result column="release_time" jdbcType="TIMESTAMP" property="releaseTime" />
     <result column="sort" jdbcType="INTEGER" property="sort" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="status" jdbcType="INTEGER" property="status" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     <where>
       <foreach collection="oredCriteria" item="criteria" separator="or">
@@ -53,7 +54,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     <where>
       <foreach collection="example.oredCriteria" item="criteria" separator="or">
@@ -87,15 +88,15 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
-    id, name, picture_url, release_status, release_time, sort, create_time
+    id, name, picture_url, release_status, release_time, sort, create_time, status
   </sql>
   <select id="selectByExample" parameterType="com.kede.common.model.OrganizationExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     select
     <if test="distinct">
@@ -114,7 +115,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     select 
     <include refid="Base_Column_List" />
@@ -125,7 +126,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     delete from organization
     where id = #{id,jdbcType=INTEGER}
@@ -134,7 +135,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     delete from organization
     <if test="_parameter != null">
@@ -145,20 +146,20 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     insert into organization (id, name, picture_url, 
       release_status, release_time, sort, 
-      create_time)
+      create_time, status)
     values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{pictureUrl,jdbcType=VARCHAR}, 
       #{releaseStatus,jdbcType=INTEGER}, #{releaseTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}, 
-      #{createTime,jdbcType=TIMESTAMP})
+      #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER})
   </insert>
   <insert id="insertSelective" parameterType="com.kede.common.model.Organization">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     insert into organization
     <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -183,6 +184,9 @@
       <if test="createTime != null">
         create_time,
       </if>
+      <if test="status != null">
+        status,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -206,13 +210,16 @@
       <if test="createTime != null">
         #{createTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="status != null">
+        #{status,jdbcType=INTEGER},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.kede.common.model.OrganizationExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     select count(*) from organization
     <if test="_parameter != null">
@@ -223,7 +230,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     update organization
     <set>
@@ -248,6 +255,9 @@
       <if test="record.createTime != null">
         create_time = #{record.createTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="record.status != null">
+        status = #{record.status,jdbcType=INTEGER},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -257,7 +267,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     update organization
     set id = #{record.id,jdbcType=INTEGER},
@@ -266,7 +276,8 @@
       release_status = #{record.releaseStatus,jdbcType=INTEGER},
       release_time = #{record.releaseTime,jdbcType=TIMESTAMP},
       sort = #{record.sort,jdbcType=INTEGER},
-      create_time = #{record.createTime,jdbcType=TIMESTAMP}
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      status = #{record.status,jdbcType=INTEGER}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -275,7 +286,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     update organization
     <set>
@@ -297,6 +308,9 @@
       <if test="createTime != null">
         create_time = #{createTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="status != null">
+        status = #{status,jdbcType=INTEGER},
+      </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
@@ -304,7 +318,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Fri Dec 27 09:59:42 CST 2019.
+      This element was generated on Mon Dec 30 09:44:39 CST 2019.
     -->
     update organization
     set name = #{name,jdbcType=VARCHAR},
@@ -312,17 +326,18 @@
       release_status = #{releaseStatus,jdbcType=INTEGER},
       release_time = #{releaseTime,jdbcType=TIMESTAMP},
       sort = #{sort,jdbcType=INTEGER},
-      create_time = #{createTime,jdbcType=TIMESTAMP}
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      status = #{status,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
   <select id="selectByid" resultType="com.kede.organization.bo.OutOrganization">
-    select id,name,picture_url pictureUrl,release_status releaseStatus,sort,
+    select id,name,picture_url pictureUrl,release_status releaseStatus,sort,status,
     date_format(create_time,'%Y-%m-%d %H:%i:%S') as createTimeConvert,
   	date_format(release_time,'%Y-%m-%d %H:%i:%S') as releaseTimeConvert 
     from organization where id = #{id,jdbcType=INTEGER}
   </select>
   <select id="findOrganizationList" resultType="com.kede.organization.bo.OutOrganization">
-    select id,name,picture_url pictureUrl,release_status releaseStatus,sort,
+    select id,name,picture_url pictureUrl,release_status releaseStatus,sort,status,
     date_format(create_time,'%Y-%m-%d %H:%i:%S') as createTimeConvert,
   	date_format(release_time,'%Y-%m-%d %H:%i:%S') as releaseTimeConvert 
     from organization where 1=1

+ 44 - 21
src/main/java/com/kede/common/model/Organization.java

@@ -6,44 +6,49 @@ public class Organization {
 
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column organization.id
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	private Integer id;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column organization.name
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	private String name;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column organization.picture_url
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	private String pictureUrl;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column organization.release_status
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	private Integer releaseStatus;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column organization.release_time
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	private Date releaseTime;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column organization.sort
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	private Integer sort;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column organization.create_time
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	private Date createTime;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column organization.status
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
+	 */
+	private Integer status;
 
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column organization.id
 	 * @return  the value of organization.id
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public Integer getId() {
 		return id;
@@ -52,7 +57,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column organization.id
 	 * @param id  the value for organization.id
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public void setId(Integer id) {
 		this.id = id;
@@ -61,7 +66,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column organization.name
 	 * @return  the value of organization.name
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public String getName() {
 		return name;
@@ -70,7 +75,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column organization.name
 	 * @param name  the value for organization.name
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public void setName(String name) {
 		this.name = name;
@@ -79,7 +84,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column organization.picture_url
 	 * @return  the value of organization.picture_url
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public String getPictureUrl() {
 		return pictureUrl;
@@ -88,7 +93,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column organization.picture_url
 	 * @param pictureUrl  the value for organization.picture_url
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public void setPictureUrl(String pictureUrl) {
 		this.pictureUrl = pictureUrl;
@@ -97,7 +102,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column organization.release_status
 	 * @return  the value of organization.release_status
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public Integer getReleaseStatus() {
 		return releaseStatus;
@@ -106,7 +111,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column organization.release_status
 	 * @param releaseStatus  the value for organization.release_status
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public void setReleaseStatus(Integer releaseStatus) {
 		this.releaseStatus = releaseStatus;
@@ -115,7 +120,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column organization.release_time
 	 * @return  the value of organization.release_time
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public Date getReleaseTime() {
 		return releaseTime;
@@ -124,7 +129,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column organization.release_time
 	 * @param releaseTime  the value for organization.release_time
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public void setReleaseTime(Date releaseTime) {
 		this.releaseTime = releaseTime;
@@ -133,7 +138,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column organization.sort
 	 * @return  the value of organization.sort
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public Integer getSort() {
 		return sort;
@@ -142,7 +147,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column organization.sort
 	 * @param sort  the value for organization.sort
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public void setSort(Integer sort) {
 		this.sort = sort;
@@ -151,7 +156,7 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column organization.create_time
 	 * @return  the value of organization.create_time
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public Date getCreateTime() {
 		return createTime;
@@ -160,9 +165,27 @@ public class Organization {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column organization.create_time
 	 * @param createTime  the value for organization.create_time
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public void setCreateTime(Date createTime) {
 		this.createTime = createTime;
 	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column organization.status
+	 * @return  the value of organization.status
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
+	 */
+	public Integer getStatus() {
+		return status;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column organization.status
+	 * @param status  the value for organization.status
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
+	 */
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
 }

+ 76 - 16
src/main/java/com/kede/common/model/OrganizationExample.java

@@ -7,23 +7,23 @@ import java.util.List;
 public class OrganizationExample {
     /**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	protected String orderByClause;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	protected boolean distinct;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	protected List<Criteria> oredCriteria;
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public OrganizationExample() {
 		oredCriteria = new ArrayList<Criteria>();
@@ -31,7 +31,7 @@ public class OrganizationExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public void setOrderByClause(String orderByClause) {
 		this.orderByClause = orderByClause;
@@ -39,7 +39,7 @@ public class OrganizationExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public String getOrderByClause() {
 		return orderByClause;
@@ -47,7 +47,7 @@ public class OrganizationExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public void setDistinct(boolean distinct) {
 		this.distinct = distinct;
@@ -55,7 +55,7 @@ public class OrganizationExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public boolean isDistinct() {
 		return distinct;
@@ -63,7 +63,7 @@ public class OrganizationExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public List<Criteria> getOredCriteria() {
 		return oredCriteria;
@@ -71,7 +71,7 @@ public class OrganizationExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public void or(Criteria criteria) {
 		oredCriteria.add(criteria);
@@ -79,7 +79,7 @@ public class OrganizationExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public Criteria or() {
 		Criteria criteria = createCriteriaInternal();
@@ -89,7 +89,7 @@ public class OrganizationExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public Criteria createCriteria() {
 		Criteria criteria = createCriteriaInternal();
@@ -101,7 +101,7 @@ public class OrganizationExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	protected Criteria createCriteriaInternal() {
 		Criteria criteria = new Criteria();
@@ -110,7 +110,7 @@ public class OrganizationExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public void clear() {
 		oredCriteria.clear();
@@ -120,7 +120,7 @@ public class OrganizationExample {
 
 	/**
 	 * This class was generated by MyBatis Generator. This class corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	protected abstract static class GeneratedCriteria {
 		protected List<Criterion> criteria;
@@ -602,11 +602,71 @@ public class OrganizationExample {
 			addCriterion("create_time not between", value1, value2, "createTime");
 			return (Criteria) this;
 		}
+
+		public Criteria andStatusIsNull() {
+			addCriterion("status is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andStatusIsNotNull() {
+			addCriterion("status is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andStatusEqualTo(Integer value) {
+			addCriterion("status =", value, "status");
+			return (Criteria) this;
+		}
+
+		public Criteria andStatusNotEqualTo(Integer value) {
+			addCriterion("status <>", value, "status");
+			return (Criteria) this;
+		}
+
+		public Criteria andStatusGreaterThan(Integer value) {
+			addCriterion("status >", value, "status");
+			return (Criteria) this;
+		}
+
+		public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
+			addCriterion("status >=", value, "status");
+			return (Criteria) this;
+		}
+
+		public Criteria andStatusLessThan(Integer value) {
+			addCriterion("status <", value, "status");
+			return (Criteria) this;
+		}
+
+		public Criteria andStatusLessThanOrEqualTo(Integer value) {
+			addCriterion("status <=", value, "status");
+			return (Criteria) this;
+		}
+
+		public Criteria andStatusIn(List<Integer> values) {
+			addCriterion("status in", values, "status");
+			return (Criteria) this;
+		}
+
+		public Criteria andStatusNotIn(List<Integer> values) {
+			addCriterion("status not in", values, "status");
+			return (Criteria) this;
+		}
+
+		public Criteria andStatusBetween(Integer value1, Integer value2) {
+			addCriterion("status between", value1, value2, "status");
+			return (Criteria) this;
+		}
+
+		public Criteria andStatusNotBetween(Integer value1, Integer value2) {
+			addCriterion("status not between", value1, value2, "status");
+			return (Criteria) this;
+		}
 	}
 
 	/**
 	 * This class was generated by MyBatis Generator. This class corresponds to the database table organization
-	 * @mbg.generated  Fri Dec 27 09:59:42 CST 2019
+	 * @mbg.generated  Mon Dec 30 09:44:39 CST 2019
 	 */
 	public static class Criterion {
 		private String condition;

+ 0 - 6
src/main/java/com/kede/customerCase/controller/AdminCustomerCaseApiController.java

@@ -44,12 +44,6 @@ public class AdminCustomerCaseApiController extends BaseApiController {
 	@RequestMapping(value = "/updateCustomerCase", method = RequestMethod.POST)
 	public Result updateCustomerCase(InputCustomerCase ic) {
 		Result res =new Result();
-		if(StringUtils.isBlank(ic.getPictureUrl())) {
-			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"图片","图片"));
-			return res;
-		}
-		if (!res.getError().isEmpty()) return res;
-		
 		res.data(customerCaseService.updateCustomerCase(ic));
 		return res;
 	}

+ 6 - 0
src/main/java/com/kede/news/bo/InputNews.java

@@ -5,6 +5,12 @@ import com.kede.common.model.News;
 public class InputNews extends News{
 	private String releaseTimes;
 
+	public InputNews() {
+	}
+	public InputNews(Integer id) {
+		this.setId(id);
+	}
+
 	public String getReleaseTimes() {
 		return releaseTimes;
 	}

+ 1 - 1
src/main/resources/props/config_local.properties

@@ -60,7 +60,7 @@ template.cacheable=false
 
 avatar.upload.host=//sb.jishutao.com/upload
 #连接开å
-portal.host=//sportal.jishutao.com/portal/2.0.6�‘
+portal.host=//sb.jishutao.com:3000
 static.host=//sb.jishutao.com/client/1.0.4
 avatar.host=//sb.jishutao.com
 

+ 168 - 168
src/main/resources/spring/spring-shiro.xml

@@ -1,169 +1,169 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
-	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
-	xmlns:context="http://www.springframework.org/schema/context"
-	xsi:schemaLocation="
-       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
-       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
-       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
-       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
-
-	<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
-		<property name="maxIdle" value="100" />
-		<property name="minIdle" value="10" />
-		<property name="testOnBorrow" value="true" />
-	</bean>
-
-	<bean id="redisConnectionFactory"
-		class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
-		<property name="hostName" value="${jedis.host}" />
-		<property name="port" value="${jedis.port}" />
-		<property name="password" value="${jedis.password}" />
-		<property name="timeout" value="${jedis.timeout}" />
-		<property name="poolConfig" ref="jedisPoolConfig" />
-		<!-- <property name="database" value="${jedis.dbIndex}" /> -->
-	</bean>
-
-	
-	<bean id="redisTemplate" class="com.kede.core.cache.template.FastJsonRedisTemplate">
-		<constructor-arg index="0" ref="redisConnectionFactory" />
-	</bean>
-	<bean id="sessionRedisTemplate" class="com.kede.core.shiro.cache.template.SessionRedisTemplate">
-		<constructor-arg index="0" ref="redisConnectionFactory" />
-	</bean>
-	
-	<bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager">
-		<constructor-arg index="0" ref="redisTemplate" />
-		<property name="defaultExpiration" value="86400" />		
-	</bean>
-	
-	<bean id="shrioRedisCacheManager" class="com.kede.core.shiro.cache.ShiroRedisCacheManager">
-		<property name="redisTemplate" ref="sessionRedisTemplate" />
-		<property name="expire" value="2592000" />
-	</bean>
-	
-	<!-- 环信 -->
-    <bean id="jedisQueueListener" class="com.kede.easemob.queue.EasemobRedisQueueListener"/>  
-    <bean id="jedisQueue" class="com.kede.easemob.queue.EasemobRedisQueue" destroy-method="destroy">  
-        <property name="redisTemplate" ref="redisTemplate"></property>  
-        <property name="key" value="easemob:queue"></property>  
-        <property name="listener" ref="jedisQueueListener"></property>  
-    </bean> 
-    <bean id="easemobUtils" class="com.kede.easemob.EasemobUtils"/>
-      
-	<!-- 极光 -->
-    <bean id="messageQueueListener" class="com.kede.message.queue.MessageRedisQueueListener"/>  
-    <bean id="messageQueue" class="com.kede.message.queue.MessageRedisQueue" destroy-method="destroy">  
-        <property name="redisTemplate" ref="redisTemplate"></property>  
-        <property name="key" value="jgpush:queue"></property>  
-        <property name="listener" ref="messageQueueListener"></property>  
-    </bean> 
-    <bean id="jgMessageHelper" class="com.kede.message.JGMessageHelper"/>
-
-	<bean id="sessionIdGenerator"
-		class="org.apache.shiro.session.mgt.eis.JavaUuidSessionIdGenerator" />
-
-	<bean id="sessionIdCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
-		<constructor-arg value="AFT_SID" />
-		<property name="httpOnly" value="true" />
-		<property name="maxAge" value="2592000" />
-		<!-- <property name="domain" value=""/> -->
-	</bean>
-
-	<bean id="customSessionListener" class="com.kede.core.shiro.listener.CustomSessionListener">
-		<property name="redisTemplate" ref="sessionRedisTemplate" />
-	</bean>
-
-	<bean id="enterpriseCacheSessionDAO"
-		class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO">
-		<property name="sessionIdGenerator" ref="sessionIdGenerator" />
-	</bean>
-
-	<!-- -->
-	<bean id="sessionValidationScheduler"
-		class="org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler">
-		<!-- -->
-		<property name="interval" value="${session.validate.timespan}" />
-		<property name="sessionManager" ref="sessionManager" />
-	</bean>
-	<!-- -->
-	<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
-		<property name="realm" ref="userRealm" />
-		<property name="sessionManager" ref="sessionManager" />
-		<property name="cacheManager" ref="shrioRedisCacheManager" />
-	</bean>
-
-	<bean id="authorizationAttributeSourceAdvisor"
-		class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
-		<property name="securityManager" ref="securityManager" />
-	</bean>
-
-	<!-- credential matcher -->
-	<bean id="credentialsMatcher"
-		class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">
-		<property name="hashAlgorithmName" value="${pwd.hash_algorithm_name}" />
-		<property name="hashIterations" value="${pwd.hash_iterations}" />
-		<property name="storedCredentialsHexEncoded" value="true" />
-	</bean>
-	<!-- -->
-	<bean id="userRealm" class="com.kede.core.shiro.token.UserRealm">
-		<property name="credentialsMatcher" ref="credentialsMatcher" />
-	</bean>
-
-	<!-- Session Manager -->
-	<bean id="sessionManager" class="com.kede.core.shiro.session.CustomSessionManager">
-		<!-- class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager"> -->
-		<property name="sessionIdUrlRewritingEnabled" value="false" />
-		<!-- -->
-		<property name="sessionValidationInterval" value="3600000" />
-		<!-- -->
-		<property name="globalSessionTimeout" value="3600000" />
-		<property name="sessionDAO" ref="enterpriseCacheSessionDAO" />
-		<property name="cacheManager" ref="shrioRedisCacheManager" />
-		<!-- session -->
-		<property name="sessionListeners">
-			<list>
-				<ref bean="customSessionListener" />
-			</list>
-		</property>
-		<!-- -->
-		<property name="sessionValidationScheduler" ref="sessionValidationScheduler" />
-		<!-- -->
-		<property name="sessionValidationSchedulerEnabled" value="true" />
-		<!-- -->
-		<property name="deleteInvalidSessions" value="true" />
-		<!-- -->
-		<property name="sessionIdCookie" ref="sessionIdCookie" />
-	</bean>
-
-	<bean id="shiroManager" class="com.kede.core.shiro.service.impl.ShiroManagerImpl" />
-
-	<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
-		<property name="securityManager" ref="securityManager" />
-		<property name="loginUrl" value="/user/login" />
-		<property name="successUrl" value="/" />
-		<property name="unauthorizedUrl" value="/user/login" />
-		<property name="filterChainDefinitions" value="#{shiroManager.loadFilterChainDefinitions()}" />
-		<property name="filters">
-			<util:map>
-				<entry key="login">
-					<bean id="login" class="com.kede.core.shiro.filter.LoginFilter" />
-				</entry>
-				<entry key="permission">
-					<bean id="permission" class="com.kede.core.shiro.filter.PermissionFilter">
-						<property name="loginUrl" value="/admin/login" />
-					</bean>
-				</entry>
-				<entry key="admin">
-					<bean id="admin" class="com.kede.core.shiro.filter.AdminFilter">
-						<property name="loginUrl" value="/admin/login" />
-					</bean>
-				</entry>
-			</util:map>
-		</property>
-	</bean>
-	<!-- -->
-	<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
+	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
+       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
+       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
+       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
+
+	<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
+		<property name="maxIdle" value="100" />
+		<property name="minIdle" value="10" />
+		<property name="testOnBorrow" value="true" />
+	</bean>
+
+	<bean id="redisConnectionFactory"
+		class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
+		<property name="hostName" value="${jedis.host}" />
+		<property name="port" value="${jedis.port}" />
+		<property name="password" value="${jedis.password}" />
+		<property name="timeout" value="${jedis.timeout}" />
+		<property name="poolConfig" ref="jedisPoolConfig" />
+		<!-- <property name="database" value="${jedis.dbIndex}" /> -->
+	</bean>
+
+	
+	<bean id="redisTemplate" class="com.kede.core.cache.template.FastJsonRedisTemplate">
+		<constructor-arg index="0" ref="redisConnectionFactory" />
+	</bean>
+	<bean id="sessionRedisTemplate" class="com.kede.core.shiro.cache.template.SessionRedisTemplate">
+		<constructor-arg index="0" ref="redisConnectionFactory" />
+	</bean>
+	
+	<bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager">
+		<constructor-arg index="0" ref="redisTemplate" />
+		<property name="defaultExpiration" value="86400" />		
+	</bean>
+	
+	<bean id="shrioRedisCacheManager" class="com.kede.core.shiro.cache.ShiroRedisCacheManager">
+		<property name="redisTemplate" ref="sessionRedisTemplate" />
+		<property name="expire" value="2592000" />
+	</bean>
+	
+	<!-- 环信 -->
+    <bean id="jedisQueueListener" class="com.kede.easemob.queue.EasemobRedisQueueListener"/>  
+    <bean id="jedisQueue" class="com.kede.easemob.queue.EasemobRedisQueue" destroy-method="destroy">  
+        <property name="redisTemplate" ref="redisTemplate"></property>  
+        <property name="key" value="easemob:queue"></property>  
+        <property name="listener" ref="jedisQueueListener"></property>  
+    </bean> 
+    <bean id="easemobUtils" class="com.kede.easemob.EasemobUtils"/>
+      
+	<!-- 极光 -->
+    <bean id="messageQueueListener" class="com.kede.message.queue.MessageRedisQueueListener"/>  
+    <bean id="messageQueue" class="com.kede.message.queue.MessageRedisQueue" destroy-method="destroy">  
+        <property name="redisTemplate" ref="redisTemplate"></property>  
+        <property name="key" value="jgpush:queue"></property>  
+        <property name="listener" ref="messageQueueListener"></property>  
+    </bean> 
+    <bean id="jgMessageHelper" class="com.kede.message.JGMessageHelper"/>
+
+	<bean id="sessionIdGenerator"
+		class="org.apache.shiro.session.mgt.eis.JavaUuidSessionIdGenerator" />
+
+	<bean id="sessionIdCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
+		<constructor-arg value="AFT_SID" />
+		<property name="httpOnly" value="true" />
+		<property name="maxAge" value="2592000" />
+		<!-- <property name="domain" value=""/> -->
+	</bean>
+
+	<bean id="customSessionListener" class="com.kede.core.shiro.listener.CustomSessionListener">
+		<property name="redisTemplate" ref="sessionRedisTemplate" />
+	</bean>
+
+	<bean id="enterpriseCacheSessionDAO"
+		class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO">
+		<property name="sessionIdGenerator" ref="sessionIdGenerator" />
+	</bean>
+
+	<!-- -->
+	<bean id="sessionValidationScheduler"
+		class="org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler">
+		<!-- -->
+		<property name="interval" value="${session.validate.timespan}" />
+		<property name="sessionManager" ref="sessionManager" />
+	</bean>
+	<!-- -->
+	<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
+		<property name="realm" ref="userRealm" />
+		<property name="sessionManager" ref="sessionManager" />
+		<property name="cacheManager" ref="shrioRedisCacheManager" />
+	</bean>
+
+	<bean id="authorizationAttributeSourceAdvisor"
+		class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
+		<property name="securityManager" ref="securityManager" />
+	</bean>
+
+	<!-- credential matcher -->
+	<bean id="credentialsMatcher"
+		class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">
+		<property name="hashAlgorithmName" value="${pwd.hash_algorithm_name}" />
+		<property name="hashIterations" value="${pwd.hash_iterations}" />
+		<property name="storedCredentialsHexEncoded" value="true" />
+	</bean>
+	<!-- -->
+	<bean id="userRealm" class="com.kede.core.shiro.token.UserRealm">
+		<property name="credentialsMatcher" ref="credentialsMatcher" />
+	</bean>
+
+	<!-- Session Manager -->
+	<bean id="sessionManager" class="com.kede.core.shiro.session.CustomSessionManager">
+		<!-- class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager"> -->
+		<property name="sessionIdUrlRewritingEnabled" value="false" />
+		<!-- -->
+		<property name="sessionValidationInterval" value="3600000" />
+		<!-- -->
+		<property name="globalSessionTimeout" value="3600000" />
+		<property name="sessionDAO" ref="enterpriseCacheSessionDAO" />
+		<property name="cacheManager" ref="shrioRedisCacheManager" />
+		<!-- session -->
+		<property name="sessionListeners">
+			<list>
+				<ref bean="customSessionListener" />
+			</list>
+		</property>
+		<!-- -->
+		<property name="sessionValidationScheduler" ref="sessionValidationScheduler" />
+		<!-- -->
+		<property name="sessionValidationSchedulerEnabled" value="true" />
+		<!-- -->
+		<property name="deleteInvalidSessions" value="true" />
+		<!-- -->
+		<property name="sessionIdCookie" ref="sessionIdCookie" />
+	</bean>
+
+	<bean id="shiroManager" class="com.kede.core.shiro.service.impl.ShiroManagerImpl" />
+
+	<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
+		<property name="securityManager" ref="securityManager" />
+		<property name="loginUrl" value="/portal/index" />
+		<property name="successUrl" value="/" />
+		<property name="unauthorizedUrl" value="/portal/index" />
+		<property name="filterChainDefinitions" value="#{shiroManager.loadFilterChainDefinitions()}" />
+		<property name="filters">
+			<util:map>
+				<entry key="login">
+					<bean id="login" class="com.kede.core.shiro.filter.LoginFilter" />
+				</entry>
+				<entry key="permission">
+					<bean id="permission" class="com.kede.core.shiro.filter.PermissionFilter">
+						<property name="loginUrl" value="/portal/index" />
+					</bean>
+				</entry>
+				<entry key="admin">
+					<bean id="admin" class="com.kede.core.shiro.filter.AdminFilter">
+						<property name="loginUrl" value="/admin/login" />
+					</bean>
+				</entry>
+			</util:map>
+		</property>
+	</bean>
+	<!-- -->
+	<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
 </beans>

+ 262 - 302
src/main/webapp/WEB-INF/views/common.html

@@ -4,88 +4,153 @@
 	xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
 
 <head th:fragment="header(title, link)">
-<meta charset="utf-8" />
-<link rel="icon" th:href="${portalHost+'/img/ico_logo.ico'}">
-<meta name="Keywords" content="" />
-<meta name="Description" content="" />
-<meta name="viewport"
-	content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1,user-scalable=no">
-<meta http-equiv="x-ua-compatible" content="ie=edge">
-<title>科德官网后台管理</title>
-<th:block th:replace="${link}" />
-</head>
+<meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0, user-scalable=no">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>湖南科德信息咨询有限公司</title>
+    <!--Bootstrap CSS 文件 -->
+    <link rel="stylesheet" th:href="${portalHost+'/css/bootstrap.min.css'}">
+    <!-- 字体图标 -->
+    <link rel="stylesheet" th:href="${portalHost+'/css/iconfont.css'}">
+	<th:block th:replace="${link}" />
+	<!-- 全局样式(包括头部、底部) -->
+	<link rel="stylesheet" th:href="${portalHost+'/css/main.css'}">
+	<!-- 自定义动画样式 -->
+    <link rel="stylesheet" th:href="${portalHost+'/css/ke_animation.css'}">
 <body>
 	<th:block th:fragment="nav(mainM,subM)">
-		<div class="container">
-			<div class="logo">
-				<a th:href="${basePath + '/portal/index.html'}"> <img th:src="${portalHost+'/img/Logo111.png'}" alt="" title="科德" />
-				</a>
-			</div>
-			<div class="logo_right"></div>
-			<div class="nav">
-				<ul>
-					<li th:classappend="${mainM=='service'}? 'active'"><a
-						th:href="${basePath + '/portal/service/serviceIndex.html'}">科技服务</a>
-						<img th:src="${portalHost+'/img/hot.png'}" />
-						<ol class="subnavigation">
-							<li><a th:href="${basePath + '/portal/service/highTechCognizance.html'}">高企认定</a>
-							</li>
-							<li><a th:href="${basePath + '/portal/service/propertyRight.html'}">知识产权</a>
-							</li>
-						</ol></li>
-					<li th:classappend="${mainM=='technologyTrading'}? 'active'">
-						<a th:href="${basePath + '/portal/technologyTrading/index.html'}">技术交易</a>
-						<ol class="subnavigation">
-							<li><a th:href="${basePath + '/portal/technologyTrading/achievement.html'}">专利产品</a>
-							</li>
-							<li><a th:href="${basePath + '/portal/technologyTrading/achievement.html'}">技术成果</a>
-							</li>
-							<li><a th:href="${basePath + '/portal/technologyTrading/demand.html'}">技术需求</a>
-							</li>
-							<li><a th:href="${basePath + '/portal/technologyTrading/assessMent.html'}">技术评估</a>
-							</li>
-						</ol>
-					</li>
-					<li th:classappend="${mainM=='thinkTank'}? 'active'"><a
-						th:href="${basePath + '/portal/thinkTank/index.html'}">智库咨询</a>
-						<ol class="subnavigation">
-							<li><a
-								th:href="${basePath + '/portal/thinkTank/policyList.html'}">智政</a>
-							</li>
-							<li><a
-								th:href="${basePath + '/portal/thinkTank/index.html#zizone'}">智者</a>
-							</li>
-						</ol></li>
-					<!-- <li><a th:href="${basePath + '/portal/financial/index.html'}">科技金融</a>
-						<ol class="subnavigation">
-							<li><a
-								th:href="${basePath + '/portal/financial/investmentInstitution.html'}">投资机构</a>
-							</li>
-						</ol></li> -->
-					<li><a th:href="${basePath + '/portal/aboutUs.html'}">关于公司</a>
-						<ol class="subnavigation">
-							<li><a
-								th:href="${basePath + '/portal/contactUs.html'}">联系我们</a>
-							</li>
-					</ol></li>						
-					<!-- <li><a href="#">科技活动</a></li> <li><a href="#">平台共建</a></li> 	-->
-				</ul>
-			</div>
-			<div class="nav_right" th:if="${!isLogin}">
-				<a th:href="${basePath + '/user/signIn.html'}"> <img
-					th:src="${portalHost+'/img/index_resiter.png'}" alt="" />
-				</a> 
-				<a href="javascript:;" class="head_login">登录</a> 
-				<div></div>
-			</div>
-			<div class="nav_right" th:if="${isLogin}">
-				<a th:href="${basePath + (isAdmin? '/admin/index.html':'/user/account/index.html')}"
-					th:text="${#strings.isEmpty(userName)?'个人中心':userName}">个人中心</a> 
-				<a th:href="${basePath + '/user/logout'}">退出</a> 
-				<a th:href="${basePath + '/portal/aboutUs.html'}">关于公司</a>
-				<div></div>
-			</div>
-		</div>
+		 <!-- 移动端导航栏 -->
+            <nav class="mobile_nav">
+                <div class="logoimg"><img th:src="${portalHost+'/images/logo.jpg'}" /></div>
+                <div class="hamburger" id="hamburger-1">
+                    <span class="line"></span>
+                    <span class="line"></span>
+                    <span class="line"></span>
+                </div>
+                <div class="m_contant">
+                    <ul>
+                        <li><a th:href="${basePath + '/portal/index'}">首页</a></li>
+                        <li><a th:href="${basePath + '/portal/product-service'}">产品中心</a></li>
+                        <li><a th:href="${basePath + '/portal/strategic'}">战略合作</a></li>
+                        <li><a th:href="${basePath + '/portal/client'}">服务客户</a></li>
+                        <li><a th:href="${basePath + '/portal/news'}">新闻动态</a></li>
+                        <li><a th:href="${basePath + '/portal/aboutKede'}">关于科德</a></li>
+                        <li><a th:href="${basePath + '/portal/contactUs'}">联系我们</a></li>
+                    </ul>
+                </div>
+            </nav>
+            <!-- 移动端导航栏  end -->
+            <!-- 电脑端导航栏 -->
+            <nav class="pc_nav">
+                <!-- LOGO -->
+                <div class="logo">
+                    <a href="#"><img th:src="${portalHost+'/images/logo.png'}" alt="科德咨询" /></a>
+                </div>
+                <ul>
+                    <div class="nav-dog"></div>
+                    <li><a th:href="${basePath+'/portal/index'}">首页</a></li>
+                    <li class="product_nav">
+                        <a th:href="${basePath+'/portal/product-service.html'}">产品中心</a>
+                        <div class="product-serve">
+                            <div class="list">
+                                <div class=" ">
+                                    <p>高企服务</p>
+                                    <ul>
+                                        <li><a>高新服务</a></li>
+                                        <li><a>高新培育</a></li>
+                                    </ul>
+                                </div>
+                                <div class=" ">
+                                    <p>军工资质</p>
+                                    <ul>
+                                        <li><a>国军标质量</a></li>
+                                        <li><a>军工资质</a></li>
+                                        <li><a>军工承制资格许可证</a></li>
+                                        <li><a>军工承制资格许可证</a></li>
+                                    </ul>
+                                </div>
+                                <div class=" ">
+                                    <p>知识产权服务</p>
+                                    <ul>
+                                        <li><a>发明专利</a></li>
+                                        <li><a>发明专利</a></li>
+                                        <li><a>发明专利</a></li>
+                                        <li><a>发明专利</a></li>
+                                        <li><a>发明专利</a></li>
+                                        <li><a>发明专利</a></li>
+                                        <li><a>发明专利</a></li>
+                                    </ul>
+                                </div>
+                                <div class=" ">
+                                    <p>认证咨询/项目申报</p>
+                                    <ul>
+                                        <li><a>长沙市两型产品认证</a></li>
+                                        <li><a>长沙市两型产品认证</a></li>
+                                        <li><a>长沙市两型产品认证</a></li>
+                                        <li><a>长沙市两型产品认证</a></li>
+                                        <li><a>长沙市两型产品认证</a></li>
+                                        <li><a>长沙市两型产品认证</a></li>
+                                    </ul>
+                                </div>
+                                <div class=" ">
+                                    <p>信用体系</p>
+                                    <ul>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                        <li><a>AAA级企业信用等级</a></li>
+                                    </ul>
+                                </div>
+                            </div>
+                            <div class="list list-two">
+                                <div class=" ">
+                                    <p>建筑类资质</p>
+                                    <ul>
+                                        <li><a>施工总承包资质一级</a></li>
+                                        <li><a>施工总承包资质一级</a></li>
+                                        <li><a>施工总承包资质一级</a></li>
+                                        <li><a>施工总承包资质一级</a></li>
+                                        <li><a>施工总承包资质一级</a></li>
+                                        <li><a>施工总承包资质一级</a></li>
+                                        <li><a>施工总承包资质一级</a></li>
+                                    </ul>
+                                </div>
+                                <div class=" ">
+                                    <p>两化融合</p>
+                                    <ul>
+                                        <li><a>两化融合</a></li>
+                                    </ul>
+                                </div>
+                                <div class=" ">
+                                    <p>知识产权贯标</p>
+                                    <ul>
+                                        <li><a>知识产品贯标企业级别</a></li>
+                                        <li><a>知识产品贯标企业级别</a></li>
+                                        <li><a>知识产品贯标企业级别</a></li>
+                                </div>
+                            </div>
+                        </div>
+                    </li>
+                    <li><a th:href="${basePath+'/strategic'}">战略合作</a></li>
+                    <li><a th:href="${basePath+'/client'}">服务客户</a></li>
+                    <li><a th:href="${basePath+'/news'}">新闻动态</a></li>
+                    <li><a th:href="${basePath+'/portal/aboutKede'}">关于科德</a></li>
+                    <li><a th:href="${basePath+'/portal/contactUs'}">联系我们</a></li>
+                    </ul>
+                    <div class="kede_phone">
+                        <span>全国免费咨询</span>
+                        <em>400-8800-962</em>
+                    </div>
+            </nav>
+            <!-- 电脑端导航栏  end -->
 	</th:block>
 
 	<th:block th:fragment="banners">
@@ -117,231 +182,126 @@
 	</th:block>
 
 	<th:block th:fragment="copyright">
-		<div id="bottom">
-			<div class="bottom">
-				<div class="bottom_text">
-					<div class="text_top">
-						<a th:href="${basePath + '/portal/aboutUs.html'}">关于公司</a>
-						<a th:href="${basePath + '/portal/contactUs.html'}">联系我们</a>
-						<p>Copyright &copy 2016-2017 科德 版权所有 湘ICP备15019731号 -2
-							技术支持:湖南阿凡提科技有限公司</p>
-					</div>
-					<div class="text_center" id="qrCode">
-						<div class="cont_left">
-							<img th:src="${portalHost+'/img/dizhi.jpg'}" alt="" />
-							<p>湖南省长沙市营盘东路19号金山大厦八楼</p>
-						</div>
-						<div class="cont_center">
-							<img th:src="${portalHost+'/img/dianhua.jpg'}" alt="" />
-							<p>合作电话:400-8800-962</p>
-						</div>
-						<div class="cont_guanli">
-							<a th:href="${basePath + '/admin/login'}">
-								<img th:src="${portalHost+'/img/guanli.png'}" alt="" />
-								<p>管理员入口</p>
-							</a>
-						</div>
-						<div class="cont_rightapp">
-							<img th:src="${portalHost+'/img/erweima_iphone.png'}" alt="" />
-							<p>iPhone版</p>
-						</div>
-						<div class="cont_right android">
-							<img th:src="${portalHost+'/img/erweima_android.jpg'}" alt="" />
-							<p>Android版</p>
-						</div>
-						<div class="cont_right">
-							<img th:src="${portalHost+'/img/erweima.jpg'}" alt="" />
-							<p>微信公众号</p>
-						</div>
-					</div>
-					<div class="text_bottom">
-						<p>友情链接</p>
-						<a href="http://www.hnst.gov.cn/" target="_blank">湖南省科技厅/</a> <a
-							href="http://www.cssti.cn/" target="_blank">长沙市科技局/</a> <a
-							href="http://www.cast.org.cn/" target="_blank">中国科学技术协会/</a> <a
-							href="http://www.chinatorch.gov.cn/" target="_blank">科技部火炬中心/</a> <a
-							href="http://www.nosta.gov.cn/web/index.aspx" target="_blank">国家科技成果奖励办/</a> <a
-							href="http://www.nast.org.cn/" target="_blank">国家科技成果网/</a> <a
-							href="http://www.hnast.org.cn/portal/comm/index.action" target="_blank">湖南省科学技术协会/</a>
-						<a href="http://www.hncgw.gov.cn/" target="_blank">湖南省科技成果转化公共服务平台/</a> <a
-							href="http://www.hnjxw.gov.cn/" target="_blank">湖南省经济信息化委员会/</a> <a
-							href="http://kyy.hnu.cn/" target="_blank">湖南大学科学技术研究院/</a> <a
-							href="http://www.gxst.gov.cn/gxkjt/" target="_blank">广西省科技厅/</a> <a
-							href="http://www.nmkjt.gov.cn/" target="_blank">内蒙古自治区科技厅/</a> <a
-							href="http://www.cshtz.gov.cn/" target="_blank">长沙市高新区管委会/</a> <a
-							href="http://www.jxas.ac.cn/" target="_blank">江西省科学院/</a> <a
-							href="http://www.cnic.cn/front/index.html#/cnicSite/home" target="_blank">中科院计算机网络信息中心/</a>
-						<a href="http://kxyjb.csu.edu.cn/" target="_blank">中南大学科学研究部/</a> <a
-							href="http://www.cast.org.cn/" target="_blank">中国科协创新创业服务中心/</a> <a
-							href="http://www.hbstd.gov.cn/" target="_blank">湖北省科技厅/</a> <a
-							href="http://www.gdstc.gov.cn/" target="_blank">广东省科技厅/</a> <a
-							href="http://www.hnkjt.gov.cn/" target="_blank">河南省科技厅/</a> <a
-							href="http://www.cbtm.gov.cn/" target="_blank">技术合同登记官网</a>
-					</div>
-				</div>
-			</div>
-		</div>
-		<div onclick="_MEIQIA('showPanel')" id="lxkf" style="display:none"></div>
-		<div th:if="${!isAdmin}" class="pub_fix">
-			<span class="index_blur"></span>
-			<ul class="ret_top">
-				<li th:classappend="${!isLogin}? 'head_login'"><a
-					th:if="${!isLogin || userData.lvl == 1}"
-					th:href="${isLogin?(basePath + '/portal/member') : 'javascript:;'}">
-						<img th:src="${portalHost+'/img/index_fix0.png'}" alt="" />
-						<p>申请会员</p>
-				</a> <a th:if="${isLogin && userData.lvl == 0}"
-					th:href="${basePath + '/user/certify'}"> <img
-						th:src="${portalHost+'/img/index_fix0.png'}" alt="" />
-						<p>实名认证</p>
-				</a></li>
-				<li><a onclick="_MEIQIA('showPanel')"> <img
-						th:src="${portalHost+'/img/index_fix3.png'}" alt="" />
-						<p>联系客服</p>
-				</a></li>
-				<li><a href="" class="pendent_box"> <img
-						th:src="${portalHost+'/img/index_fix4.png'}" alt="" />
-						<p>返回顶部</p>
-				</a></li>
-			</ul>
-			<span class="index_orange"></span>
-		</div>
-		<div class="message">
-			<span></span>
-		</div>
-	</th:block>
-	<th:block th:fragment="login">
-		<div class="login">
-			<div class="login_mian">
-				<div class="login_left">
-					<div class="login_ewm">
-						<img th:src="${portalHost+'/img/Android.jpg'}" alt="二维码" />
-						<p>Android版</p>
-						<p>客户端</p>
-					</div>
-					<div class="login_ewm">
-						<img th:src="${portalHost+'/img/iPhone.jpg'}" alt="二维码" />
-						<p>iPhone版</p>
-						<p>客户端</p>
-					</div>
-				</div>
-				<div class="login_right">
-					<h5>
-						用户登录<a href="/user/signIn.html">免费注册有好礼呦!!</a>
-					</h5>
-					<form id="form_login">
-						<div class="login_uesr">
-							<label for="uesname"><img
-								th:src="${portalHost+'/img/login_use.png'}" /></label> <input
-								type="text" name="mobile" id="Lo_user" placeholder="请输入手机号码" />
-							<img th:src="${portalHost+'/img/login_del.png'}" class="log_del" />
-						</div>
-						<div class="login_pass">
-							<label for="pass"><img
-								th:src="${portalHost+'/img/login_password.png'}" /></label> <input
-								type="password" name="password" id="Lo_pass" placeholder="请输入密码" />
-						</div>
-						<div class="login_check">
-							<label for="checks" class="lab_check"> <input
-								type="checkbox" name="type" id="checks" value="0" />专家登录
-							</label> <label for="checkst" class="lab_checkno"> <input
-								type="checkbox" name="type" id="checkst" value="1" />企业登录
-							</label> <a href="">忘记密码?</a>
-						</div>
-						<input type="submit" value="登 陆" class="login_submit" />
-					</form>
-					<img th:src="${portalHost+'/img/login_hua.png'}" alt=""
-						class="login_hua" /> <img
-						th:src="${portalHost+'/img/login_shadow.png'}" alt="阴影效果"
-						class="login_shadow" /> <img
-						th:src="${portalHost+'/img/login_close.png'}" alt=""
-						class="login_close" />
-				</div>
-			</div>
-		</div>
-		<div id="forget">
-			<div class="forget">
-				<form id="forget_form">
-					<div class="forget_top">
-						<a href="">忘记密码?</a>
-						<div class="login_check">
-							<label for="forget_checks" class="lab_check"> <input
-								type="checkbox" name="type" id="forget_checks" />专家登录
-							</label> <label for="forget_checkst" class="lab_checkno"> <input
-								type="checkbox" name="type" id="forget_checkst" />企业登录
-							</label>
-						</div>
-					</div>
-					<div class="forget_center">
-						<div class="phone">
-							<label for="forget_phone"> 手机号码:<input type="text"
-								name="type" id="forget_phone" placeholder="请输入您的手机号码..." />
-							</label>
-						</div>
-						<div class="yanzheng">
-							<label for="forget_yanzheng"> 图形验证码:<input type="text"
-								name="type" id="forget_yanzheng" />
-							</label>
-							<div class="yanzhengma_cont_">
-								<img th:src="${basePath+'/open/getVCode'}" />
-							</div>
-						</div>
-						<div class="cellcode_">
-							<div>
-								验证码:<input type="text" name="cellCode" placeholder="手机验证码"
-									id="photo_n" />
-							</div>
-							<input type="button" id="photo_m" value="获取验证码" disabled />
-						</div>
-						<div class="fastener">
-							<input type="submit" class="forget_sub" value="确认" />
-							<div class="fastener_right">取消</div>
-						</div>
-					</div>
-				</form>
-				<img th:src="${portalHost+'/img/login_close.png'}" alt=""
-					class="login_close" /> <img
-					th:src="${portalHost+'/img/login_shadow.png'}" alt="阴影效果"
-					class="login_shadow" />
-			</div>
-		</div>
-		<div id="new_password">
-			<div class="new_password">
-				<form id="new_password_form">
-					<div class="password_top">
-						<h4>设置新密码</h4>
-						<span>密码长度为6-20个字符,区分大小写</span>
-					</div>
-					<div class="password_center">
-						<div>
-							<label for="new_pass"> 新密码:<input type="password"
-								name="type" id="new_pass" placeholder="请输入您的新密码..." />
-							</label>
-						</div>
-						<div>
-							<label for="new_pass_again"> 确认密码:<input type="password"
-								name="type" id="new_pass_again" placeholder="请确认您的密码..." />
-							</label>
-						</div>
-						<div class="fastener">
-							<input type="submit" class="new_password_sub" value="确认" />
-							<div class="fastener_right">取消</div>
-						</div>
-					</div>
-				</form>
-				<img th:src="${portalHost+'/img/login_close.png'}" alt=""
-					class="login_close" /> <img
-					th:src="${portalHost+'/img/login_shadow.png'}" alt="阴影效果"
-					class="login_shadow" />
-			</div>
-		</div>
+		 <div class="contentDown">
+                <div class="container">
+                    <div class="row" style="position: relative;">
+                        <div class="down_left col-lg-3 ">
+                            <p>产品服务</p>
+                            <ul style="margin-top: 38px;">
+                                <li><a href="#">科德集团</a></li>
+                                <li><a href="#">科德集团</a></li>
+                                <li><a href="#">科德集团</a></li>
+                                <li><a href="#">科德集团</a></li>
+                            </ul>
+                            <ul style="margin-top: 38px;">
+                                <li><a href="#">科德集团</a></li>
+                                <li><a href="#">科德集团</a></li>
+                                <li><a href="#">科德集团</a></li>
+                                <li><a href="#">科德集团</a></li>
+                            </ul>
+                        </div>
+                        <div class="down_middle col-lg-6">
+                            <ul>
+                                <li>
+                                    <p>关于科德</p>
+                                    <ul>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                    </ul>
+                                </li>
+                                <li>
+                                    <p>新闻动态</p>
+                                    <ul>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                    </ul>
+                                </li>
+                                <li>
+                                    <p>加入我们</p>
+                                    <ul>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                    </ul>
+                                </li>
+                                <li>
+                                    <p>联系我们</p>
+                                    <ul>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                        <li><a href="#">科德集团</a></li>
+                                    </ul>
+                                </li>
+                            </ul>
+                        </div>
+                        <div class="down_right col-lg-3 ">
+                            <p>咨询热线</p>
+                            <h6>400-8800-962</h6>
+                            <span>工作时间:9:00-18:00</span>
+                            <div class="wx_wb">
+                                <div>
+                                    <p>扫一扫关注</p>
+                                    <p style="margin-bottom: 10px;">微信公众号</p>
+                                    <img th:src="${portalHost+'/images/wx.png'}" />
+                                </div>
+                                <div>
+                                    <p>扫一扫关注</p>
+                                    <p style="margin-bottom: 10px;">官方微博号</p>
+                                    <img th:src="${portalHost+'/images/wb.png'}" />
+                                </div>
+                            </div>
+                        </div>
+                        <div class="line01"></div>
+                        <div class="line02"></div>
+                    </div>
+                </div>
+            </div>
+            <div class="infoDown">
+                <div class="container">
+                    <span class="info_one">Copyright 2014-2025 湖南科德信息咨询有限公司</span>
+                    <span> ©湘ICP备15019731号-4</span>
+                </div>
+            </div>
+            <!-- 回到顶部 -->
+            <div class="toTop"><img th:src="${portalHost+'/images/toTop.png'}"></div>
+             <!-- 底部  end -->
+        <!-- 手机底部导航 -->
+        <div class="phone_footer">
 
-		<div class="smg">
-			<input type="text" name="msg" value="" id="msg" readonly="readonly" />
-		</div>
-	</th:block>
+            <div class="">
+                <span class="iconfont icon-shouye"></span>
+                <p>首页</p>
+            </div>
+
+            <div class="">
+                <span class="iconfont icon-fuwu-active"></span>
+                <p>产品中心</p>
+            </div>
 
+            <div class="">
+                <span class="iconfont icon-dianhua"></span>
+                <p>立即咨询</p>
+            </div>
+
+            <div class="">
+                <span class="iconfont icon-icon"></span>
+                <p>QQ客服</p>
+            </div>
+
+        </div>
+        <!-- 手机底部导航 end-->
+	</th:block>
 	<th:block th:fragment="footer(scripts)">
+	<!-- JQuery 引入 -->
+    <script th:src="${portalHost+'/js/jquery/jquery-2.2.4.min.js'}"></script>
+	<!-- 导航栏效果、回到顶部 -->
+    <script th:src="${portalHost+'/js/secode.js'}"></script>
 		<script th:inline="javascript">
 			/*<![CDATA[*/
 			window.globalConfig = {};

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 783 - 0
src/main/webapp/WEB-INF/views/portal/aboutKede.html


+ 78 - 0
src/main/webapp/WEB-INF/views/portal/contactUs.html

@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head th:replace="common::header(~{::title},~{::link})">
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0, user-scalable=no">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>科德信息咨询</title>
+    <link rel="icon" th:href="${portalHost+'/images/icon/kedexinxi.ico'}"  type="image/x-icon">
+    <!-- 二级页面CSS -->
+    <link rel="stylesheet" th:href="${portalHost+'/css/secode.css'}">
+</head>
+
+<body>
+    <div class="app">
+        <!-- 头部 -->
+        <header>
+           <div th:replace="common::nav('','')"></div>
+            <!-- 轮播图  -->
+            <div class="swiper-containerx">
+                 <img th:src="${banners}==null?${portalHost+'/images/banner/about_bg.png'}:${avatarUploadHost}+${banners.bannerUrl}" />
+                <div class="swiper_title">
+                    <h6>关于科德</h6>
+                </div>
+            </div>
+            <!-- 轮播图 end -->
+        </header>
+        <!-- 头部  end -->
+        <!-- 主体内容 -->
+        <div class="about-cx main  about-kede-main">
+            <div class="container">
+                <div class="about-kede-content">
+                    <h4>联系我们</h4>
+                    <p>为客户提供优质的一站式服务咨询解决方案</p>
+                    <div class="content">
+                        <!-- 百度地图 -->
+                        <div id="baidu_container"></div>
+                        <!-- 百度地图 end -->
+                        <div class="contact_img">
+                            <img th:src="${portalHost+'/images/logo.jpg'}" />
+                            <h5>湖南科德信息咨询有限公司</h5>
+                        </div>
+                        <div class="contact_text">
+                            <ul>
+                                <li>地址:湖南省长沙市岳麓区茶子山东路湘江财富金融中心D座12层</li>
+                                <li>联系我们:400-8800-962</li>
+                                <li>客服咨询:0731-89907207</li>
+                                <li>QQ咨询:1924306267</li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- 主体内容  end -->
+        <!-- 底部 -->
+        <footer>
+          <div th:replace="common::copyright"></div>
+        </footer>
+        <!-- 底部  end -->
+    </div>
+    <div th:replace="common::footer(~{::script})">
+    <!-- 百度地图 -->
+    <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=tMtfVXxfp5dqKOCnlmgy4vRNEIGkkEMx"></script>
+    <script>
+        var map = new BMap.Map("baidu_container");
+        var point = new BMap.Point(112.963034, 28.247964);
+        map.centerAndZoom(point, 15);
+        var marker = new BMap.Marker(point); // 创建标注    
+        map.addOverlay(marker); // 将标注添加到地图中 
+        map.addControl(new BMap.NavigationControl());
+        map.addControl(new BMap.ScaleControl());
+        map.addControl(new BMap.OverviewMapControl());
+        map.addControl(new BMap.MapTypeControl());
+    </script>
+    <!-- 百度地图 end -->
+    </div>
+</body>
+</html>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 726 - 190
src/main/webapp/WEB-INF/views/portal/index.html


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 79 - 0
src/main/webapp/WEB-INF/views/portal/news/newsDetails.html