Ver código fonte

法律顾问列表详情首页

limin 7 anos atrás
pai
commit
a9b447c7a2

+ 14 - 1
src/main/java/com/goafanti/app/bo/ExpertsListBo.java

@@ -23,6 +23,8 @@ public class ExpertsListBo {
 	private String consultantTypeName;
 	private String keyword;
 	private String typicalCase;
+	private String honer;
+	private String goodAtIndustry;
 	public String getUid() {
 		return uid;
 	}
@@ -143,6 +145,17 @@ public class ExpertsListBo {
 	public void setTypicalCase(String typicalCase) {
 		this.typicalCase = typicalCase;
 	}
+	public String getHoner() {
+		return honer;
+	}
+	public void setHoner(String honer) {
+		this.honer = honer;
+	}
+	public String getGoodAtIndustry() {
+		return goodAtIndustry;
+	}
+	public void setGoodAtIndustry(String goodAtIndustry) {
+		this.goodAtIndustry = goodAtIndustry;
+	}
 	
-
 }

+ 17 - 1
src/main/java/com/goafanti/common/controller/WebpageController.java

@@ -1396,7 +1396,7 @@ public class WebpageController extends BaseController {
 	@RequestMapping(value = "/portal/service/safeguarding", method = RequestMethod.GET)
 	public ModelAndView portalServiceSafeguarding(HttpServletRequest request, ModelAndView modelview){
 		//获得法律顾问列表数据
-		//userIdentityService.consultantList( name, sortType,  consultantType,  province, city, area,  pageNo,  pageSize)
+		modelview.addObject("slist", userIdentityService.consultantList( null, 1,  4,  null, null, null,  0,  12).getList());
 		modelview.setViewName("/portal/service/safeguarding");
 		return modelview;
 	}
@@ -1505,4 +1505,20 @@ public class WebpageController extends BaseController {
 		return modelview;
 	}
 	
+	/**
+	 * 获得除了指定数据的其他随机法律顾问
+	 * @param id
+	 * @return
+	 */
+	@RequestMapping("/portal/service/safeguardingDetail")
+	public ModelAndView safeguardingDetail(ModelAndView modelview, String id, Integer size, Integer type){
+		List<ExpertsListBo> list = userIdentityService.getRandAdviserByType(id, 4, 4);//其他法律顾问
+		ExpertsListBo safeguardingDetail = userIdentityService.selectExpertsDetail(id);//法律顾问
+		safeguardingDetail.setConsultantTypeName(ConsultantType.getDesc(safeguardingDetail.getConsultantType()));
+		modelview.addObject("sd", safeguardingDetail);
+		modelview.addObject("list", list);
+		modelview.setViewName("/portal/service/safeguardingDetail");
+		return modelview;
+	}
+	
 }

+ 2 - 0
src/main/java/com/goafanti/common/dao/UserIdentityMapper.java

@@ -117,4 +117,6 @@ public interface UserIdentityMapper {
 	Integer updateAuditing(UserIdentity identity);
 
 	ExpertsListBo selectByIdentityId(String id);
+	
+	List<ExpertsListBo> getRandAdviserByType(@Param("id")String id, @Param("consultantType") Integer consultantType , @Param("size")Integer size);
 }

+ 4 - 0
src/main/java/com/goafanti/common/enums/UserIdentityFields.java

@@ -26,6 +26,10 @@ public enum UserIdentityFields {
 	BUSINESSSCOPE("businessScope", "业务范围"),
 	INTRODUCTION("introduction", "企业简介"),
 	TYPICALCASE("typicalCase", "典型案例"),
+	WORKUNIT("workUnit", "就业单位"),
+	WORKUNIT1("workUnit1", "律师事务所"),
+	HONER("honer", "职称"),
+	GOODATINDUSTRY("goodAtIndustry", "擅长专业"),
 	OTHER("", "未知参数");
 	
 	private String	code;

+ 1 - 0
src/main/java/com/goafanti/common/enums/collectType.java

@@ -15,6 +15,7 @@ public enum collectType {
 	EXPERT(5,"expert"),//5专家
 	ADVISER(6,"adviser"),//6顾问
 	NEWS(7,"news"),//7新闻
+	LEGAL_ADVISER(9,"legal_adviser"),//9法律顾问
 	OTHER(8, "");
 	
 	private collectType(Integer code, String desc) {

+ 59 - 10
src/main/java/com/goafanti/common/mapper/UserIdentityMapper.xml

@@ -56,6 +56,8 @@
     <result column="head_portrait_url" jdbcType="VARCHAR" property="headPortraitUrl" />
     <result column="typical_case" jdbcType="VARCHAR" property="typicalCase" />
     <result column="consultant_certificate_url" jdbcType="VARCHAR" property="consultantCertificateUrl" />
+    <result column="good_at_industry" jdbcType="VARCHAR" property="goodAtIndustry" />
+    <result column="honer" jdbcType="VARCHAR" property="honer" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <!--
@@ -136,7 +138,8 @@
     amount_money, audit_status, process, wrong_count, payment_date, expert, 
     international, fixed_tel, qq, postal_address, postcode, review_instructions, industry, 
     contacts, email, professional_title, work_unit, education, major_category, qualification,
-    graduate_school, consultation_price , consultant_type, typical_case, consultant_certificate_url
+    graduate_school, consultation_price , consultant_type, typical_case, consultant_certificate_url,
+    good_at_industry
   </sql>
   <select id="selectByExample" parameterType="com.goafanti.common.model.UserIdentityExample" resultMap="BaseResultMap">
     <!--
@@ -208,7 +211,8 @@
       work_unit, education, major_category, 
       qualification, graduate_school, 
       consultation_price,consultant_type,
-      typical_case, consultant_certificate_url)
+      typical_case, consultant_certificate_url,
+      good_at_industry)
     values (#{id,jdbcType=VARCHAR}, #{uid,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, 
       #{sex,jdbcType=VARCHAR}, #{dateOfBirthYear,jdbcType=VARCHAR}, #{dateOfBirthMonth,jdbcType=VARCHAR}, 
       #{idNumber,jdbcType=VARCHAR}, #{positiveIdUrl,jdbcType=VARCHAR}, #{oppositeIdUrl,jdbcType=VARCHAR}, 
@@ -223,7 +227,8 @@
       #{workUnit,jdbcType=VARCHAR}, #{education,jdbcType=VARCHAR}, #{majorCategory,jdbcType=VARCHAR}, 
       #{qualification,jdbcType=VARCHAR}, #{graduateSchool,jdbcType=VARCHAR}, 
       #{consultationPrice,jdbcType=DECIMAL},#{consultantType,jdbcType=VARCHAR},
-      #{typicalCase,jdbcType=VARCHAR}, #{consultantCertificateUrl,jdbcType=VARCHAR}
+      #{typicalCase,jdbcType=VARCHAR}, #{consultantCertificateUrl,jdbcType=VARCHAR},
+      #{goodAtIndustry,jdbcType=VARCHAR}
       )
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.UserIdentity">
@@ -354,6 +359,9 @@
       <if test="consultantCertificateUrl != null">
         consultant_certificate_url,
       </if>
+      <if test="goodAtIndustry != null">
+        good_at_industry,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -476,6 +484,9 @@
       <if test="consultantCertificateUrl != null">
         #{consultantCertificateUrl,jdbcType=VARCHAR},
       </if>
+      <if test="goodAtIndustry != null">
+        #{goodAtIndustry,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.goafanti.common.model.UserIdentityExample" resultType="java.lang.Long">
@@ -617,6 +628,9 @@
       <if test="record.consultantCertificateUrl != null">
         consultant_certificate_url = #{record.consultantCertificateUrl,jdbcType=VARCHAR},
       </if>
+      <if test="record.goodAtIndustry != null">
+        good_at_industry = #{record.goodAtIndustry,jdbcType=VARCHAR},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -668,6 +682,7 @@
       graduate_school = #{record.graduateSchool,jdbcType=VARCHAR},
       typical_case = #{record.typicalCase,jdbcType=VARCHAR},
       consultant_certificate_url = #{record.consultantCertificateUrl,jdbcType=VARCHAR},
+      good_at_industry = #{record.goodAtIndustry,jdbcType=VARCHAR},
       consultation_price = #{record.consultationPrice,jdbcType=DECIMAL}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -804,6 +819,9 @@
       <if test="consultantCertificateUrl != null">
         consultant_certificate_url = #{consultantCertificateUrl,jdbcType=VARCHAR},
       </if>
+      <if test="goodAtIndustry != null">
+        good_at_industry = #{goodAtIndustry,jdbcType=VARCHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -850,8 +868,9 @@
       major_category = #{majorCategory,jdbcType=VARCHAR},
       qualification = #{qualification,jdbcType=VARCHAR},
       graduate_school = #{graduateSchool,jdbcType=VARCHAR},
-      typical_case = #{typical_case,jdbcType=VARCHAR},
-      consultant_certificate_url = #{consultant_certificate_url,jdbcType=VARCHAR},
+      typical_case = #{typicalCase,jdbcType=VARCHAR},
+      consultant_certificate_url = #{consultantCertificateUrl,jdbcType=VARCHAR},
+      good_at_industry = #{goodAtIndustry,jdbcType=VARCHAR},
       consultation_price = #{consultationPrice,jdbcType=DECIMAL}
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -899,7 +918,9 @@
 		b.consultant_type as consultantType,
 		b.audit_info as auditInfo,
 		b.typical_case as typicalCase, 
-		b.consultant_certificate_url as consultantCertificateUrl
+		b.consultant_certificate_url as consultantCertificateUrl,
+		b.good_at_industry as goodAtIndustry,
+		b.professional_title as honer
 	from
 		user a left join user_identity b on
 		a.id = b.uid
@@ -1326,7 +1347,7 @@ select a.id as uid,a.nickname as username,a.head_portrait_url as personPortraitU
 		b.industry,b.work_unit as workUnit,b.professional_title as professionalTitle,a.introduction,
 		ifnull(c.count,0) as countInterest,b.expert,ifnull(x.a,0) as favorable,ifnull(x.b,0) as general,
 		ifnull(x.c,0) as inferior,ifnull(x.d,0) as commentCount,ifnull( cast(x.a*100 / x.d as decimal(18, 2)), 100 ) as favorableRate,
-		if(isnull(d.to_uid),0,1) as interested, b.typical_case as typicalCase
+		if(isnull(d.to_uid),0,1) as interested, b.typical_case as typicalCase, b.good_at_industry as goodAtIndustry
 		from `user` a left join user_identity b on a.id=b.uid left join (select a.commodity_id as uid,
 			sum(case when a.star &gt; 3 then 1 else 0 end) as a,
 			sum(case when a.star=3 then 1 else 0 end) as b,
@@ -1344,7 +1365,7 @@ where a.id=#{id,jdbcType=VARCHAR}
 	ifnull( a.count, 0 ) as countInterest, if( isnull(b.to_uid), 0, 1 ) as interested,ui.expert,
 	ifnull( x.a, 0 ) as favorable, ifnull( x.b, 0 ) as general, ifnull( x.c, 0 ) as inferior,
 	ifnull( x.d, 0 ) as commentCount, ifnull( cast(x.a*100 / x.d as decimal(18, 2)), 100 ) as favorableRate
-	,ui.typical_case as typicalCase
+	,ui.typical_case as typicalCase, ui.good_at_industry as goodAtIndustry
 from
 	`user` u left join user_identity ui on ui.uid = u.id 
 	left join(select a.commodity_id as uid,
@@ -1484,7 +1505,8 @@ from
 	i.expert, i.audit_status, i.positive_id_url, i.opposite_id_url, u.head_portrait_url, 
 	i.education, i.major_category, i.consultant_type, i.graduate_school, i.work_unit, 
 	i.qualification, i.professional_title, i.process, i.id, i.uid, i.audit_info,
-	i.typical_case, i.consultant_certificate_url, i.work_unit as work_unit1
+	i.typical_case, i.consultant_certificate_url, i.work_unit as work_unit1,
+	i.good_at_industry as goodAtIndustry, i.professional_title as honer
 	from `user` u
 	inner join user_identity i on u.id = i.uid
 	where u.id = #{uid,jdbcType=VARCHAR}
@@ -1516,8 +1538,35 @@ select a.create_time as createTime,
 
 
 <select id="selectByIdentityId" resultType="com.goafanti.app.bo.ExpertsListBo">
-	select a.id,a.uid as uid,b.nickname as username,b.society_tag as keyword,a.expert,b.introduction from user_identity a 
+	select a.id,a.uid as uid,b.nickname as username,b.society_tag as keyword,a.expert,b.introduction,a.consultant_type as consultantType from user_identity a 
     left join user b on a.uid=b.id
     where a.id=#{id,jdbcType=VARCHAR}
 </select>
+
+<!-- 获得指定数量法律顾问随机数据 -->
+<select id="getRandAdviserByType" resultType="com.goafanti.app.bo.ExpertsListBo">
+	select u.id as uid, u.nickname as username, u.head_portrait_url as personPortraitUrl,ui.consultant_type as consultantType,
+		ui.work_unit as workUnit, ui.professional_title as professionalTitle,
+		ifnull( cast(x.a*100 / x.d as decimal(18, 2)), 100 ) as favorableRate
+	from
+		`user` u left join user_identity ui on ui.uid = u.id 
+	left join(select a.commodity_id as uid,
+			sum(case when a.star > 3 then 1 else 0 end) as a,
+			count(*) as d
+			from jt_commodity_comment a 
+			left join jt_consult_order b on a.order_no=b.order_no
+			group by a.commodity_id)x on u.id=x.uid
+	where u.status = 0 and u.source = 0 
+	and ui.expert = 2 and ui.audit_status=2 
+	<if test="id != null">
+	and u.id &lt;&gt; #{id,jdbcType=VARCHAR}
+	</if>
+	<if test="consultantType != null">
+	and ui.consultant_type = #{consultantType,jdbcType=INTEGER}
+	</if>
+	ORDER BY RAND()
+	<if test="size">
+	 LIMIT #{size,jdbcType=INTEGER}
+	</if>
+</select>
 </mapper>

+ 20 - 0
src/main/java/com/goafanti/common/model/UserIdentity.java

@@ -221,6 +221,26 @@ public class UserIdentity {
 
 	private String workUnit1;
 	
+	private String goodAtIndustry;
+	
+	private String honer;
+	
+	public String getHoner() {
+		return honer;
+	}
+
+	public void setHoner(String honer) {
+		this.honer = honer;
+	}
+
+	public String getGoodAtIndustry() {
+		return goodAtIndustry;
+	}
+
+	public void setGoodAtIndustry(String goodAtIndustry) {
+		this.goodAtIndustry = goodAtIndustry;
+	}
+
 	public String getWorkUnit1() {
 		return workUnit1;
 	}

+ 22 - 0
src/main/java/com/goafanti/user/bo/InputUserIdentity.java

@@ -126,6 +126,9 @@ public class InputUserIdentity {
 	@Size(min = 0, max = 32, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String professionalTitle;
 	
+	@Size(min = 0, max = 32, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String honer;
+	
 	@Size(min = 0, max = 16, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String majorCategory;
 	
@@ -146,8 +149,27 @@ public class InputUserIdentity {
 	@Size(min = 0, max = 1000, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String typicalCase;
 	
+	@Size(min = 0, max = 1000, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String goodAtIndustry;
+	
 	private String auditInfo;
 	
+	public String getGoodAtIndustry() {
+		return goodAtIndustry;
+	}
+
+	public void setGoodAtIndustry(String goodAtIndustry) {
+		this.goodAtIndustry = goodAtIndustry;
+	}
+
+	public String getHoner() {
+		return honer;
+	}
+
+	public void setHoner(String honer) {
+		this.honer = honer;
+	}
+
 	public String getTypicalCase() {
 		return typicalCase;
 	}

+ 11 - 0
src/main/java/com/goafanti/user/service/UserIdentityService.java

@@ -2,6 +2,8 @@ package com.goafanti.user.service;
 
 import java.util.List;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.goafanti.app.bo.ExpertsListBo;
 import com.goafanti.app.bo.consultantListBo;
 import com.goafanti.common.bo.ReletivelyIndustry;
@@ -99,4 +101,13 @@ public interface UserIdentityService {
 	 * @return
 	 */
 	Integer updateUserIdentityDetail(InputUserIdentity identity);
+	
+	/**
+	 * 获得除指定id外指定数量的随机法律顾问
+	 * @param exceptid
+	 * @param consultantType
+	 * @param size
+	 * @return
+	 */
+	List<ExpertsListBo> getRandAdviserByType(String exceptid, Integer consultantType , Integer size);
 }

+ 12 - 1
src/main/java/com/goafanti/user/service/impl/UserIdentityServiceImpl.java

@@ -598,7 +598,11 @@ public class UserIdentityServiceImpl extends BaseMybatisDao<UserIdentityMapper>
 					r.setFromTable(collectType.EXPERT.getDesc());
 				}
 				if(u.getExpert()==2){
-					r.setFromTable(collectType.ADVISER.getDesc());
+					if(u.getConsultantType() == 4){
+						r.setFromTable(collectType.LEGAL_ADVISER.getDesc());
+					}else{
+						r.setFromTable(collectType.ADVISER.getDesc());
+					}
 				}
 				r.setKeyword(SocietyTagStatus.getStatus(u.getKeyword()).getDesc());
 				r.setTitle(u.getUsername());
@@ -637,6 +641,7 @@ public class UserIdentityServiceImpl extends BaseMybatisDao<UserIdentityMapper>
 		//如果是法律顾问
 		if(null != identity.getConsultantType() && identity.getConsultantType() == 4){
 			ui.setWorkUnit(identity.getWorkUnit1());
+			ui.setProfessionalTitle(identity.getHoner());
 		}
 		if (null == u) {
 			ui.setId(UUID.randomUUID().toString());
@@ -677,6 +682,12 @@ public class UserIdentityServiceImpl extends BaseMybatisDao<UserIdentityMapper>
 		}
 		return count;
 	}
+
+	@Override
+	public List<ExpertsListBo> getRandAdviserByType(String exceptid,
+			Integer consultantType, Integer size) {
+		return userIdentityMapper.getRandAdviserByType(exceptid, consultantType, size);
+	}
 	
 
 }

+ 64 - 117
src/main/webapp/WEB-INF/views/portal/service/safeguarding.html

@@ -10,130 +10,77 @@
 <body>
 <div th:replace="common::nav('','safeguarding')"></div>
      <!-- 上面是公共头部 -->
-    <div class="continueHighBanner">
+     <div class="continueHighBanner">
         <img th:src="${portalHost+'/img/safeguarding/safeguarding_banner.png'}" alt="">
     </div>
     <div class="container">
-        <h3>维权百科</h3>
-        <ul class="safeguardingBody">
-            <li>
-                <div class="listImg">
-                    <img th:src="${portalHost + '/img/safeguarding/safeguarding01.png'}" alt="">
+        <div class="indexSearch">
+            <div class="search-inp">
+                <div class="input-group">
+                    <input type="text" class="form-control demandSearch" placeholder="搜索您要找的法律顾问">
+                    <span class="input-group-btn">
+                        <button class="btn btn-default searchBtn" type="button">
+                            <img th:src="${portalHost+'/img/newMenu/search-icon.jpg'}"  alt=""> 搜索
+                        </button>
+                    </span>
                 </div>
-                <div class="listTxt">
-                    <div>
-                        <img th:src="${portalHost + '/img/safeguarding/safeguarding_deng01.png'}" alt="" >
-                    </div>
-                    <div class="listTxtGrounp">
-                        <div>
-                            <h4>低价乱象</h4>
-                            <small><span class="red">Low price chaos / </span>Conception</small>
-                            <p>低价是指经销商未按照品牌商或厂家指导价格,低于指导价格进行网络销售的行为。对品牌商整体的价格体系造成巨大的冲击,严重紊乱了原有经销商的体系。</p>
-                        </div>
-                        <div>
-                            <h4>危害</h4>
-                            <small><span class="red">Low price chaos / </span>Harm</small>
-                            <p>商家为谋求薄利多销,低于市场价格销售,其他商家跟风盛行,导致商家之间展开价格拉锯战,最后厂家无利可谋。</p>
-                        </div>
-                    </div>
-                </div>
-            </li>
-            <li>
-                <div class="listImg">
-                    <img th:src="${portalHost + '/img/safeguarding/safeguarding02.png'}" alt="">
-                </div>
-                <div class="listTxt">
-                    <div>
-                        <img th:src="${portalHost + '/img/safeguarding/safeguarding_deng03.png'}" alt="" >
-                    </div>
-                    <div class="listTxtGrounp">
-                        <div>
-                            <h4>未授权</h4>
-                            <small><span class="red">Unauthorized sales / </span>Conception</small>
-                            <p>非授权销售是指没有预先经过品牌方允许,个人或者公司私自在网上开店进行销售;线下的经销商未经允许私自在网上开店进行销售同样是非授权销售的一种。</p>
-                        </div>
-                        <div>
-                            <h4>危害</h4>
-                            <small><span class="red">Unauthorized sales / </span>Harm</small>
-                            <p>降低线上授权商家的积极性,导致线上授权商家抱怨。非授权店铺大肆倾销产品,品牌价格体系遭到严重破坏。导致经销商对品牌方丧失信心,招商难上加难。</p>
-                        </div>
-                    </div>
-                </div>
-            </li>
-            <li>
-                <div class="listImg">
-                    <img th:src="${portalHost + '/img/safeguarding/safeguarding03.png'}" alt="">
-                </div>
-                <div class="listTxt">
-                    <div>
-                        <img th:src="${portalHost + '/img/safeguarding/safeguarding_deng04.png'}" alt="" >
-                    </div>
-                    <div class="listTxtGrounp">
-                        <div>
-                            <h4>商标侵权</h4>
-                            <small><span class="red">Trademark infringement / </span>Conception</small>
-                            <p>1.未经商标注册人的许可,在同一种商品或者类似商品上使用与其注册商标相同或者近似的商标的 </p>
-                            <p>2.销售侵犯注册商标专用权的商品的 </p>
-                            <p>3.伪造、擅自制造他人注册商标标识或者销售伪造、擅自制造的注册商标标识</p>
-                            <p>4.未经商标注册人同意,更换其注册商标并将该更换商标的商品又投入市场 </p>
-                            <p>5.给他人的注册商标专用权造成其他损害的行为</p>
-                        </div>
-                    </div>
-                </div>
-            </li>
-            <li>
-                <div class="listImg">
-                    <img th:src="${portalHost + '/img/safeguarding/safeguarding05.png'}" alt="">
-                </div>
-                <div class="listTxt">
-                    <div>
-                        <img th:src="${portalHost + '/img/safeguarding/safeguarding_deng05.png'}" alt="" >
-                    </div>
-                    <div class="listTxtGrounp">
-                        <div>
-                            <h4>专利侵权</h4>
-                            <small><span class="red">patent infringement / </span>Conception</small>
-                            <p>1.未经许可制造专利产品的行为</p>
-                            <p>2.故意使用发明或实用新型专利产品的行为</p>
-                            <p>3.销售、许诺销售未经许可的专利产品的行为</p>
-                            <p>4.使用专利方法以及使用、销售、许诺销售依照专利方法直接获得的产品的行为</p>
-                            <p>5.进口专利产品或进口依照专利方法直接得的产品的行为</p>
-                            <p>6.假冒他人专利的行为</p>
-                            <p>7.冒充专利的行为</p>
-                        </div>
-                    </div>
-                </div>
-            </li>
-            <li>
-                <div class="listImg">
-                    <img th:src="${portalHost + '/img/safeguarding/safeguarding06.png'}" alt="">
-                    <img th:src="${portalHost + '/img/safeguarding/safeguarding07.png'}" alt="">
+            </div>
+            <span>我要成为法律顾问</span>
+        </div>
+        <div class="safeIndexPic">
+            <img th:src="${portalHost+'/img/newMenu/safeIndex_1.png'}" alt="">
+        </div>
+        <div class="safeList">
+            <ul>
+                <li th:each="s:${slist}">
+	                <a th:href="@{/portal/service/safeguardingDetail(id=${s.uid})}">
+	                    <div>
+	                    	<img  th:src="${s.personPortraitUrl} != null and  ${s.personPortraitUrl} != '' ? ${avatarUploadHost+s.personPortraitUrl}:${portalHost + '/img/newMenu/policyBanner.png'}" alt="">
+	                    </div>
+	                    <h3 th:text="${s.username}">李四光</h3>
+	                    <span th:text="${s.workUnit}">长沙市律师长沙市律师</span>
+	                    <p th:text="${#strings.abbreviate(s.professionalTitle,16)}">专注于商标、版权、专利、不正当竞争...</p>
+	                </a>
+                </li>
+            </ul>
+            <div>
+                <a th:href="@{/portal/service/safeguardingList}">发现更多律师</a>
+            </div>
+        </div>
+    </div>
+    <div class="safeBottom">
+        <div class="container">
+            <div class="RecommendTitle">
+                <h2>维权小知识</h2>
+                <span></span>
+            </div>
+            <div class="picTxt">
+                <img th:src="${portalHost+'/img/newMenu/safeIndex_2.png'}" alt="">
+                <div>
+                    <h3>商标侵权</h3>
+                    <p>1、未经商标注册人的许可,在同一种商品或者类似商品上使用与其注册商标相同或者近似的商标的</p> 
+                    <p>2、销售侵犯注册商标专用权的商品的</p>
+                    <p>3、伪造、擅自制造他人注册商标标识或者销售伪造、擅自制造的注册商标标识</p> 
+                    <p>4、未经商标注册人同意,更换其注册商标并将该更换商标的商品又投入市场 </p> 
+                    <p>5、给他人的注册商标专用权造成其他损害的行为</p>
                 </div>
-                <div class="listTxt">
-                    <div>
-                        <img th:src="${portalHost + '/img/safeguarding/safeguarding_deng06.png'}" alt="" >
-                    </div>
-                    <div class="listTxtGrounp">
-                        <div>
-                            <h4>著作侵权</h4>
-                            <small><span class="red">Copyright infringement / </span>Conception</small>
-                            <p>1.未经著作权人许可,发表其作品的</p>
-                            <p>2.未经合作作者许可,将与他人合作创作的作品当作自己单独创作的作品发表的</p>
-                            <p>3.没有参加创作,为谋取个人名利,在他人作品上署名的</p>
-                            <p>4.歪曲、篡改他人作品的</p>
-                            <p>5.剽窃他人作品的</p>
-                            <p>6.未经著作权人许可,以展览、摄制电影和以类似摄制电影的方法使用作品,或者以改编、翻译、注释等方式使用作品的,本法另有规定的除外</p>
-                            <p>7.使用他人作品,应当支付报酬而未支付的</p>
-                            <p>8.未经电影作品和以类似摄制电影的方法创作的作品、计算机软件、录音录像制品的著作权人或者与著作权有关的权利人许可,出租其作品或者录音录像制品的,本法另有规定的除外</p>
-                            <p>9.未经出版者许可,使用其出版的图书、期刊的版式设计的</p>
-                            <p>10.未经表演者许可,从现场直播或者公开传送其现场表演,或者录制其表演的</p>
-                            <p>11.其他侵犯著作权以及与著作权有关的权益的行为</p>
-                        </div>
-                    </div>
+            </div>
+            <div class="picTxt">
+                <div>
+                    <h3>专利侵权</h3>
+                    <p>1、未经许可制造专利产品的行为</p> 
+                    <p>2、故意使用发明或实用新型专利产品的行为</p>
+                    <p>3、销售、许诺销售未经许可的专利产品的行为</p> 
+                    <p>4、使用专利方法以及使用、销售、许诺销售依照专利方法直接获得的产品的行为 </p> 
+                    <p>5、进口专利产品或进口依照专利方法直接得的产品的行为</p>
+                    <p>6、假冒他人专利的行为</p>
+                    <p>7、冒充专利的行为</p>
                 </div>
-            </li>
-        </ul>
+                <img th:src="${portalHost+'/img/newMenu/safeIndex_22.png'}" alt="">
+            </div>
+        </div>
     </div>
+   
     <!-- 下面是公共底部 -->
     <footer>
 		<div th:replace="common::copyright"></div>

+ 142 - 0
src/main/webapp/WEB-INF/views/portal/service/safeguardingDetail.html

@@ -0,0 +1,142 @@
+<!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">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>知识产权顾问</title>
+	<link th:href="${portalHost+'/vendors.css'}"  rel="stylesheet">
+	<link th:href="${portalHost+'/newMenu/safeguardingDetail.css'}"  rel="stylesheet">
+</head>
+
+<body>
+	<div th:replace="common::nav('','safeguardingDetail')"></div>
+    <!-- 公共头部结束 -->
+    <div class="safeBanner">
+        <div class="container">
+            <div class="bannerLeft">
+                <div class="portraitLeft">
+                    <div>
+                        <img  th:src="${sd.personPortraitUrl} != null and  ${sd.personPortraitUrl} != '' ? ${avatarUploadHost+sd.personPortraitUrl}:${portalHost + '/img/newMenu/policyBanner.png'}" alt="">
+                    </div>
+                    <!-- <p><img th:src="${portalHost + '/img/newMenu/safeAddress.png'}"  alt=""><span>湖南长沙</span></p> -->
+                </div>
+                <div class="portraitRight">
+                    <h4><span th:text="${sd.username}">李四光</span><img th:src="${portalHost + '/img/newMenu/sadeRezh.png'}" alt="">平台认证</h4>
+                    <p th:text="${sd.workUnit}">湖南好的噜律师事务所</p>
+                    <p th:text="${sd.professionalTitle}">湖南好的噜律师事务所委员职称</p>
+                    <a href="javascript:;" onclick="openZoosUrl('chatwin');">立即咨询</a>
+                </div>
+            </div>
+            <div class="bannerRight">
+                <h3>电话咨询热线</h3>
+                <p>400-8800-926</p>
+            </div>
+        </div>
+    </div>
+    <!--主体内容--> 
+    <div class="container safeBody">
+        <div class="safeBodyLeft">
+            <div class="safeIntroduce">
+                <h3>个人简介</h3>
+                <p th:text="${sd.introduction}">近日,多部门召开发布会,对未来房价能否继续平稳、猪肉价格会否大涨等民众关切问题,给予回应。近日,多部门召开发布会,对未来房价能否继续平稳、猪肉价格会否大涨等民众关切问题,给予回应。近日,多部门召开发布会,对未来房价能否继续</p>
+            </div>
+            <div class="safeIntroduce">
+                <h3>擅长行业</h3>
+                <p th:text="${sd.goodAtIndustry}">近日,多部门召开发布会,对未来房价能否继续平稳、猪肉价格会否大涨等民众关切问题,给予回应。近日,多部门召开发布会,对未来房价能否继续平稳、猪肉价格会否大涨等民众关切问题,给予回应。近日,多部门召开发布会,对未来房价能否继续</p>
+            </div>
+            <div class="safeIntroduce">
+                <h3>典型案例</h3>
+                <p th:text="${sd.typicalCase}">近日,多部门召开发布会,对未来房价能否继续平稳、猪肉价格会否大涨等民众关切问题,给予回应。近日,多部门召开发布会,对未来房价能否继续平稳、猪肉价格会否大涨等民众关切问题,给予回应。近日,多部门召开发布会,对未来房价能否继续</p>
+            </div>
+            <div class="adviser_list">
+                <p>用户评价</p>
+            </div>
+            <div class="evaluateList">
+                <div class="commentDetails">评价 :<span>好评-100%</span><span>中评-100%</span><span>差评-100%</span></div>
+                <div>
+                    <div class="commentStar">
+                        <span>选择星级 : </span>
+                        <div class="ulStar">
+                            <span class="glyphicon glyphicon-star-empty"></span>
+                            <span class="glyphicon glyphicon-star-empty"></span>
+                            <span class="glyphicon glyphicon-star-empty"></span>
+                            <span class="glyphicon glyphicon-star-empty"></span>
+                            <span class="glyphicon glyphicon-star-empty"></span>
+                        </div>
+                    </div>
+                    <textarea id="commentArea" placeholder="来说几句吧。。"></textarea>
+                    <div class="CommentSend">
+                        <button class="btn btn-primary">评论</button>
+                    </div>
+                </div>
+                <ul>
+                    <li>
+                        <div class="stasf">
+                            <p>用户 :<span class="uName">132465498</span></p>
+                            <div class="satisfied">
+                                <span>满意度:</span>
+                                <ol>
+                                    <li><span class="glyphicon glyphicon-star"></span></li>
+                                    <li><span class="glyphicon glyphicon-star"></span></li>
+                                    <li><span class="glyphicon glyphicon-star"></span></li>
+                                    <li><span class="glyphicon glyphicon-star"></span></li>
+                                    <li><span class="glyphicon glyphicon-star-empty"></span></li>
+                                </ol>
+                            </div>
+                        </div>
+                        <time>124/121/12</time>
+                        <div class="satisfiedContent">
+                            <p>dsadsadsadasdasd</p> 
+                        </div>
+                    </li>
+                </ul>
+                <div class="pagination_box">
+                    <nav aria-label="Page navigation" class="clearfix">
+                        <ul class="pagination">
+                            <li class="pagePre">
+                                <a href="#" aria-label="Previous">
+                                    <span aria-hidden="true">首页</span>
+                                </a>
+                            </li>
+                            <li class="pageNumber"><a href="#" value="1">1</a></li>
+                            <li class="pageNext">
+                                <a href="#" aria-label="Next">
+                                    <span aria-hidden="true">末页</span>
+                                </a>
+                            </li>
+                        </ul>
+                        <span class="totalCount">共0条数据</span>
+                    </nav>
+                </div>
+            </div>
+        </div>
+        <div class="safeBodyRight">
+            <p>看过该律师的用户还看过</p>
+            <ul>
+                <li th:each="adviser:${list}">
+                	<a th:href="@{/portal/service/safeguardingDetail(id=${adviser.uid})}">
+	                    <img th:src="${adviser.personPortraitUrl} != null and  ${adviser.personPortraitUrl} != '' ? ${avatarUploadHost+adviser.personPortraitUrl}:${portalHost + '/img/newMenu/policyBanner.png'}" alt="">
+	                    <div>
+	                        <h4><span th:text="${adviser.username}">李四光</span><span class="praise">好评率: <span th:text="${adviser.favorableRate}">98%</span></span></h4>
+	                        <p th:text="${adviser.workUnit}">湖南好的噜律师事务所</p>
+	                    </div>
+                    </a>
+                </li>
+            </ul>
+        </div>
+    </div>
+
+<!-- 公共底部开始 -->
+	<footer>
+		<div th:replace="common::copyright"></div>
+		<div th:replace="common::login"></div>
+	</footer>
+	<div th:replace="common::footer(~{::script})">
+		<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>
+		<script type="text/javascript" th:src="${portalHost+'/newMenu/safeguardingDetail.js'}"></script>
+	</div>
+</html>

+ 68 - 0
src/main/webapp/WEB-INF/views/portal/service/safeguardingList.html

@@ -0,0 +1,68 @@
+<!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">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>维权列表</title>
+	<link th:href="${portalHost+'/vendors.css'}"  rel="stylesheet">
+	<link th:href="${portalHost+'/newMenu/safeguardingList.css'}"  rel="stylesheet">
+</head>
+<body>
+	<div th:replace="common::nav('','safeguardingList')"></div>
+    <!-- 中间内容开始 -->
+    <div class="container">
+        <div class="indexSearch">
+            <div class="search-inp">
+                <div class="input-group">
+                    <input type="text" class="form-control demandSearch" placeholder="搜索您要找的律师">
+                    <span class="input-group-btn">
+                        <button class="btn btn-default searchBtn" type="button">
+                            <img th:src="${portalHost + '/img/newMenu/search-icon.jpg'}" alt=""> 搜索
+                        </button>
+                    </span>
+                </div>
+            </div>
+        </div>
+        <div class="sort">
+            <a class="relTime active">发布时间</a><a class="colNumber">关注量</a>
+        </div>
+        <div class="adviserList">
+            <ul>
+            </ul>
+        </div>
+        <div class="pagination_box">
+                <nav aria-label="Page navigation" class="clearfix">
+                    <ul class="pagination">
+                        <li class="pagePre">
+                            <a href="#" aria-label="Previous">
+                                <span aria-hidden="true">首页</span>
+                            </a>
+                        </li>
+                        <li class="pageNumber"><a href="#" value="1">1</a></li>
+                        <li class="pageNext">
+                            <a href="#" aria-label="Next">
+                                <span aria-hidden="true">末页</span>
+                            </a>
+                        </li>
+                    </ul>
+                    <div class="inp">
+                        <input type="text" class=""><button class="btn btn-default">跳转</button>
+                    </div>
+                    <span class="totalCount">共0条数据</span>
+                </nav>
+            </div>
+    </div>
+    <!-- 中间内容结束 -->
+   <footer>
+		<div th:replace="common::copyright"></div>
+		<div th:replace="common::login"></div>
+	</footer>
+	<div th:replace="common::footer(~{::script})">
+		<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>
+		<script type="text/javascript" th:src="${portalHost+'/newMenu/safeguardingList.js'}"></script>
+	</div>
+</body>
+</html>