Explorar o código

Merge branch 'test' of jishutao/jitao-server into prod

liliang4869 %!s(int64=7) %!d(string=hai) anos
pai
achega
f1fe1aecbd
Modificáronse 31 ficheiros con 442 adicións e 85 borrados
  1. 5 0
      .gitignore
  2. 7 0
      src/main/java/com/goafanti/app/bo/ExpertsListBo.java
  3. 12 0
      src/main/java/com/goafanti/app/controller/AppUserController.java
  4. 1 1
      src/main/java/com/goafanti/app/controller/OpenAppHomeController.java
  5. 0 38
      src/main/java/com/goafanti/business/service/impl/JtBusinessServiceImpl.java
  6. 9 1
      src/main/java/com/goafanti/common/controller/PublicController.java
  7. 7 6
      src/main/java/com/goafanti/common/controller/WebpageController.java
  8. 2 0
      src/main/java/com/goafanti/common/dao/JtMessageConsumerMapper.java
  9. 2 0
      src/main/java/com/goafanti/common/dao/UserMapper.java
  10. 7 0
      src/main/java/com/goafanti/common/mapper/JtMessageConsumerMapper.xml
  11. 39 5
      src/main/java/com/goafanti/common/mapper/JtMessageProducerMapper.xml
  12. 1 1
      src/main/java/com/goafanti/common/mapper/UserIdentityMapper.xml
  13. 6 0
      src/main/java/com/goafanti/common/mapper/UserMapper.xml
  14. 22 0
      src/main/java/com/goafanti/common/model/JtMessageProducer.java
  15. 57 0
      src/main/java/com/goafanti/common/utils/InvitationCodeUtils.java
  16. 1 1
      src/main/java/com/goafanti/common/utils/TimeUtils.java
  17. 18 0
      src/main/java/com/goafanti/demand/bo/AppDemandBo.java
  18. 32 4
      src/main/java/com/goafanti/message/JGMessageHelper.java
  19. 18 0
      src/main/java/com/goafanti/message/bo/AppMessageBo.java
  20. 34 4
      src/main/java/com/goafanti/message/controller/AdminMessageController.java
  21. 3 1
      src/main/java/com/goafanti/message/service/JtMessageProducerService.java
  22. 1 0
      src/main/java/com/goafanti/message/service/MessageService.java
  23. 59 4
      src/main/java/com/goafanti/message/service/impl/JtMessageProducerServiceImpl.java
  24. 11 0
      src/main/java/com/goafanti/message/service/impl/MessageServiceImpl.java
  25. 17 1
      src/main/java/com/goafanti/portal/bo/AchievementObject.java
  26. 24 8
      src/main/java/com/goafanti/user/controller/UserRegisterController.java
  27. 35 0
      src/main/java/com/goafanti/user/service/impl/UserIdentityServiceImpl.java
  28. 2 0
      src/main/resources/props/config_local.properties
  29. 2 0
      src/main/resources/props/config_test.properties
  30. 7 9
      src/main/webapp/WEB-INF/views/common.html
  31. 1 1
      src/main/webapp/WEB-INF/views/portal/service/services.html

+ 5 - 0
.gitignore

@@ -2,3 +2,8 @@
 /bin/
 /.classpath
 /.settings
+/bin/
+/bin/
+/bin/
+/bin/
+/bin/

+ 7 - 0
src/main/java/com/goafanti/app/bo/ExpertsListBo.java

@@ -25,6 +25,7 @@ public class ExpertsListBo {
 	private String typicalCase;
 	private String honer;
 	private String goodAtIndustry;
+	private String mobile;
 	public String getUid() {
 		return uid;
 	}
@@ -157,5 +158,11 @@ public class ExpertsListBo {
 	public void setGoodAtIndustry(String goodAtIndustry) {
 		this.goodAtIndustry = goodAtIndustry;
 	}
+	public String getMobile() {
+		return mobile;
+	}
+	public void setMobile(String mobile) {
+		this.mobile = mobile;
+	}
 	
 }

+ 12 - 0
src/main/java/com/goafanti/app/controller/AppUserController.java

@@ -240,6 +240,18 @@ public class AppUserController extends CertifyApiController {
 		messageService.updateMessageConsumer(messageId);
 		return res;
 	}
+	/**
+	 * 读取推送消息
+	 * @param messageId
+	 * @throws IllegalAccessException 
+	 * @throws InvocationTargetException 
+	 */
+	@RequestMapping(value = "/readJpushMessage",method = RequestMethod.GET)
+	private Result readJpushMessage(String messageId){
+		Result res = new Result();
+		res.data(messageService.updateReadJpushMessage(messageId));
+		return res;
+	}
 
 	/**
 	 * 查询环信昵称和头像

+ 1 - 1
src/main/java/com/goafanti/app/controller/OpenAppHomeController.java

@@ -204,7 +204,7 @@ public class OpenAppHomeController extends BaseApiController{
 	 * @return
 	 */
 	@RequestMapping(value = "/getApplicationData" , method = RequestMethod.GET)
-	public Result getApplicationData(String apiUrl,Integer pageNo,Integer pageSize,HttpServletRequest request) {
+	public Result getApplicationData() {
 		Result result=new Result();
 		Map<String, Object> map=jtTagService.getApplicationData(3,1,3,3,3,1,2);
 		map.put("technologyProject", jtBusinessService.getCategoryByModule(5,2,6));

+ 0 - 38
src/main/java/com/goafanti/business/service/impl/JtBusinessServiceImpl.java

@@ -6,19 +6,14 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
-
-import org.apache.poi.poifs.property.Child;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
-
 import com.goafanti.business.bo.JtBusinessCategoryBo;
 import com.goafanti.business.bo.JtBusinessCategoryTree;
 import com.goafanti.business.bo.JtBusinessProjectResult;
 import com.goafanti.business.bo.makeMoneyCategoryListBo;
 import com.goafanti.business.service.JtBusinessService;
-import com.goafanti.comment.bo.CommentDetailResult;
 import com.goafanti.common.bo.MyCollection;
 import com.goafanti.common.dao.JtBusinessCategoryMapper;
 import com.goafanti.common.dao.JtBusinessProjectMapper;
@@ -27,18 +22,14 @@ import com.goafanti.common.dao.JtCommodityCommentMapper;
 import com.goafanti.common.dao.JtTagMapper;
 import com.goafanti.common.enums.BusinessCategoryModule;
 import com.goafanti.common.enums.ProjectAuditStatus;
-import com.goafanti.common.enums.UserAuthentication;
 import com.goafanti.common.enums.collectType;
 import com.goafanti.common.model.JtBusinessCategory;
-import com.goafanti.common.model.JtBusinessCategoryExample;
 import com.goafanti.common.model.JtBusinessProject;
 import com.goafanti.common.model.JtCollectSearch;
-import com.goafanti.common.model.JtTag;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
-import com.goafanti.order.enums.AuditState;
 
 @Service
 public class JtBusinessServiceImpl  extends BaseMybatisDao<JtBusinessProjectMapper> implements JtBusinessService{
@@ -56,19 +47,16 @@ public class JtBusinessServiceImpl  extends BaseMybatisDao<JtBusinessProjectMapp
 	private JtCollectSearchMapper	jtCollectSearchMapper;
 	@Override
 	public JtBusinessCategory getBusinessCategoryByLayerAndName(Integer layer, String name) {
-		// TODO Auto-generated method stub 
 		return jtBusinessCategoryMapper.getBusinessCategoryByLayerAndName(layer, name);
 	}
 
 	@Override
 	public List<JtBusinessCategory> getBusinessCategoryBySuperId(String id,Integer size) {
-		// TODO Auto-generated method stub
 		return jtBusinessCategoryMapper.getBusinessCategoryBySuperId(id,size);
 	}
 
 	@Override
 	public List<JtBusinessProject> getBusinessProjectByCategoryId(String id,Integer size,Integer isHot) {
-		// TODO Auto-generated method stub
 		return jtBusinessProjectMapper.getBusinessProjectByCategoryId(id,size,isHot);
 	}
 
@@ -85,7 +73,6 @@ public class JtBusinessServiceImpl  extends BaseMybatisDao<JtBusinessProjectMapp
 
 	@Override
 	public JtBusinessCategoryTree getCategoryTree(String id) {
-		// TODO Auto-generated method stub
 		return jtBusinessCategoryMapper.getCategoryTree(id);
 	}
 	
@@ -158,7 +145,6 @@ public class JtBusinessServiceImpl  extends BaseMybatisDao<JtBusinessProjectMapp
 
 	@Override
 	public int insertCategory(JtBusinessCategory jtBusinessCategory) {
-		// TODO Auto-generated method stub
 //		jtBusinessCategoryMapper.autoIncreaseSort(jtBusinessCategory.getLayer(),jtBusinessCategory.getSort()); 
 		if(jtBusinessCategory.getSuperId()!=null && jtBusinessCategory.getLayer().intValue()==1 && jtBusinessCategory.getSuperId().length()>0)return -2;
 		//查看是否重名
@@ -207,7 +193,6 @@ public class JtBusinessServiceImpl  extends BaseMybatisDao<JtBusinessProjectMapp
 
 	@Override
 	public int deleteCategoryById(String id) {
-		// TODO Auto-generated method stub
 		//查找品类
 		JtBusinessCategory sp=jtBusinessCategoryMapper.selectByPrimaryKey(id);
 		//查找子品类 存在子品类不允许删除
@@ -224,14 +209,12 @@ public class JtBusinessServiceImpl  extends BaseMybatisDao<JtBusinessProjectMapp
 
 	@Override
 	public JtBusinessCategory getCategoryById(String id) {
-		// TODO Auto-generated method stub
 		return jtBusinessCategoryMapper.selectByPrimaryKey(id);
 	}
 
 	@Override
 	public int updateCategory(JtBusinessCategory jtBusinessCategory) {
 		// 层级不会变
-		// TODO Auto-generated method stub
 		//修改不影响结构的数据
 		JtBusinessCategory category = new JtBusinessCategory();
 		category.setId(jtBusinessCategory.getId());
@@ -311,27 +294,10 @@ public class JtBusinessServiceImpl  extends BaseMybatisDao<JtBusinessProjectMapp
 
 	
 	
-	private Map<String, Object> disposeCategoryParams(String name,Integer layer ) {
-		Map<String, Object> params = new HashMap<>();
-
-		if (layer!=null) {
-			params.put("layer", layer);
-		}
-
-	
-
 	
-		if (StringUtils.isNotBlank(name)) {
-			params.put("name", name);
-		}
-
-		
-		return params;
-	}
 
 	@Override
 	public int insertProject(JtBusinessProject jtBusinessProject) {
-		// TODO Auto-generated method stub
 		jtBusinessProject.setCreateTime(new Date());
 		jtBusinessProject.setId(UUID.randomUUID().toString());
 		jtBusinessProject.setOwnerId(TokenManager.getUserId());
@@ -348,7 +314,6 @@ public class JtBusinessServiceImpl  extends BaseMybatisDao<JtBusinessProjectMapp
 				cSize=Integer.parseInt(nbString)+1;
 				cSize=Math.max(cSize, projects.size()+1);
 				}catch (Exception e) {
-					// TODO: handle exception
 					return -1;
 				}
 			}
@@ -387,13 +352,11 @@ public class JtBusinessServiceImpl  extends BaseMybatisDao<JtBusinessProjectMapp
 
 	@Override
 	public List<JtBusinessProject> getProjectsLimit(Integer size) {
-		// TODO Auto-generated method stub
 		return jtBusinessProjectMapper.findProjectOrderByNumber();
 	}
 
 	@Override
 	public int deleteByIdAndUid(String id) {
-		// TODO Auto-generated method stub
 		if(TokenManager.getUserId()==null)return -1;
 		return jtBusinessProjectMapper.deleteByIdAndUid(id,TokenManager.getUserId());
 	}
@@ -401,7 +364,6 @@ public class JtBusinessServiceImpl  extends BaseMybatisDao<JtBusinessProjectMapp
 	@SuppressWarnings("unchecked")
 	@Override
 	public Pagination<JtBusinessProject> listProjectIInterestedIn(Integer pageNo,Integer pageSize) {
-		// TODO Auto-generated method stub
 
 		if (pageNo == null || pageNo < 0) {
 			pageNo = 1;

+ 9 - 1
src/main/java/com/goafanti/common/controller/PublicController.java

@@ -5,6 +5,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 
@@ -35,6 +36,7 @@ import com.goafanti.common.model.User;
 import com.goafanti.common.service.DistrictGlossoryService;
 import com.goafanti.common.service.FieldGlossoryService;
 import com.goafanti.common.service.IndustryCategoryService;
+import com.goafanti.common.utils.InvitationCodeUtils;
 import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.common.utils.MobileMessageUtils;
 import com.goafanti.common.utils.PasswordUtil;
@@ -769,5 +771,11 @@ public class PublicController extends BaseController {
 		res.setData(pagination);
 		return res;
 	}
-	
+	@RequestMapping(value = "/InvitationCode", method = RequestMethod.GET)
+	@ResponseBody
+	public Result InvitationCode() {
+		Result res = new Result();
+		res.data(InvitationCodeUtils.toSerialCode(new Date().getTime()));
+		return res;
+	}
 }

+ 7 - 6
src/main/java/com/goafanti/common/controller/WebpageController.java

@@ -1430,10 +1430,11 @@ public class WebpageController extends BaseController {
 	@RequestMapping(value = "/portal/service/safeguarding", method = RequestMethod.GET)
 	public ModelAndView portalServiceSafeguarding(HttpServletRequest request, ModelAndView modelview){
 		//获得法律顾问列表数据
-		String id = TokenManager.getUserId();
-		if(null != id){
-			modelview.addObject("userType", userService.selectByPrimaryKey(id).getType());
+		User u = userService.selectByPrimaryKey(TokenManager.getUserId());
+		if(null != u&&u.getType()!=null){
+			modelview.addObject("userType",u.getType() );
 		}
+		
 		modelview.addObject("slist", userIdentityService.consultantList( null, 1,  4,  null, null, null,  0,  12).getList());
 		modelview.setViewName("/portal/service/safeguarding");
 		return modelview;
@@ -1482,9 +1483,9 @@ public class WebpageController extends BaseController {
 	@RequestMapping(value = "/portal/adviser", method = RequestMethod.GET)
 	public ModelAndView portalAdviser(ModelAndView modelview){
 		modelview.setViewName("/portal/adviser");
-		String id = TokenManager.getUserId();
-		if(null != id){
-			modelview.addObject("userType", userService.selectByPrimaryKey(id).getType());
+		User u = userService.selectByPrimaryKey(TokenManager.getUserId());
+		if(null != u&&u.getType()!=null){
+			modelview.addObject("userType",u.getType() );
 		}
 		return modelview;
 	}

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

@@ -80,4 +80,6 @@ public interface JtMessageConsumerMapper {
 	AppMessageBo selectById(String id);
 	
 	int addBatch(List<JtMessageConsumer> list);
+
+	JtMessageConsumer getMessageConsumer(@Param("messageId")String messageId, @Param("userId")String userId);
 }

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

@@ -115,4 +115,6 @@ public interface UserMapper {
 	List<JtMessageConsumer> getAllUser();
 	
 	int getCountByMobile(@Param("id")String id,@Param("mobile")String mobile);
+
+	List<String> getUserListMobile();
 }

+ 7 - 0
src/main/java/com/goafanti/common/mapper/JtMessageConsumerMapper.xml

@@ -298,4 +298,11 @@
 	where a.delete_sign=0 and b.delete_sign=0 and  b.is_draft=0 and b.is_send=1
 	and a.id=#{id,jdbcType=VARCHAR}
   </select>
+  <select id="getMessageConsumer" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from jt_message_consumer
+    where message_id=#{messageId,jdbcType=VARCHAR}
+	and aid= #{userId,jdbcType=VARCHAR}
+  </select>
 </mapper>

+ 39 - 5
src/main/java/com/goafanti/common/mapper/JtMessageProducerMapper.xml

@@ -19,6 +19,8 @@
     <result column="is_draft" jdbcType="BIT" property="isDraft" />
     <result column="is_send" jdbcType="BIT" property="isSend" />
     <result column="delete_sign" jdbcType="BIT" property="deleteSign" />
+    <result column="code" jdbcType="VARCHAR" property="code" />
+    <result column="resource_name" jdbcType="VARCHAR" property="resourceName" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <!--
@@ -95,7 +97,7 @@
       This element was generated on Wed Aug 29 09:46:33 CST 2018.
     -->
     id, creater, create_time, send_time, title, body, subject, resource_id, resource_type, 
-    is_draft, is_send, delete_sign
+    is_draft, is_send, delete_sign,code,resource_name
   </sql>
   <select id="selectByExample" parameterType="com.goafanti.common.model.JtMessageProducerExample" resultMap="BaseResultMap">
     <!--
@@ -156,11 +158,11 @@
     insert into jt_message_producer (id, creater, create_time, 
       send_time, title, body, 
       subject, resource_id, resource_type, 
-      is_draft, is_send, delete_sign)
+      is_draft, is_send, delete_sign,code,resource_name)
     values (#{id,jdbcType=VARCHAR}, #{creater,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
       #{sendTime,jdbcType=TIMESTAMP}, #{title,jdbcType=VARCHAR}, #{body,jdbcType=VARCHAR}, 
       #{subject,jdbcType=INTEGER}, #{resourceId,jdbcType=VARCHAR}, #{resourceType,jdbcType=INTEGER}, 
-      #{isDraft,jdbcType=BIT}, #{isSend,jdbcType=BIT}, #{deleteSign,jdbcType=BIT})
+      #{isDraft,jdbcType=BIT}, #{isSend,jdbcType=BIT}, #{deleteSign,jdbcType=BIT},#{code,jdbcType=VARCHAR},#{resourceName,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.JtMessageProducer">
     <!--
@@ -206,6 +208,12 @@
       <if test="deleteSign != null">
         delete_sign,
       </if>
+      <if test="code != null">
+        code,
+      </if>
+        <if test="resourceName != null">
+        resource_name,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -244,6 +252,12 @@
       <if test="deleteSign != null">
         #{deleteSign,jdbcType=BIT},
       </if>
+      <if test="code != null">
+        #{code,jdbcType=VARCHAR},
+      </if>
+        <if test="resourceName != null">
+        #{resourceName,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.goafanti.common.model.JtMessageProducerExample" resultType="java.lang.Integer">
@@ -370,6 +384,12 @@
       <if test="deleteSign != null">
         delete_sign = #{deleteSign,jdbcType=BIT},
       </if>
+       <if test="code != null">
+        code = #{code,jdbcType=VARCHAR},
+      </if>
+        <if test="resourceName != null">
+        resource_name = #{resourceName,jdbcType=VARCHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -390,7 +410,9 @@
       resource_type = #{resourceType,jdbcType=INTEGER},
       is_draft = #{isDraft,jdbcType=BIT},
       is_send = #{isSend,jdbcType=BIT},
-      delete_sign = #{deleteSign,jdbcType=BIT}
+      delete_sign = #{deleteSign,jdbcType=BIT},
+      code = #{code,jdbcType=VARCHAR},
+      resource_name = #{resourceName,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
   </update>
   
@@ -399,7 +421,7 @@
   	select 
     id, creater, create_time as createTime, send_time as sendTime, title, body, subject, 
     resource_id as resourceId, resource_type as resourceType, 
-    is_draft as isDraft, is_send as isSend, delete_sign as deleteSign
+    is_draft as isDraft, is_send as isSend, delete_sign as deleteSign,code,resource_name as resourceName
     from jt_message_producer
     where delete_sign = 0 
     <if test="title != null">
@@ -421,6 +443,12 @@
     <if test="sendStartTime != null and sendEndTime != null">
     and send_time between #{sendStartTime,jdbcType=VARCHAR}  and #{sendEndTime,jdbcType=VARCHAR}
     </if>
+    <if test="code != null">
+    and code = #{code,jdbcType=VARCHAR}
+    </if>
+    <if test="subject != null">
+    and subject =  #{subject,jdbcType=INTEGER}
+    </if>
     order by create_time desc
     <if test="page_sql!=null">
         ${page_sql}
@@ -447,5 +475,11 @@
     <if test="sendStartTime != null and sendEndTime != null">
     and send_time between #{sendStartTime,jdbcType=VARCHAR}  and #{sendEndTime,jdbcType=VARCHAR}
     </if>
+    <if test="code != null">
+    and code = #{code,jdbcType=VARCHAR}
+    </if>
+    <if test="subject != null">
+    and subject =  #{subject,jdbcType=INTEGER}
+    </if>
   </select>
 </mapper>

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

@@ -1538,7 +1538,7 @@ 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,a.consultant_type as consultantType from user_identity a 
+	select a.id,a.uid as uid,b.mobile,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>

+ 6 - 0
src/main/java/com/goafanti/common/mapper/UserMapper.xml

@@ -1250,5 +1250,11 @@
 	<select id="getCountByMobile" parameterType="com.goafanti.common.model.User" resultType="java.lang.Integer">
 		select count(0) from user where mobile = #{mobile,jdbcType=VARCHAR} and id &lt;&gt; #{id,jdbcType=VARCHAR}
 	</select>
+	<select id="getUserListMobile"  resultType="java.lang.String">
+	select mobile from `user`
+ 		where status=0
+ 		and source=0
+ 		and audit_status=2
+	</select>
 
 </mapper>

+ 22 - 0
src/main/java/com/goafanti/common/model/JtMessageProducer.java

@@ -64,6 +64,12 @@ public class JtMessageProducer {
 	 * @mbggenerated  Wed Aug 29 09:46:33 CST 2018
 	 */
 	private Boolean deleteSign;
+	
+	
+	private String code;
+	
+	
+	private String resourceName;
 
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column jt_message_producer.id
@@ -280,4 +286,20 @@ public class JtMessageProducer {
 	public void setDeleteSign(Boolean deleteSign) {
 		this.deleteSign = deleteSign;
 	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getResourceName() {
+		return resourceName;
+	}
+
+	public void setResourceName(String resourceName) {
+		this.resourceName = resourceName;
+	}
 }

+ 57 - 0
src/main/java/com/goafanti/common/utils/InvitationCodeUtils.java

@@ -0,0 +1,57 @@
+package com.goafanti.common.utils;
+
+import java.util.Date;
+import java.util.Random;
+
+
+public class InvitationCodeUtils {
+	/** 自定义进制(选择你想要的进制数,不能重复且最好不要0、1这些容易混淆的字符) */
+    private static final char[] r=new char[]{'Q', 'W', 'E', '8', 'S', '2', 'D', 'Z', 'X', '9', 'C', '7', 'P', '5', 'K', '3', 'M', 'J', 'U', 'F', 'R', '4', 'V', 'Y', 'T', 'N', '6', 'B', 'G', 'H'};
+ 
+ 
+ 
+    /** 进制长度 */
+    private static final int binLen=r.length;
+ 
+    /** 邀请码长度 */
+    private static final int s=12;
+ 
+    /**
+     * 根据ID生成随机码
+     * @param id ID
+     * @return 随机码
+     */
+    public static String toSerialCode(long id) {
+        char[] buf=new char[32];
+        int charPos=32;
+        System.out.println(id);
+        while((id / binLen) > 0) {
+            int ind=(int)(id % binLen);
+            buf[--charPos]=r[ind];
+            id /= binLen;
+            
+        }
+        buf[--charPos]=r[(int)(id % binLen)];
+        String str=new String(buf, charPos, (32 - charPos));
+        // 不够长度的自动随机补全
+        if(str.length() < s) {
+            StringBuilder sb=new StringBuilder();
+            
+            Random rnd=new Random();
+            for(int i=1; i <= s - str.length(); i++) {
+            sb.append(r[rnd.nextInt(binLen)]);
+            System.out.println(rnd.nextInt(binLen));
+            }
+            str+=sb.toString();
+        }
+        return str;
+    }
+ /*
+  public static void main(String[] args) {
+	  for (int i = 0; i < 100; i++) {
+		  System.out.println(toSerialCode(new Date().getTime()));
+	}
+}*/
+
+	
+}

+ 1 - 1
src/main/java/com/goafanti/common/utils/TimeUtils.java

@@ -12,7 +12,7 @@ public class TimeUtils {
 
 	public static Boolean checkOverTime(String s) {
 		Boolean flag = false;
-		if ("getMCode".equals(s)) {
+		 if ("getMCode".equals(s)) {
 			if (System.currentTimeMillis()
 					- (Long) TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE_TIME) > 60000) {
 				flag = true;

+ 18 - 0
src/main/java/com/goafanti/demand/bo/AppDemandBo.java

@@ -3,6 +3,10 @@ package com.goafanti.demand.bo;
 import java.math.BigDecimal;
 import java.util.Date;
 
+import org.apache.commons.lang3.time.DateFormatUtils;
+
+import com.goafanti.common.constant.AFTConstants;
+
 public class AppDemandBo {
 	   private int fieldA;//行业
 	    private int fieldB;//行业二级
@@ -62,6 +66,13 @@ public class AppDemandBo {
 		public void setReleaseDate(Date releaseDate) {
 			this.releaseDate = releaseDate;
 		}
+		public String getReleaseDateFormattedDate() {
+			if (this.releaseDate == null) {
+				return null;
+			} else {
+				return DateFormatUtils.format(this.getReleaseDate(), AFTConstants.YYYYMMDDHHMMSS);
+			}
+		}
 		public int getInterestCount() {
 			return interestCount;
 		}
@@ -152,6 +163,13 @@ public class AppDemandBo {
 		public void setCreateTime(Date createTime) {
 			this.createTime = createTime;
 		}
+		public String getCreateTimeFormattedDate() {
+			if (this.createTime == null) {
+				return null;
+			} else {
+				return DateFormatUtils.format(this.getCreateTime(), AFTConstants.YYYYMMDDHHMMSS);
+			}
+		}
 		public String getPictureUrlMin() {
 			return pictureUrlMin;
 		}

+ 32 - 4
src/main/java/com/goafanti/message/JGMessageHelper.java

@@ -13,6 +13,7 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 
+import com.goafanti.common.model.JtMessageProducer;
 import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.message.bo.MessageAdapter;
 import com.goafanti.message.bo.MessageBo;
@@ -50,6 +51,8 @@ public class JGMessageHelper implements InitializingBean, DisposableBean{
 	private static final Logger logger = LoggerFactory.getLogger(JGMessageHelper.class);
 	private static final int MAX_TRYCOUNT = 3;
 	private static final String MESSAGE_ID = "message_id";//消息ID
+	private static final String MESSAGE_TITLE = "message_title";//消息ID
+	private static final String MESSAGE_BODY = "message_body";//消息ID
 	private static final String RESOURCE_ID =  "resource_id";//资源ID
 	private static final String RESOURCE_TYPE = "resource_type";//资源类型
 	public void send(MessageAdapter messageAdapter){
@@ -115,6 +118,34 @@ public class JGMessageHelper implements InitializingBean, DisposableBean{
 		}
 	}
 	
+	public void sendPushMessage(JtMessageProducer mp){
+		MessageAdapter ma = new MessageAdapter();
+		if(mp !=null&&StringUtils.isNotBlank(mp.getId())){
+			ma.pushPayload(PushPayload.newBuilder()
+					.setPlatform(Platform.android_ios())
+					.setAudience(Audience.all())
+					.setNotification(Notification.newBuilder()
+							.setAlert("")
+			        		.addPlatformNotification(AndroidNotification.newBuilder()
+			        				.addExtra(MESSAGE_ID, mp.getId())
+			        				.addExtra(MESSAGE_TITLE, mp.getTitle())
+			        				.addExtra(MESSAGE_BODY, mp.getBody())
+			        				.addExtra(RESOURCE_ID, mp.getResourceId() == null ? "" : mp.getResourceId())
+			        				.addExtra(RESOURCE_TYPE, mp.getResourceType() == null ? "":mp.getResourceType().toString()).build())
+			        		.addPlatformNotification(IosNotification.newBuilder()
+			        				.incrBadge(1)
+			        				.setContentAvailable(true)
+			        				.addExtra(MESSAGE_ID, mp.getId())
+			        				.addExtra(MESSAGE_TITLE, mp.getTitle())
+			        				.addExtra(MESSAGE_BODY, mp.getBody())
+			        				.addExtra(RESOURCE_ID, mp.getResourceId() == null ? "" : mp.getResourceId())
+			        				.addExtra(RESOURCE_TYPE, mp.getResourceType()== null ? "": mp.getResourceType().toString()).build())
+			        		.build())
+					.build());
+			send(ma);
+		}
+	}
+	
 	public void sendSystemMessage(MessageBo... mb){
 		for(MessageBo bo : mb){
 			sendSystemMessage(bo);
@@ -142,10 +173,7 @@ public class JGMessageHelper implements InitializingBean, DisposableBean{
 		MessageAdapter ma = new MessageAdapter().pushPayload( 
 				PushPayload.newBuilder()
 		.setPlatform(Platform.android_ios())
-		.setAudience(Audience.newBuilder()
-				.addAudienceTarget(
-						AudienceTarget.registrationId("101d8559094270e0d78"))
-				.build())
+		.setAudience(Audience.all())
 		.setNotification(Notification.newBuilder()
         		.setAlert("消息标题")
         		.addPlatformNotification(AndroidNotification.newBuilder()

+ 18 - 0
src/main/java/com/goafanti/message/bo/AppMessageBo.java

@@ -2,6 +2,10 @@ package com.goafanti.message.bo;
 
 import java.util.Date;
 
+import org.apache.commons.lang3.time.DateFormatUtils;
+
+import com.goafanti.common.constant.AFTConstants;
+
 public class AppMessageBo {
 	private String id;
 	private String title;
@@ -45,5 +49,19 @@ public class AppMessageBo {
 	public void setSendTime(Date sendTime) {
 		this.sendTime = sendTime;
 	}
+	public String getSendTimeFormattedDate() {
+		if (this.sendTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.getSendTime(), AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
+	public String getCreateTimeFormattedDate() {
+		if (this.createTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.getCreateTime(), AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
 	
 }

+ 34 - 4
src/main/java/com/goafanti/message/controller/AdminMessageController.java

@@ -4,6 +4,7 @@ import java.text.ParseException;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import javax.annotation.Resource;
@@ -331,6 +332,34 @@ public class AdminMessageController extends CertifyApiController{
 		}
 		return res;
 	}
+	/**
+	 * 发送短信消息
+	 * @param messageId
+	 * @return
+	 */
+	@RequestMapping(value = "/mobileMessage", method = RequestMethod.GET)
+	public Result mobileMessage(String messageCode){
+		Result res = checkMessageCode(messageCode);
+		if (res.getError().isEmpty()) {
+			//发送消息
+			res.setData(jtMessageProducerService.MobileMessage(messageCode));
+		}
+		return res;
+	}
+	
+	private Result checkMessageCode(String messageCode) {
+		Result res = new Result();
+		if(StringUtils.isBlank(messageCode)){
+			res.getError().add(buildError("", "消息Code不能为空"));
+		}
+		String regex = "^(SMS_)\\d{8}$";
+		Pattern p = Pattern.compile(regex);
+		Matcher m = p.matcher(messageCode);
+		if ( !m.matches()) {
+			res.getError().add(buildError("", "消息Codec错误"));
+			}
+		return res;
+	}
 	
 	/**
 	 * 获得单个消息数据接口
@@ -377,14 +406,15 @@ public class AdminMessageController extends CertifyApiController{
 	 * @return
 	 */
 	@RequestMapping(value="/getMessageList", method = RequestMethod.GET)
-	public Result getMessageList(JtMessageProducer messageProducer,String sendStartTime, String sendEndTime, Integer pageNo,Integer pageSize ){
+	public Result getMessageList(JtMessageProducer messageProducer,String sendStartTime, String sendEndTime,String messageCode,Integer subject, Integer pageNo,Integer pageSize ){
 		Result res = new Result();
-		if(StringUtils.isBlank(TokenManager.getUserId())){
+		/*if(StringUtils.isBlank(TokenManager.getUserId())){
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"", "登录数据失效"));
-		}
+			return res;
+		}*/
 		if (res.getError().isEmpty()) {
 			//查看消息列表
-			res.setData(jtMessageProducerService.getMessageList(messageProducer, sendStartTime, sendEndTime, pageNo, pageSize ));
+			res.setData(jtMessageProducerService.getMessageList(messageProducer, sendStartTime, sendEndTime, messageCode, subject,pageNo, pageSize ));
 		}
 		return res;
 	}

+ 3 - 1
src/main/java/com/goafanti/message/service/JtMessageProducerService.java

@@ -37,5 +37,7 @@ public interface JtMessageProducerService {
 	 * 消息列表
 	 * @return
 	 */
-	Pagination<JtMessageProducer> getMessageList(JtMessageProducer messageProducer, String sendStartTime, String sendEndTime, Integer pageNo,Integer pageSize);
+	Pagination<JtMessageProducer> getMessageList(JtMessageProducer messageProducer, String sendStartTime, String sendEndTime, String code,Integer subject,Integer pageNo,Integer pageSize);
+
+	int MobileMessage(String messageCode);
 }

+ 1 - 0
src/main/java/com/goafanti/message/service/MessageService.java

@@ -163,6 +163,7 @@ public interface MessageService {
 
 	 Pagination<AppMessageBo> applistMessage(Integer pageNo, Integer pageSize);
 	 AppMessageBo updateAppReadMessage(String id);
+	int updateReadJpushMessage(String messageId);
 		
 
 	

+ 59 - 4
src/main/java/com/goafanti/message/service/impl/JtMessageProducerServiceImpl.java

@@ -1,14 +1,18 @@
 package com.goafanti.message.service.impl;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import com.goafanti.common.dao.AdminMapper;
@@ -17,9 +21,11 @@ import com.goafanti.common.dao.JtMessageProducerMapper;
 import com.goafanti.common.dao.UserMapper;
 import com.goafanti.common.model.JtMessageConsumer;
 import com.goafanti.common.model.JtMessageProducer;
+import com.goafanti.common.utils.MobileMessageUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.message.JGMessageHelper;
 import com.goafanti.message.service.JtMessageProducerService;
 
 @Service
@@ -32,6 +38,12 @@ public class JtMessageProducerServiceImpl  extends BaseMybatisDao<JtMessageProdu
 	private AdminMapper adminMapper;
 	@Autowired
 	private JtMessageConsumerMapper jtMessageConsumerMapper;
+	@Autowired
+	private JGMessageHelper jgMessageHelper;
+	@Value(value = "${accessKey}")
+	private String					accessKey			= null;
+	@Value(value = "${accessSecret}")
+	private String					accessSecret		= null;
 	
 
 	@Override
@@ -50,6 +62,9 @@ public class JtMessageProducerServiceImpl  extends BaseMybatisDao<JtMessageProdu
 		if(null != messageProducer.getCreateTime()){
 			messageProducer.setCreateTime(new Date());
 		}
+		if (messageProducer.getResourceType()==null) {
+			messageProducer.setResourceType(-1);//安卓跳转处理
+		}
 		return jtMessageProducerMapper.insertSelective(messageProducer);
 	}
 	
@@ -69,8 +84,16 @@ public class JtMessageProducerServiceImpl  extends BaseMybatisDao<JtMessageProdu
 		messageProducer.setIsSend(true);
 		messageProducer.setIsDraft(false);
 		jtMessageProducerMapper.updateByPrimaryKeySelective(messageProducer);
+		JtMessageProducer producer=jtMessageProducerMapper.selectByPrimaryKey(messageId);
+		if (producer!=null) {
+			if (producer.getSubject()==1) {
+				//推送消息
+				jgMessageHelper.sendPushMessage(producer);
+			}
+		}
 		return jtMessageConsumerMapper.addBatch(list);
 	}
+	
 
 	@Override
 	public JtMessageProducer getMessageById(String messageId) {
@@ -80,20 +103,21 @@ public class JtMessageProducerServiceImpl  extends BaseMybatisDao<JtMessageProdu
 	@Override
 	public int updateMessageById(JtMessageProducer messageProducer) {
 		int count = 0;
+		// 修改消息
+		messageProducer.setCreateTime(null);//不修改创建时间
+		count = jtMessageProducerMapper.updateByPrimaryKeySelective(messageProducer);
 		// 推送消息
 		if(messageProducer.getIsSend() && !messageProducer.getDeleteSign() && !messageProducer.getIsDraft()){
 			if(null == messageProducer.getSendTime()) messageProducer.setSendTime(new Date());
 			count += addSendMessage(messageProducer.getId());
 		}
-		// 修改消息
-		messageProducer.setCreateTime(null);//不修改创建时间
-		count = jtMessageProducerMapper.updateByPrimaryKeySelective(messageProducer);
 		return count;
 	}
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<JtMessageProducer> getMessageList(JtMessageProducer messageProducer, String sendStartTime, String sendEndTime, Integer pageNo,Integer pageSize) {
+	public Pagination<JtMessageProducer> getMessageList(JtMessageProducer messageProducer, String sendStartTime, String sendEndTime,
+			String messageCode,Integer subject,Integer pageNo,Integer pageSize){
 		if(pageNo==null || pageNo<1)pageNo=1;
 		if(pageSize==null ||pageSize<1)pageSize=10; 
 		Map<String, Object> params=new HashMap<String,Object>();
@@ -103,8 +127,39 @@ public class JtMessageProducerServiceImpl  extends BaseMybatisDao<JtMessageProdu
 		if(null != messageProducer.getIsSend())params.put("isSend",messageProducer.getIsSend());
 		if(StringUtils.isNotBlank(sendStartTime))params.put("sendStartTime",sendStartTime);
 		if(StringUtils.isNotBlank(sendEndTime))params.put("sendEndTime",sendEndTime);
+		if(StringUtils.isNotBlank(messageCode))params.put("code",messageCode);
+		if(null!=subject)params.put("subject",subject);
 		return (Pagination<JtMessageProducer>) findPage("getMyMessageList", "getMyMessageCount", params, pageNo, pageSize);
 	}
 
+	@Override
+	public int MobileMessage(String messageCode) {
+		String regex = "^(1[1-9][0-9])\\d{8}$";
+		Pattern p = Pattern.compile(regex);
+		List<String> mobileList=userMapper.getUserListMobile();
+		String mobile="";
+		for (String string : mobileList) {
+			if (null!=string) {
+				Matcher m = p.matcher(string);
+			if ( m.matches()) {
+				mobile+=string+",";
+				}
+			}
+		}
+		if(mobile.length()>1)mobile=mobile.substring(0, mobile.length()-1);
+		MobileMessageUtils.sendMessage(messageCode, null, mobile, accessKey, accessSecret);
+		JtMessageProducer producer=new JtMessageProducer();
+		producer.setId(UUID.randomUUID().toString());
+		producer.setSubject(2);
+		producer.setIsSend(true);
+		producer.setIsDraft(false);
+		producer.setDeleteSign(false);
+		producer.setCode(messageCode);
+		producer.setSendTime(new Date());
+		jtMessageProducerMapper.insertSelective(producer);
+		return 1;
+		
+	}
+
 
 }

+ 11 - 0
src/main/java/com/goafanti/message/service/impl/MessageServiceImpl.java

@@ -458,6 +458,17 @@ public class MessageServiceImpl  extends BaseMybatisDao<MessageFromSystemMapper>
 		return jtMessageConsumerMapper.selectById(id);
 	}
 
+	@Override
+	public int updateReadJpushMessage(String messageId) {
+		JtMessageConsumer j=jtMessageConsumerMapper.getMessageConsumer(messageId,TokenManager.getUserId());
+		int i=0;
+		if (j!=null) {
+			j.setIsRead(true);
+			 i=jtMessageConsumerMapper.updateByPrimaryKeySelective(j);
+		}
+		return i;
+	}
+
 	
 
 }

+ 17 - 1
src/main/java/com/goafanti/portal/bo/AchievementObject.java

@@ -3,7 +3,10 @@ package com.goafanti.portal.bo;
 
 import java.util.Date;
 
+import org.apache.commons.lang3.time.DateFormatUtils;
+
 import com.goafanti.achievement.bo.InputAchievement;
+import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.enums.AchievementCategory;
 import com.goafanti.common.enums.AchievementDataCategory;
 import com.goafanti.common.enums.Maturity;
@@ -58,6 +61,13 @@ public class AchievementObject extends InputAchievement {
 	public void setReleaseDate(Date releaseDate) {
 		this.releaseDate = releaseDate;
 	}
+	public String getReleaseDateFormattedDate() {
+		if (this.releaseDate == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.getReleaseDate(), AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
 	public String getFieldAS() {
 		return fieldAS;
 	}
@@ -166,7 +176,13 @@ public class AchievementObject extends InputAchievement {
 	public void setCreateTime(Date createTime) {
 		this.createTime = createTime;
 	}
-	
+	public String getCreateTimeFormattedDate() {
+		if (this.createTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.getCreateTime(), AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
 
 	
 	

+ 24 - 8
src/main/java/com/goafanti/user/controller/UserRegisterController.java

@@ -65,19 +65,27 @@ public class UserRegisterController extends BaseController {
 					UserFields.getFieldDesc(bindingResult.getFieldError().getField())));
 			return res;
 		}
+		if (StringUtils.isBlank(user.getUnitName())) {
+			res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "用户名不能为空"));
+			return res;
+		}
+		if (StringUtils.isBlank(user.getMobile())) {
+			res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "手机号码不能为空"));
+			return res;
+		}
 		User u = userService.selectByMobieAndType(user.getMobile().trim(),user.getType());
 		if (null != u) {
 			res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "用户已存在"));
 		}
+		if (TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE_TIME) ==null||!TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE).equals(mobileCode.toLowerCase())) {
+			res.getError().add(buildError(ErrorConstants.MCODE_ERROR, "手机验证码错误"));
+			return res;
+		}
 		// 验证码15分钟有效
 		if (TimeUtils.checkOverTime("register")) {
 			res.getError().add(buildError(ErrorConstants.MCODE_OVERTIME_ERROR, "手机验证码超时失效"));
 			return res;
 		}
-		if (!TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE).equals(mobileCode.toLowerCase())) {
-			res.getError().add(buildError(ErrorConstants.MCODE_ERROR, "手机验证码错误"));
-			return res;
-		}
 		if (res.getError().isEmpty()) {
 			User us = new User();
 			us.setId(UUID.randomUUID().toString());
@@ -118,19 +126,27 @@ public class UserRegisterController extends BaseController {
 					UserFields.getFieldDesc(bindingResult.getFieldError().getField())));
 			return res;
 		}
+		if (StringUtils.isBlank(user.getUnitName())) {
+			res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "用户名不能为空"));
+			return res;
+		}
+		if (StringUtils.isBlank(user.getMobile())) {
+			res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "手机号码不能为空"));
+			return res;
+		}
 		User u = userService.selectByMobieAndType(user.getMobile().trim(),user.getType());
 		if (null != u) {
 			res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "用户已存在"));
 		}
+		if (TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE_TIME) ==null||!TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE).equals(mobileCode.toLowerCase())) {
+			res.getError().add(buildError(ErrorConstants.MCODE_ERROR, "手机验证码错误"));
+			return res;
+		}
 		// 验证码15分钟有效
 		if (TimeUtils.checkOverTime("register")) {
 			res.getError().add(buildError(ErrorConstants.MCODE_OVERTIME_ERROR, "手机验证码超时失效"));
 			return res;
 		}
-		if (!TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE).equals(mobileCode.toLowerCase())) {
-			res.getError().add(buildError(ErrorConstants.MCODE_ERROR, "手机验证码错误"));
-			return res;
-		}
 		if (res.getError().isEmpty()) {
 			User us = new User();
 			us.setId(UUID.randomUUID().toString());

+ 35 - 0
src/main/java/com/goafanti/user/service/impl/UserIdentityServiceImpl.java

@@ -6,6 +6,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -43,6 +45,7 @@ import com.goafanti.common.model.Notice;
 import com.goafanti.common.model.User;
 import com.goafanti.common.model.UserIdentity;
 import com.goafanti.common.utils.LoggerUtils;
+import com.goafanti.common.utils.MobileMessageUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
@@ -76,6 +79,16 @@ public class UserIdentityServiceImpl extends BaseMybatisDao<UserIdentityMapper>
 	JtCollectSearchMapper	jtCollectSearchMapper;
 	@Value(value="${collect_flag}")
 	private Boolean collectFlag ;
+	@Value(value = "${examineAdopt}")
+	private String					examineAdopt	= null;
+	@Value(value = "${examineNoAdopt}")
+	private String					examineNoAdopt	= null;
+
+	@Value(value = "${accessKey}")
+	private String					accessKey			= null;
+
+	@Value(value = "${accessSecret}")
+	private String					accessSecret		= null;
 	
 
 	private static final Logger	logger	= LoggerFactory.getLogger(UserIdentityServiceImpl.class);
@@ -592,6 +605,7 @@ public class UserIdentityServiceImpl extends BaseMybatisDao<UserIdentityMapper>
 		identity.setAuditStatus(auditStatus);*/
 		if(collectFlag){
 		ExpertsListBo u=userIdentityMapper.selectByIdentityId(identity.getId());
+		String str="";
 		if (identity.getAuditStatus()==2) {
 				JtCollectSearch r=new JtCollectSearch();
 				if(u.getExpert()==1){
@@ -600,9 +614,15 @@ public class UserIdentityServiceImpl extends BaseMybatisDao<UserIdentityMapper>
 				if(u.getExpert()==2){
 					if(u.getConsultantType() == 4){
 						r.setFromTable(collectType.LEGAL_ADVISER.getDesc());
+						str="法律顾问认证";
 					}else{
 						r.setFromTable(collectType.ADVISER.getDesc());
+						str="顾问认证";
 					}
+					//通过后短信通知
+					String code="";
+					examineSendMessage(u, str, examineAdopt);
+					
 				}
 				r.setKeyword(SocietyTagStatus.getStatus(u.getKeyword()).getDesc());
 				r.setTitle(u.getUsername());
@@ -617,10 +637,25 @@ public class UserIdentityServiceImpl extends BaseMybatisDao<UserIdentityMapper>
 		
 		if (identity.getAuditStatus()==4||identity.getAuditStatus()==3) {
 			if(collectFlag)jtCollectSearchMapper.deleteByrowId(u.getUid());
+			//不通过短信通知
+			examineSendMessage(u, str, examineNoAdopt);
 			}
 		}
 		return userIdentityMapper.updateAuditing(identity);
 	}
+
+	private void examineSendMessage(ExpertsListBo u, String str, String code) {
+		//String paramString = "{\"code\":\"" + mobileVerifyCode + "\",\"product\":\"技淘网\"}";
+		String paramString = "{\"audit\":\"" + str  + "}";
+		String regex = "^(1[1-9][0-9])\\d{8}$";
+		Pattern p = Pattern.compile(regex);
+		if (null!=u.getMobile()) {
+				Matcher m = p.matcher(u.getMobile());
+			if ( m.matches()) {
+				MobileMessageUtils.sendMessage(code, paramString, u.getMobile(), accessKey, accessSecret);
+				}
+		}
+	}
 	
 
 	@Override

+ 2 - 0
src/main/resources/props/config_local.properties

@@ -71,6 +71,8 @@ aesSecretKey=aft1234567890123
 
 mobileCodeTemplate=SMS_37845022
 patentTemplate=SMS_72005286
+examineAdopt=SMS_147971258
+examineNoAdopt=SMS_147971261
 
 easemob.client.url=https://a1.easemob.com/1117170814115609/jitao
 easemob.client.id=YXA6RUDGkIDSEeemq9_4PWzcNA

+ 2 - 0
src/main/resources/props/config_test.properties

@@ -70,6 +70,8 @@ aesSecretKey=aft1234567890123
 
 mobileCodeTemplate=SMS_37845022
 patentTemplate=SMS_72005286
+examineAdopt=SMS_147971258
+examineNoAdopt=SMS_147971261
 
 easemob.client.url=https://a1.easemob.com/1117170814115609/jitao
 easemob.client.id=YXA6RUDGkIDSEeemq9_4PWzcNA

+ 7 - 9
src/main/webapp/WEB-INF/views/common.html

@@ -98,23 +98,21 @@
 						<img th:src="${portalHost+'/img/index/index_webkit2.png'}" alt="">
 					</span>
 					<p>
-						<a th:href="@{/portal/service/serviceIndex#serviceHigh}">高新技术企业服务</a>
+						<a th:href="@{/portal/service/serviceIndex#Md2}">品牌建设</a>
 					</p>
 					<p>
-						<a th:href="@{/portal/service/serviceIndex#serviceAuthentication}">企业资质认定</a>
+						<a th:href="@{/portal/service/serviceIndex#Md3}">市场开拓</a>
 					</p>
 					<p>
-						<!-- <a th:href="@{/portal/service/serviceIndex#serviceProperty}">知识产权</a> -->
-						<a th:href="@{/portal/service/serviceIndex#serviceProject}">科技项目</a>
-						<a th:href="@{/portal/service/serviceIndex#serviceCustomer}">合作客户</a>
+						<a th:href="@{/portal/service/serviceIndex#Md4}">政府扶持</a>
 					</p>
 					<p>
-						<a th:href="@{/portal/service/serviceIndex#serviceAdministration}">管理体系</a>
-						<a th:href="@{/portal/service/serviceIndex#serviceAbility}">服务能力</a>
+						<a th:href="@{/portal/service/serviceIndex#Md5}">减税免税</a>
+						<a th:href="@{/portal/service/serviceIndex#Md6}">融资租售   </a>
 					</p>
 					<p>
-						<!-- <a th:href="@{/portal/service/serviceIndex#serviceProcess}">服务流程</a> -->
-						<a th:href="@{/portal/service/serviceIndex#serviceBrand}">品牌通   </a>
+						<a th:href="@{/portal/service/serviceIndex#Md7}">攻防利器</a>
+						<a th:href="@{/portal/service/serviceIndex#Md7}">他山己用</a>
 					</p>
 				</li>
 				<li>

+ 1 - 1
src/main/webapp/WEB-INF/views/portal/service/services.html

@@ -132,7 +132,7 @@
                     <p>扩大融资上市和投资并购运作的增值收益</p>
                     <p>提高其他政策扶持项目的评审加分</p>
                     <p>规范管理和运用无形资产</p>
-                    <p class="colorP">知识产权,是知识产权标的基础</p>
+                    <p class="colorP">知识产权,是知识产权标的基础</p>
                     <a onclick="openZoosUrl('chatwin');" class="blur">立即办理贯标业务</a>
                     <a href="/portal/practicalPatent">了解更多贯标知识</a>
                  </div>