Browse Source

门户--科技需求&科技成果添加、取消关注(感兴趣)

Antiloveg 8 years ago
parent
commit
52aaf03764

+ 16 - 0
schema/2017-05-28.sql

@@ -0,0 +1,16 @@
+CREATE TABLE `achievement_interest` (
+  `id` varchar(36) NOT NULL,
+  `achievement_id` varchar(36) NOT NULL COMMENT '科技成果ID',
+  `uid` varchar(36) NOT NULL COMMENT '感兴趣人ID',
+  `create_time` datetime NOT NULL COMMENT '记录创建时间(关注时间)',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='科技成果"感兴趣(关注)"';
+
+CREATE TABLE `demand_interest` (
+  `id` VARCHAR(36) NOT NULL,
+  `demand_id` VARCHAR(36) NOT NULL COMMENT '需求主键',
+  `uid` VARCHAR(36) NOT NULL COMMENT '关注人ID',
+  `create_time` DATETIME NOT NULL COMMENT '关注时间',
+  PRIMARY KEY (`id`))
+ENGINE = InnoDB
+COMMENT = '科技需求\"感兴趣(关注)\"'

+ 9 - 0
src/main/java/com/goafanti/achievement/service/AchievementInterestService.java

@@ -0,0 +1,9 @@
+package com.goafanti.achievement.service;
+
+public interface AchievementInterestService {
+
+	void saveAchievementInterest(String id);
+
+	int saveCancelAchievementInterest(String id);
+
+}

+ 1 - 0
src/main/java/com/goafanti/achievement/service/AchievementService.java

@@ -53,4 +53,5 @@ public interface AchievementService {
 
 	AchievementDetailBo selectAchievementSearchDetail(String id);
 
+
 }

+ 34 - 0
src/main/java/com/goafanti/achievement/service/impl/AchievementInterestServiceImpl.java

@@ -0,0 +1,34 @@
+package com.goafanti.achievement.service.impl;
+
+import java.util.Calendar;
+import java.util.UUID;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.goafanti.achievement.service.AchievementInterestService;
+import com.goafanti.common.dao.AchievementInterestMapper;
+import com.goafanti.common.model.AchievementInterest;
+import com.goafanti.core.shiro.token.TokenManager;
+@Service
+public class AchievementInterestServiceImpl implements AchievementInterestService{
+	@Autowired
+	private AchievementInterestMapper achievementInterestMapper;
+
+	@Override
+	public void saveAchievementInterest(String id) {
+		AchievementInterest ai = new AchievementInterest();
+		ai.setId(UUID.randomUUID().toString());
+		ai.setUid(TokenManager.getUserId());
+		ai.setAchievementId(id);
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		ai.setCreateTime(now.getTime());
+		achievementInterestMapper.insert(ai);
+	}
+
+	@Override
+	public int saveCancelAchievementInterest(String id) {
+		return achievementInterestMapper.deleteByPrimaryKey(id);
+	}
+}

+ 5 - 6
src/main/java/com/goafanti/achievement/service/impl/AchievementServiceImpl.java

@@ -325,11 +325,11 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		if (!StringUtils.isBlank(keyword)) {
 			params.put("keyword", keyword);
 		}
-		
-		if (null != bargainingMode){
+
+		if (null != bargainingMode) {
 			params.put("bargainingMode", bargainingMode);
 		}
-		
+
 		if (null != category) {
 			params.put("category", category);
 		}
@@ -368,12 +368,13 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		return (Pagination<AchievementSearchListBo>) findPage("findSearchAchievementListByPage",
 				"findSearchAchievementCount", params, pNo, pSize);
 	}
-	
+
 	@Override
 	public AchievementDetailBo selectAchievementSearchDetail(String id) {
 		return achievementMapper.selectAchievementSearchDetail(id);
 	}
 
+
 	private void createTechBorkerNotice(Achievement a) {
 		noticeMapper.insert(disposeNotice(a, null));
 	}
@@ -446,6 +447,4 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		}
 	}
 
-	
-
 }

+ 18 - 0
src/main/java/com/goafanti/common/dao/AchievementInterestMapper.java

@@ -0,0 +1,18 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.AchievementInterest;
+
+public interface AchievementInterestMapper {
+    int deleteByPrimaryKey(String id);
+
+    int insert(AchievementInterest record);
+
+    int insertSelective(AchievementInterest record);
+
+    AchievementInterest selectByPrimaryKey(String id);
+
+    int updateByPrimaryKeySelective(AchievementInterest record);
+
+    int updateByPrimaryKey(AchievementInterest record);
+
+}

+ 17 - 0
src/main/java/com/goafanti/common/dao/DemandInterestMapper.java

@@ -0,0 +1,17 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.DemandInterest;
+
+public interface DemandInterestMapper {
+    int deleteByPrimaryKey(String id);
+
+    int insert(DemandInterest record);
+
+    int insertSelective(DemandInterest record);
+
+    DemandInterest selectByPrimaryKey(String id);
+
+    int updateByPrimaryKeySelective(DemandInterest record);
+
+    int updateByPrimaryKey(DemandInterest record);
+}

+ 82 - 0
src/main/java/com/goafanti/common/mapper/AchievementInterestMapper.xml

@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.goafanti.common.dao.AchievementInterestMapper" >
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.AchievementInterest" >
+    <id column="id" property="id" jdbcType="VARCHAR" />
+    <result column="achievement_id" property="achievementId" jdbcType="VARCHAR" />
+    <result column="uid" property="uid" jdbcType="VARCHAR" />
+    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    id, achievement_id, uid, create_time
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select 
+    <include refid="Base_Column_List" />
+    from achievement_interest
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
+    delete from achievement_interest
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.AchievementInterest" >
+    insert into achievement_interest (id, achievement_id, uid, 
+      create_time)
+    values (#{id,jdbcType=VARCHAR}, #{achievementId,jdbcType=VARCHAR}, #{uid,jdbcType=VARCHAR}, 
+      #{createTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.AchievementInterest" >
+    insert into achievement_interest
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        id,
+      </if>
+      <if test="achievementId != null" >
+        achievement_id,
+      </if>
+      <if test="uid != null" >
+        uid,
+      </if>
+      <if test="createTime != null" >
+        create_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="achievementId != null" >
+        #{achievementId,jdbcType=VARCHAR},
+      </if>
+      <if test="uid != null" >
+        #{uid,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.AchievementInterest" >
+    update achievement_interest
+    <set >
+      <if test="achievementId != null" >
+        achievement_id = #{achievementId,jdbcType=VARCHAR},
+      </if>
+      <if test="uid != null" >
+        uid = #{uid,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.AchievementInterest" >
+    update achievement_interest
+    set achievement_id = #{achievementId,jdbcType=VARCHAR},
+      uid = #{uid,jdbcType=VARCHAR},
+      create_time = #{createTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 82 - 0
src/main/java/com/goafanti/common/mapper/DemandInterestMapper.xml

@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.goafanti.common.dao.DemandInterestMapper" >
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.DemandInterest" >
+    <id column="id" property="id" jdbcType="VARCHAR" />
+    <result column="demand_id" property="demandId" jdbcType="VARCHAR" />
+    <result column="uid" property="uid" jdbcType="VARCHAR" />
+    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    id, demand_id, uid, create_time
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select 
+    <include refid="Base_Column_List" />
+    from demand_interest
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
+    delete from demand_interest
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.DemandInterest" >
+    insert into demand_interest (id, demand_id, uid, 
+      create_time)
+    values (#{id,jdbcType=VARCHAR}, #{demandId,jdbcType=VARCHAR}, #{uid,jdbcType=VARCHAR}, 
+      #{createTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.DemandInterest" >
+    insert into demand_interest
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        id,
+      </if>
+      <if test="demandId != null" >
+        demand_id,
+      </if>
+      <if test="uid != null" >
+        uid,
+      </if>
+      <if test="createTime != null" >
+        create_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="demandId != null" >
+        #{demandId,jdbcType=VARCHAR},
+      </if>
+      <if test="uid != null" >
+        #{uid,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.DemandInterest" >
+    update demand_interest
+    <set >
+      <if test="demandId != null" >
+        demand_id = #{demandId,jdbcType=VARCHAR},
+      </if>
+      <if test="uid != null" >
+        uid = #{uid,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.DemandInterest" >
+    update demand_interest
+    set demand_id = #{demandId,jdbcType=VARCHAR},
+      uid = #{uid,jdbcType=VARCHAR},
+      create_time = #{createTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 54 - 0
src/main/java/com/goafanti/common/model/AchievementInterest.java

@@ -0,0 +1,54 @@
+package com.goafanti.common.model;
+
+import java.util.Date;
+
+public class AchievementInterest {
+    private String id;
+
+    /**
+    * 科技成果ID
+    */
+    private String achievementId;
+
+    /**
+    * 感兴趣人ID
+    */
+    private String uid;
+
+    /**
+    * 记录创建时间(关注时间)
+    */
+    private Date createTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getAchievementId() {
+        return achievementId;
+    }
+
+    public void setAchievementId(String achievementId) {
+        this.achievementId = achievementId;
+    }
+
+    public String getUid() {
+        return uid;
+    }
+
+    public void setUid(String uid) {
+        this.uid = uid;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 54 - 0
src/main/java/com/goafanti/common/model/DemandInterest.java

@@ -0,0 +1,54 @@
+package com.goafanti.common.model;
+
+import java.util.Date;
+
+public class DemandInterest {
+    private String id;
+
+    /**
+    * 需求主键
+    */
+    private String demandId;
+
+    /**
+    * 关注人ID
+    */
+    private String uid;
+
+    /**
+    * 关注时间
+    */
+    private Date createTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getDemandId() {
+        return demandId;
+    }
+
+    public void setDemandId(String demandId) {
+        this.demandId = demandId;
+    }
+
+    public String getUid() {
+        return uid;
+    }
+
+    public void setUid(String uid) {
+        this.uid = uid;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 9 - 0
src/main/java/com/goafanti/demand/service/DemandInterestService.java

@@ -0,0 +1,9 @@
+package com.goafanti.demand.service;
+
+public interface DemandInterestService {
+
+	int saveCancelDemandInterest(String id);
+
+	void saveAchievementInterest(String id);
+
+}

+ 34 - 0
src/main/java/com/goafanti/demand/service/impl/DemandInterestServiceImpl.java

@@ -0,0 +1,34 @@
+package com.goafanti.demand.service.impl;
+
+import java.util.Calendar;
+import java.util.UUID;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.goafanti.common.dao.DemandInterestMapper;
+import com.goafanti.common.model.DemandInterest;
+import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.demand.service.DemandInterestService;
+@Service
+public class DemandInterestServiceImpl implements DemandInterestService {
+	@Autowired
+	private  DemandInterestMapper demandInterestMapper;
+
+	@Override
+	public int saveCancelDemandInterest(String id) {
+		return demandInterestMapper.deleteByPrimaryKey(id);
+	}
+
+	@Override
+	public void saveAchievementInterest(String id) {
+		DemandInterest di = new DemandInterest();
+		di.setId(UUID.randomUUID().toString());
+		di.setDemandId(id);
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		di.setCreateTime(now.getTime());
+		di.setUid(TokenManager.getUserId());
+		demandInterestMapper.insert(di);
+	}
+}

+ 85 - 0
src/main/java/com/goafanti/portal/controller/PortalSearchApiController.java

@@ -9,10 +9,19 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.goafanti.achievement.service.AchievementInterestService;
 import com.goafanti.achievement.service.AchievementService;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.enums.AchievementAuditStatus;
+import com.goafanti.common.enums.AchievementReleaseStatus;
+import com.goafanti.common.enums.DeleteStatus;
+import com.goafanti.common.enums.DemandAuditStatus;
+import com.goafanti.common.enums.DemandReleaseStatus;
+import com.goafanti.common.model.Achievement;
+import com.goafanti.common.model.Demand;
+import com.goafanti.demand.service.DemandInterestService;
 import com.goafanti.demand.service.DemandService;
 
 @RestController
@@ -22,6 +31,82 @@ public class PortalSearchApiController extends BaseApiController {
 	private AchievementService	achievementService;
 	@Resource
 	private DemandService		demandService;
+	@Resource
+	private AchievementInterestService achievementInterestService;
+	@Resource
+	private DemandInterestService demandInterestService;
+	
+	
+	/**科技需求取消关注
+	 * 
+	 */
+	@RequestMapping(value = "/demandCancelInterest", method = RequestMethod.POST)
+	public Result demandCancelInterest(String id){
+		Result res = new Result();
+		if (StringUtils.isBlank(id)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到需求ID", "需求ID"));
+			return res;
+		}
+		res.setData(demandInterestService.saveCancelDemandInterest(id));
+		return res;
+	}
+
+	/**
+	 * 科技需求关注
+	 */
+	@RequestMapping(value = "/demandInterest", method = RequestMethod.POST)
+	public Result demandInterest(String id) {
+		Result res = new Result();
+		if (StringUtils.isBlank(id)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到需求ID", "需求ID"));
+			return res;
+		}
+		Demand d = demandService.selectByPrimaryKey(id);
+		if (null == d || d.getDeletedSign().equals(DeleteStatus.DELETED.getCode())
+				|| !d.getAuditStatus().equals(DemandAuditStatus.AUDITED.getCode())
+				|| !d.getReleaseStatus().equals(DemandReleaseStatus.UNRELEASE.getCode())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "需求ID"));
+			return res;
+		}
+		demandInterestService.saveAchievementInterest(id);
+		return res;
+	}
+	
+	
+	/**科技成果取消关注
+	 * 
+	 */
+	@RequestMapping(value = "/achievementCancelInterest", method = RequestMethod.POST)
+	public Result achievementCancelInterest(String id){
+		Result res = new Result();
+		if (StringUtils.isBlank(id)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果ID", "成果ID"));
+			return res;
+		}
+		res.setData(achievementInterestService.saveCancelAchievementInterest(id));
+		return res;
+	}
+
+	/**
+	 * 科技成果关注
+	 */
+	@RequestMapping(value = "/achievementInterest", method = RequestMethod.POST)
+	public Result achievementInterest(String id) {
+		Result res = new Result();
+		if (StringUtils.isBlank(id)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果ID", "成果ID"));
+			return res;
+		}
+		Achievement a = achievementService.selectByPrimaryKey(id);
+		if (null == a || a.getDeletedSign().equals(DeleteStatus.DELETED.getCode())
+				|| !a.getAuditStatus().equals(AchievementAuditStatus.AUDITED.getCode())
+				|| !a.getReleaseStatus().equals(AchievementReleaseStatus.UNRELEASE.getCode())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "成果ID"));
+			return res;
+		}
+		achievementInterestService.saveAchievementInterest(id);
+		return res;
+	}
 
 	/**
 	 * 科技成果搜索