Browse Source

Merge branch 'master' of https://git.coding.net/aft/AFT

wubb 8 years ago
parent
commit
add2b21e50
23 changed files with 772 additions and 26 deletions
  1. 11 0
      schema/20170725-lectureUser.sql
  2. 105 0
      src/main/java/com/goafanti/LectureUser/bo/LectureUserListBo.java
  3. 40 0
      src/main/java/com/goafanti/LectureUser/controller/UserLectureUserApiController.java
  4. 25 0
      src/main/java/com/goafanti/LectureUser/service/LectureUserService.java
  5. 111 0
      src/main/java/com/goafanti/LectureUser/service/impl/LectureUserServiceImpl.java
  6. 1 1
      src/main/java/com/goafanti/activityUser/controller/UserActivityUserApiController.java
  7. 5 0
      src/main/java/com/goafanti/activityUser/service/ActivityUserService.java
  8. 11 0
      src/main/java/com/goafanti/activityUser/service/impl/ActivityUserServiceImpl.java
  9. 77 0
      src/main/java/com/goafanti/admin/controller/AdminLectureUserApiController.java
  10. 4 0
      src/main/java/com/goafanti/common/dao/ActivityUserMapper.java
  11. 24 0
      src/main/java/com/goafanti/common/dao/LectureUserMapper.java
  12. 10 2
      src/main/java/com/goafanti/common/mapper/ActivityUserMapper.xml
  13. 8 4
      src/main/java/com/goafanti/common/mapper/DemandMapper.xml
  14. 21 7
      src/main/java/com/goafanti/common/mapper/LectureMapper.xml
  15. 206 0
      src/main/java/com/goafanti/common/mapper/LectureUserMapper.xml
  16. 9 0
      src/main/java/com/goafanti/common/model/ActivityUserKey.java
  17. 18 8
      src/main/java/com/goafanti/common/model/Lecture.java
  18. 31 0
      src/main/java/com/goafanti/common/model/LectureUser.java
  19. 38 0
      src/main/java/com/goafanti/common/model/LectureUserKey.java
  20. 11 0
      src/main/java/com/goafanti/lecture/bo/InputLecture.java
  21. 0 1
      src/main/webapp/WEB-INF/views/portal/activity/details.html
  22. 4 2
      src/main/webapp/WEB-INF/views/portal/detail/achievementDetail.html
  23. 2 1
      src/main/webapp/WEB-INF/views/portal/scienceTechnology/lecture.html

+ 11 - 0
schema/20170725-lectureUser.sql

@@ -0,0 +1,11 @@
+CREATE TABLE `lecture_user` (
+  `lid` BIGINT NOT NULL COMMENT '讲堂ID',
+  `uid` VARCHAR(36) NOT NULL COMMENT '报名人ID',
+  `create_time` DATETIME NULL COMMENT '创建时间(首次咨询时间)',
+  `last_update_time` DATETIME NULL COMMENT '最近一次咨询时间',
+  PRIMARY KEY (`lid`, `uid`))
+ENGINE = InnoDB DEFAULT CHARSET=utf8mb4
+COMMENT = '科技讲堂报名';
+
+alter table `lecture` 
+add column `lecturer` varchar(45) NULL comment '讲师';

+ 105 - 0
src/main/java/com/goafanti/LectureUser/bo/LectureUserListBo.java

@@ -0,0 +1,105 @@
+package com.goafanti.LectureUser.bo;
+
+import java.util.Date;
+
+import org.apache.commons.lang3.time.DateFormatUtils;
+
+import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.model.LectureUser;
+
+public class LectureUserListBo extends LectureUser {
+	private String	lectureName;
+
+	private Integer	number;
+
+	private String	mobile;
+
+	private String	username;
+
+	private String	unitName;
+
+	private Date	lectureTime;
+
+	private Date	endTime;
+
+	public String getLectureName() {
+		return lectureName;
+	}
+
+	public void setLectureName(String lectureName) {
+		this.lectureName = lectureName;
+	}
+
+	public Integer getNumber() {
+		return number;
+	}
+
+	public void setNumber(Integer number) {
+		this.number = number;
+	}
+
+	public String getMobile() {
+		return mobile;
+	}
+
+	public void setMobile(String mobile) {
+		this.mobile = mobile;
+	}
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+	public String getUnitName() {
+		return unitName;
+	}
+
+	public void setUnitName(String unitName) {
+		this.unitName = unitName;
+	}
+
+	public Date getLectureTime() {
+		return lectureTime;
+	}
+
+	public void setLectureTime(Date lectureTime) {
+		this.lectureTime = lectureTime;
+	}
+
+	public Date getEndTime() {
+		return endTime;
+	}
+
+	public void setEndTime(Date endTime) {
+		this.endTime = endTime;
+	}
+
+	public String getLectureTimeFormattedDate() {
+		if (this.lectureTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.lectureTime, AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
+
+	public void setLectureTimeFormattedDate(String lectureTimeFormattedDate) {
+
+	}
+
+	public String getEndTimeFormattedDate() {
+		if (this.endTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.endTime, AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
+
+	public void setEndTimeFormattedDate(String endTimeFormattedDate) {
+
+	}
+
+}

+ 40 - 0
src/main/java/com/goafanti/LectureUser/controller/UserLectureUserApiController.java

@@ -0,0 +1,40 @@
+package com.goafanti.LectureUser.controller;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.goafanti.LectureUser.service.LectureUserService;
+import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.ErrorConstants;
+import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.model.LectureUser;
+import com.goafanti.common.model.LectureUserKey;
+import com.goafanti.core.shiro.token.TokenManager;
+@RestController
+@RequestMapping(value = "/api/user/lectureUser")
+public class UserLectureUserApiController extends BaseApiController{
+	@Resource
+	private LectureUserService lectureUserService;
+	
+	/**
+	 * 报名
+	 */
+	@RequestMapping(value = "/signUp", method = RequestMethod.POST)
+	public Result signUp(Long lid){
+		Result res = new Result();
+		if (null == lid) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技讲堂ID"));
+			return res;
+		}
+		LectureUser au = lectureUserService.selectByPrimaryKey(new LectureUserKey(lid, TokenManager.getUserId()));
+		if (null == au){
+			lectureUserService.save(lid);
+		} else {
+			lectureUserService.update(au);
+		}
+		return res;
+	}
+}

+ 25 - 0
src/main/java/com/goafanti/LectureUser/service/LectureUserService.java

@@ -0,0 +1,25 @@
+package com.goafanti.LectureUser.service;
+
+import java.util.List;
+
+import com.goafanti.LectureUser.bo.LectureUserListBo;
+import com.goafanti.common.model.LectureUser;
+import com.goafanti.common.model.LectureUserKey;
+import com.goafanti.core.mybatis.page.Pagination;
+
+public interface LectureUserService {
+	void save(Long lid);
+
+	int update(LectureUser au);
+
+	int batchDeleteByPrimaryKey(List<String> asList);
+
+	LectureUser selectByPrimaryKey(LectureUserKey lectureUserKey);
+
+	Pagination<LectureUserListBo> listLectureUser(String lectureName, String mobile, String username, Integer number,
+			Integer pSize, Integer pNo);
+
+	Pagination<LectureUserListBo> listLectureOrg(String lectureName, String mobile, String unitName, Integer number,
+			Integer pSize, Integer pNo);
+
+}

+ 111 - 0
src/main/java/com/goafanti/LectureUser/service/impl/LectureUserServiceImpl.java

@@ -0,0 +1,111 @@
+package com.goafanti.LectureUser.service.impl;
+
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.goafanti.LectureUser.bo.LectureUserListBo;
+import com.goafanti.LectureUser.service.LectureUserService;
+import com.goafanti.common.dao.LectureUserMapper;
+import com.goafanti.common.model.LectureUser;
+import com.goafanti.common.model.LectureUserKey;
+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;
+
+@Service
+public class LectureUserServiceImpl extends BaseMybatisDao<LectureUserMapper> implements LectureUserService {
+	@Autowired
+	private LectureUserMapper lectureUserMapper;
+
+	@Override
+	public void save(Long lid) {
+		LectureUser lu = new LectureUser();
+		lu.setLid(lid);
+		lu.setUid(TokenManager.getUserId());
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		lu.setCreateTime(now.getTime());
+		lu.setLastUpdateTime(lu.getCreateTime());
+		lectureUserMapper.insert(lu);
+	}
+
+	@Override
+	public int update(LectureUser lu) {
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		lu.setLastUpdateTime(now.getTime());
+		return lectureUserMapper.updateByPrimaryKeySelective(lu);
+	}
+
+	@Override
+	public int batchDeleteByPrimaryKey(List<String> id) {
+		return lectureUserMapper.batchDeleteByPrimaryKey(id);
+	}
+
+	@Override
+	public LectureUser selectByPrimaryKey(LectureUserKey key) {
+		return lectureUserMapper.selectByPrimaryKey(key);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public Pagination<LectureUserListBo> listLectureUser(String lectureName, String mobile, String username,
+			Integer number, Integer pSize, Integer pNo) {
+		if (pNo == null || pNo < 0) {
+			pNo = 1;
+		}
+
+		if (pSize == null || pSize < 0 || pSize > 10) {
+			pSize = 10;
+		}
+		return (Pagination<LectureUserListBo>) findPage("findLectureUserListByPage", "findLectureUserCount",
+				disposeLectureList(lectureName, mobile, number, username, null), pNo, pSize);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public Pagination<LectureUserListBo> listLectureOrg(String lectureName, String mobile, String unitName,
+			Integer number, Integer pSize, Integer pNo) {
+		if (pNo == null || pNo < 0) {
+			pNo = 1;
+		}
+
+		if (pSize == null || pSize < 0 || pSize > 10) {
+			pSize = 10;
+		}
+		return (Pagination<LectureUserListBo>) findPage("findLectureOrgListByPage", "findLectureOrgCount",
+				disposeLectureList(lectureName, mobile, number, null, unitName), pNo, pSize);
+	}
+
+	private Map<String, Object> disposeLectureList(String lectureName, String mobile, Integer number, String username,
+			String unitName) {
+		Map<String, Object> params = new HashMap<>();
+
+		if (StringUtils.isNotBlank(mobile)) {
+			params.put("mobile", mobile);
+		}
+
+		if (null != number) {
+			params.put("number", number);
+		}
+
+		if (StringUtils.isNotBlank(lectureName)) {
+			params.put("lectureName", lectureName);
+		}
+
+		if (StringUtils.isNotBlank(username)) {
+			params.put("username", username);
+		}
+
+		if (StringUtils.isNotBlank(unitName)) {
+			params.put("unitName", unitName);
+		}
+		return params;
+	}
+}

+ 1 - 1
src/main/java/com/goafanti/activityUser/controller/UserActivityUserApiController.java

@@ -29,7 +29,7 @@ public class UserActivityUserApiController extends BaseApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "活动ID"));
 			return res;
 		}
-		ActivityUser au = activityUserService.selectByUid(TokenManager.getUserId());
+		ActivityUser au = activityUserService.selectByAidAndUid(aid, TokenManager.getUserId());
 		if (null == au){
 			activityUserService.save(aid);
 		} else {

+ 5 - 0
src/main/java/com/goafanti/activityUser/service/ActivityUserService.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.goafanti.activityUser.bo.ActivityUserListBo;
 import com.goafanti.common.model.ActivityUser;
+import com.goafanti.common.model.ActivityUserKey;
 import com.goafanti.core.mybatis.page.Pagination;
 
 public interface ActivityUserService {
@@ -22,4 +23,8 @@ public interface ActivityUserService {
 
 	int batchDeleteByPrimaryKey(List<String> asList);
 
+	ActivityUser selectByPrimaryKey(ActivityUserKey key);
+
+	ActivityUser selectByAidAndUid(Long aid, String userId);
+
 }

+ 11 - 0
src/main/java/com/goafanti/activityUser/service/impl/ActivityUserServiceImpl.java

@@ -12,6 +12,7 @@ import com.goafanti.activityUser.bo.ActivityUserListBo;
 import com.goafanti.activityUser.service.ActivityUserService;
 import com.goafanti.common.dao.ActivityUserMapper;
 import com.goafanti.common.model.ActivityUser;
+import com.goafanti.common.model.ActivityUserKey;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -111,4 +112,14 @@ public class ActivityUserServiceImpl extends BaseMybatisDao<ActivityUserMapper>
 		return activityUserMapper.batchDeleteByPrimaryKey(id);
 	}
 
+	@Override
+	public ActivityUser selectByPrimaryKey(ActivityUserKey key) {
+		return activityUserMapper.selectByPrimaryKey(key);
+	}
+
+	@Override
+	public ActivityUser selectByAidAndUid(Long aid, String uid) {
+		return activityUserMapper.selectByAidAndUid(aid, uid);
+	}
+
 }

+ 77 - 0
src/main/java/com/goafanti/admin/controller/AdminLectureUserApiController.java

@@ -0,0 +1,77 @@
+package com.goafanti.admin.controller;
+
+import java.util.Arrays;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.goafanti.LectureUser.service.LectureUserService;
+import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.ErrorConstants;
+import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.utils.StringUtils;
+
+@RestController
+@RequestMapping(value = "/api/admin/lectureUser")
+public class AdminLectureUserApiController extends BaseApiController{
+	@Resource
+	private LectureUserService lectureUserService;
+
+	/**
+	 * 科技讲堂个人用户报名列表
+	 */
+	@RequestMapping(value = "/userList", method = RequestMethod.GET)
+	public Result activityUserList(String lectureName, String mobile, String username, Integer number, String pageSize,
+			String pageNo) {
+		Result res = new Result();
+		res.setData(lectureUserService.listLectureUser(lectureName, mobile, username, number, getPSize(pageSize),
+				getPNo(pageNo)));
+		return res;
+	}
+
+	/**
+	 * 科技讲堂组织用户报名列表
+	 */
+	@RequestMapping(value = "/orgList", method = RequestMethod.GET)
+	public Result activityOrgList(String lectureName, String mobile, String unitName, Integer number, String pageSize,
+			String pageNo) {
+		Result res = new Result();
+		res.setData(lectureUserService.listLectureOrg(lectureName, mobile, unitName, number, getPSize(pageSize),
+				getPNo(pageNo)));
+		return res;
+	}
+
+	/**
+	 * 批量删除活动报名记录
+	 */
+	@RequestMapping(value = "/delete", method = RequestMethod.POST)
+	public Result delete(@RequestParam(name = "ids[]", required = false) String[] ids) {
+		Result res = new Result();
+		if (ids == null || ids.length < 1) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", ""));
+		} else {
+			res.setData(lectureUserService.batchDeleteByPrimaryKey(Arrays.asList(ids)));
+		}
+		return res;
+	}
+
+	private Integer getPNo(String pageNo) {
+		Integer pNo = 1;
+		if (StringUtils.isNumeric(pageNo)) {
+			pNo = Integer.parseInt(pageNo);
+		}
+		return pNo;
+	}
+
+	private Integer getPSize(String pageSize) {
+		Integer pSize = 10;
+		if (StringUtils.isNumeric(pageSize)) {
+			pSize = Integer.parseInt(pageSize);
+		}
+		return pSize;
+	}
+}

+ 4 - 0
src/main/java/com/goafanti/common/dao/ActivityUserMapper.java

@@ -2,6 +2,8 @@ package com.goafanti.common.dao;
 
 import java.util.List;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.goafanti.common.model.ActivityUser;
 import com.goafanti.common.model.ActivityUserKey;
 
@@ -21,4 +23,6 @@ public interface ActivityUserMapper {
 	ActivityUser selectByUid(String uid);
 
 	int batchDeleteByPrimaryKey(List<String> id);
+
+	ActivityUser selectByAidAndUid(@Param("aid")Long aid, @Param("uid")String uid);
 }

+ 24 - 0
src/main/java/com/goafanti/common/dao/LectureUserMapper.java

@@ -0,0 +1,24 @@
+package com.goafanti.common.dao;
+
+import java.util.List;
+
+import com.goafanti.common.model.LectureUser;
+import com.goafanti.common.model.LectureUserKey;
+
+public interface LectureUserMapper {
+    int deleteByPrimaryKey(LectureUserKey key);
+
+    int insert(LectureUser record);
+
+    int insertSelective(LectureUser record);
+
+    LectureUser selectByPrimaryKey(LectureUserKey key);
+
+    int updateByPrimaryKeySelective(LectureUser record);
+
+    int updateByPrimaryKey(LectureUser record);
+
+	LectureUser selectByUid(String uid);
+
+	int batchDeleteByPrimaryKey(List<String> id);
+}

+ 10 - 2
src/main/java/com/goafanti/common/mapper/ActivityUserMapper.xml

@@ -173,7 +173,7 @@
   		and a.name like CONCAT('%',#{activityName,jdbcType=VARCHAR},'%')
   	</if>
   	<if test="unitName != null">
-  		and ui.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
+  		and oi.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
   	</if>
   	order by au.last_update_time desc
   	<if test="page_sql!=null">
@@ -199,7 +199,7 @@
   		and a.name like CONCAT('%',#{activityName,jdbcType=VARCHAR},'%')
   	</if>
   	<if test="unitName != null">
-  		and ui.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
+  		and oi.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
   	</if>
   </select>
   
@@ -212,4 +212,12 @@
 			#{item}
 	</foreach>
   </delete>
+  
+    <select id="selectByAidAndUid" resultMap="BaseResultMap" >
+    select 
+    <include refid="Base_Column_List" />
+    from activity_user
+    where aid = #{aid,jdbcType=BIGINT}
+      and uid = #{uid,jdbcType=VARCHAR}
+  </select>
 </mapper>

+ 8 - 4
src/main/java/com/goafanti/common/mapper/DemandMapper.xml

@@ -486,13 +486,14 @@
 	</if>
 	where d.deleted_sign = 0 and d.data_category = 0 
 	<if test="adminId != null">
-		and u.mid = #{adminId,jdbcType=VARCHAR}
+		and (u.mid = #{adminId,jdbcType=VARCHAR}
 	</if>
 	<if test="adminId != null">
 		or  d.principal_id = #{adminId,jdbcType=VARCHAR}
 	</if>
 	<if test="adminId != null">
 		or  d.tech_broker_id = #{adminId,jdbcType=VARCHAR}
+		)
 	</if>
 	<if test="province != null">
 		and  ui.province = #{province,jdbcType=INTEGER}
@@ -556,13 +557,14 @@
 	</if>
 	where d.deleted_sign = 0 and d.data_category = 0 
 	<if test="adminId != null">
-		and u.mid = #{adminId,jdbcType=VARCHAR}
+		and (u.mid = #{adminId,jdbcType=VARCHAR}
 	</if>
 	<if test="adminId != null">
 		or  d.principal_id = #{adminId,jdbcType=VARCHAR}
 	</if>
 	<if test="adminId != null">
 		or  d.tech_broker_id = #{adminId,jdbcType=VARCHAR}
+		)
 	</if>
 	<if test="serialNumber != null">
 		and  d.serial_number = #{serialNumber,jdbcType=INTEGER}
@@ -628,13 +630,14 @@
 	</if>
 	where d.deleted_sign = 0 and d.data_category = 1 
 	<if test="adminId != null">
-		and u.mid = #{adminId,jdbcType=VARCHAR}
+		and (u.mid = #{adminId,jdbcType=VARCHAR}
 	</if>
 	<if test="adminId != null">
 		or  d.principal_id = #{adminId,jdbcType=VARCHAR}
 	</if>
 	<if test="adminId != null">
 		or  d.tech_broker_id = #{adminId,jdbcType=VARCHAR}
+		)
 	</if>
 	<if test="province != null">
 		and  oi.licence_province = #{province,jdbcType=INTEGER}
@@ -698,13 +701,14 @@
 	</if>
 	where d.deleted_sign = 0 and d.data_category = 1
 	<if test="adminId != null">
-		and u.mid = #{adminId,jdbcType=VARCHAR}
+		and (u.mid = #{adminId,jdbcType=VARCHAR}
 	</if>
 	<if test="adminId != null">
 		or  d.principal_id = #{adminId,jdbcType=VARCHAR}
 	</if>
 	<if test="adminId != null">
 		or  d.tech_broker_id = #{adminId,jdbcType=VARCHAR}
+		)
 	</if>
 	<if test="serialNumber != null">
 		and  d.serial_number = #{serialNumber,jdbcType=INTEGER}

+ 21 - 7
src/main/java/com/goafanti/common/mapper/LectureMapper.xml

@@ -14,10 +14,11 @@
     <result column="hot" property="hot" jdbcType="INTEGER" />
     <result column="dynamic" property="dynamic" jdbcType="INTEGER" />
     <result column="end_time" property="endTime" jdbcType="TIMESTAMP" />
+    <result column="lecturer" property="lecturer" jdbcType="VARCHAR" />
   </resultMap>
   <sql id="Base_Column_List" >
     id, uid, lecture_time, create_time, last_update_time, name, summary, deleted_sign, lecture_url,
-    hot, dynamic, end_time
+    hot, dynamic, end_time, lecturer
   </sql>
   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
     select 
@@ -36,7 +37,7 @@
     values (#{id,jdbcType=VARCHAR}, #{uid,jdbcType=VARCHAR}, #{lectureTime,jdbcType=TIMESTAMP}, 
       #{createTime,jdbcType=TIMESTAMP}, #{lastUpdateTime,jdbcType=TIMESTAMP}, #{name,jdbcType=VARCHAR}, 
       #{summary,jdbcType=VARCHAR}, #{deletedSign,jdbcType=INTEGER}, #{lectureUrl,jdbcType=VARCHAR},
-      #{hot,jdbcType=INTEGER}, #{dynamic,jdbcType=INTEGER}, #{endTime,jdbcType=TIMESTAMP})
+      #{hot,jdbcType=INTEGER}, #{dynamic,jdbcType=INTEGER}, #{endTime,jdbcType=TIMESTAMP}, #{lecturer,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.Lecture" >
     insert into lecture
@@ -77,6 +78,9 @@
       <if test="endTime != null" >
         end_time,
       </if>
+      <if test="lecturer != null" >
+        lecturer,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
       <if test="id != null" >
@@ -112,9 +116,12 @@
       <if test="dynamic != null" >
         #{dynamic,jdbcType=INTEGER},
       </if>
-       <if test="endTime != null" >
+      <if test="endTime != null" >
         #{endTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="lecturer != null" >
+        #{lecturer,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.Lecture" >
@@ -153,6 +160,9 @@
       <if test="endTime != null" >
         end_time = #{endTime,jdbcType=TIMESTAMP},
       </if>
+       <if test="lecturer != null" >
+        lecturer = #{lecturer,jdbcType=VARCHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -168,7 +178,8 @@
       lecture_url = #{lectureUrl,jdbcType=VARCHAR},
       hot = #{hot,jdbcType=INTEGER},
       dynamic = #{dynamic,jdbcType=INTEGER},
-      end_time = #{endTime,jdbcType=TIMESTAMP}
+      end_time = #{endTime,jdbcType=TIMESTAMP},
+      lecturer = #{lecturer,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
   </update>
   
@@ -192,7 +203,8 @@
 	  		ui.username,
 	  		l.hot,
 	  		l.dynamic,
-	  		l.end_time as endTime
+	  		l.end_time as endTime,
+	  		l.lecturer
 	  	from lecture l
 	  	left join  user_identity ui on ui.uid = l.uid
 	  	where 
@@ -269,7 +281,8 @@
 	  		ui.username,
 	  		l.hot,
 	  		l.dynamic,
-	  		l.end_time as endTime
+	  		l.end_time as endTime,
+	  		l.lecturer
 	  	from lecture l
 	  	left join  user_identity ui on ui.uid = l.uid
 	  	where 
@@ -288,7 +301,8 @@
 	  		ui.username,
 	  		l.hot,
 	  		l.dynamic,
-	  		l.end_time as endTime
+	  		l.end_time as endTime,
+	  		l.lecturer
 	  	from lecture l
 	  	left join  user_identity ui on ui.uid = l.uid
 	  	where 

+ 206 - 0
src/main/java/com/goafanti/common/mapper/LectureUserMapper.xml

@@ -0,0 +1,206 @@
+<?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.LectureUserMapper" >
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.LectureUser" >
+    <id column="lid" property="lid" jdbcType="BIGINT" />
+    <id column="uid" property="uid" jdbcType="VARCHAR" />
+    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="last_update_time" property="lastUpdateTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    lid, uid, create_time, last_update_time
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="com.goafanti.common.model.LectureUserKey" >
+    select 
+    <include refid="Base_Column_List" />
+    from lecture_user
+    where lid = #{lid,jdbcType=BIGINT}
+      and uid = #{uid,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="com.goafanti.common.model.LectureUserKey" >
+    delete from lecture_user
+    where lid = #{lid,jdbcType=BIGINT}
+      and uid = #{uid,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.LectureUser" >
+    insert into lecture_user (lid, uid, create_time, 
+      last_update_time)
+    values (#{lid,jdbcType=BIGINT}, #{uid,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
+      #{lastUpdateTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.LectureUser" >
+    insert into lecture_user
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="lid != null" >
+        lid,
+      </if>
+      <if test="uid != null" >
+        uid,
+      </if>
+      <if test="createTime != null" >
+        create_time,
+      </if>
+      <if test="lastUpdateTime != null" >
+        last_update_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="lid != null" >
+        #{lid,jdbcType=BIGINT},
+      </if>
+      <if test="uid != null" >
+        #{uid,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="lastUpdateTime != null" >
+        #{lastUpdateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.LectureUser" >
+    update lecture_user
+    <set >
+      <if test="createTime != null" >
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="lastUpdateTime != null" >
+        last_update_time = #{lastUpdateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where lid = #{lid,jdbcType=BIGINT}
+      and uid = #{uid,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.LectureUser" >
+    update lecture_user
+    set create_time = #{createTime,jdbcType=TIMESTAMP},
+      last_update_time = #{lastUpdateTime,jdbcType=TIMESTAMP}
+    where lid = #{lid,jdbcType=BIGINT}
+      and uid = #{uid,jdbcType=VARCHAR}
+  </update>
+  
+   <delete id="batchDeleteByPrimaryKey" parameterType="java.util.List">
+  	delete
+  		from lecture_user
+  	where id in
+  	<foreach item="item" index="index" collection="list" open="("
+			separator="," close=")">
+			#{item}
+	</foreach>
+  </delete>
+  
+  <select id="findLectureUserListByPage" parameterType="String" resultType="com.goafanti.LectureUser.bo.LectureUserListBo">
+  	select
+  		lu.lid,
+  		lu.uid,
+  		lu.create_time as createTime,
+  		lu.last_update_time as lastUpdateTime,
+  		l.name as lectureName,
+  		u.number,
+  		u.mobile,
+  		ui.username,
+  		l.lecture_time as lectureTime,
+  		l.end_time as endTime
+  	from lecture_user lu
+  	left join user u on u.id = lu.uid
+  	left join user_identity ui on ui.uid = lu.uid
+  	left join lecture l on l.id = lu.lid
+  	where u.type = 0 
+  	<if test="mobile != null">
+  		and u.mobile = #{mobile,jdbcType=VARCHAR}
+  	</if>
+  	<if test="number != null">
+  		and u.number = #{number,jdbcType=INTEGER}
+  	</if>
+  	<if test="lectureName != null">
+  		and l.name like CONCAT('%',#{lectureName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="username != null">
+  		and ui.username like CONCAT('%',#{username,jdbcType=VARCHAR},'%')
+  	</if>
+  	order by lu.last_update_time desc
+  	<if test="page_sql!=null">
+		${page_sql}
+	</if>
+  </select>
+  
+  <select id="findLectureUserCount" parameterType="String" resultType="java.lang.Integer">
+  	select
+  		count(1)
+  	from lecture_user lu
+  	left join user u on u.id = lu.uid
+  	left join user_identity ui on ui.uid = lu.uid
+  	left join lecture l on l.id = lu.lid
+  	where u.type = 0  
+  	<if test="mobile != null">
+  		and u.mobile = #{mobile,jdbcType=VARCHAR}
+  	</if>
+  	<if test="number != null">
+  		and u.number = #{number,jdbcType=INTEGER}
+  	</if>
+  	<if test="lectureName != null">
+  		and l.name like CONCAT('%',#{lectureName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="username != null">
+  		and ui.username like CONCAT('%',#{username,jdbcType=VARCHAR},'%')
+  	</if>
+  </select>
+  
+  <select id="findLectureOrgListByPage" parameterType="String" resultType="com.goafanti.LectureUser.bo.LectureUserListBo">
+  	select
+  		lu.lid,
+  		lu.uid,
+  		lu.create_time as createTime,
+  		lu.last_update_time as lastUpdateTime,
+  		l.name as lectureName,
+  		u.number,
+  		u.mobile,
+  		oi.unit_name as unitName,
+  		l.lecture_time as lectureTime,
+  		l.end_time as endTime
+  	from lecture_user lu
+  	left join user u on u.id = lu.uid
+  	left join organization_identity oi on oi.uid = lu.uid
+  	left join lecture l on l.id = lu.lid
+  	where u.type = 1 
+  	<if test="mobile != null">
+  		and u.mobile = #{mobile,jdbcType=VARCHAR}
+  	</if>
+  	<if test="number != null">
+  		and u.number = #{number,jdbcType=INTEGER}
+  	</if>
+  	<if test="lectureName != null">
+  		and l.name like CONCAT('%',#{lectureName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="unitName != null">
+  		and oi.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
+  	</if>
+  	order by lu.last_update_time desc
+  	<if test="page_sql!=null">
+		${page_sql}
+	</if>
+  </select>
+  
+  <select id="findLectureOrgCount" parameterType="String" resultType="java.lang.Integer">
+  	select
+  		count(1)
+  	from lecture_user lu
+  	left join user u on u.id = lu.uid
+  	left join organization_identity oi on oi.uid = lu.uid
+  	left join lecture l on l.id = lu.lid
+  	where u.type = 1 
+  	<if test="mobile != null">
+  		and u.mobile = #{mobile,jdbcType=VARCHAR}
+  	</if>
+  	<if test="number != null">
+  		and u.number = #{number,jdbcType=INTEGER}
+  	</if>
+  	<if test="activityName != null">
+  		and l.name like CONCAT('%',#{lectureName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="unitName != null">
+  		and oi.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
+  	</if>
+  </select>
+</mapper>

+ 9 - 0
src/main/java/com/goafanti/common/model/ActivityUserKey.java

@@ -10,6 +10,15 @@ public class ActivityUserKey {
     * 用户ID
     */
     private String uid;
+    
+    public ActivityUserKey(){
+    	
+    }
+    
+    public ActivityUserKey(Long aid, String uid){
+    	this.aid = aid;
+    	this.uid = uid;
+    }
 
     public Long getAid() {
         return aid;

+ 18 - 8
src/main/java/com/goafanti/common/model/Lecture.java

@@ -66,6 +66,8 @@ public class Lecture {
 	 */
 	private Date	endTime;
 
+	private String	lecturer;
+
 	public String getId() {
 		return id;
 	}
@@ -165,6 +167,14 @@ public class Lecture {
 		this.endTime = endTime;
 	}
 
+	public String getLecturer() {
+		return lecturer;
+	}
+
+	public void setLecturer(String lecturer) {
+		this.lecturer = lecturer;
+	}
+
 	public String getLectureTimeFormattedDate() {
 		if (this.lectureTime == null) {
 			return null;
@@ -188,18 +198,18 @@ public class Lecture {
 	public void setEndTimeFormattedDate(String endTimeFormattedDate) {
 
 	}
-	
-	public Integer getLectureStatus(){
-		if (this.lectureTime == null){
+
+	public Integer getLectureStatus() {
+		if (this.lectureTime == null) {
 			return ActivityStatus.ENROLL.getCode();
-		} 
-		if (new Date().getTime() > this.lectureTime.getTime()){
+		}
+		if (new Date().getTime() > this.lectureTime.getTime()) {
 			return ActivityStatus.CLOSED.getCode();
 		}
 		return ActivityStatus.ENROLL.getCode();
 	}
-	
-	public void setLectureStatus(Integer lectureStatus){
-		
+
+	public void setLectureStatus(Integer lectureStatus) {
+
 	}
 }

+ 31 - 0
src/main/java/com/goafanti/common/model/LectureUser.java

@@ -0,0 +1,31 @@
+package com.goafanti.common.model;
+
+import java.util.Date;
+
+public class LectureUser extends LectureUserKey {
+    /**
+    * 创建时间(首次咨询时间)
+    */
+    private Date createTime;
+
+    /**
+    * 最近一次咨询时间
+    */
+    private Date lastUpdateTime;
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getLastUpdateTime() {
+        return lastUpdateTime;
+    }
+
+    public void setLastUpdateTime(Date lastUpdateTime) {
+        this.lastUpdateTime = lastUpdateTime;
+    }
+}

+ 38 - 0
src/main/java/com/goafanti/common/model/LectureUserKey.java

@@ -0,0 +1,38 @@
+package com.goafanti.common.model;
+
+public class LectureUserKey {
+	/**
+	 * 讲堂ID
+	 */
+	private Long	lid;
+
+	/**
+	 * 报名人ID
+	 */
+	private String	uid;
+
+	public LectureUserKey() {
+
+	}
+
+	public LectureUserKey(Long lid, String uid) {
+		this.lid = lid;
+		this.uid = uid;
+	}
+
+	public Long getLid() {
+		return lid;
+	}
+
+	public void setLid(Long lid) {
+		this.lid = lid;
+	}
+
+	public String getUid() {
+		return uid;
+	}
+
+	public void setUid(String uid) {
+		this.uid = uid;
+	}
+}

+ 11 - 0
src/main/java/com/goafanti/lecture/bo/InputLecture.java

@@ -30,6 +30,9 @@ public class InputLecture {
 	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	private Integer	dynamic;
 
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	lecturer;
+
 	public String getId() {
 		return id;
 	}
@@ -86,4 +89,12 @@ public class InputLecture {
 		this.dynamic = dynamic;
 	}
 
+	public String getLecturer() {
+		return lecturer;
+	}
+
+	public void setLecturer(String lecturer) {
+		this.lecturer = lecturer;
+	}
+
 }

+ 0 - 1
src/main/webapp/WEB-INF/views/portal/activity/details.html

@@ -1,6 +1,5 @@
 <!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})">
 	<title>活动详情</title>
 	<link th:href="${portalHost + '/vendors.css'}" rel="stylesheet">

+ 4 - 2
src/main/webapp/WEB-INF/views/portal/detail/achievementDetail.html

@@ -14,8 +14,10 @@
 			<div class="container">
 				<div class="lt">欢迎进入科技认知计算交易平台!</div>
 				<div class="rt">
-					<a href="/user/login.html" class="login">登录</a> <a
-						href="/user/signIn.html">注册</a> <a href="#">导航</a> <a href="#">关于我们</a>
+					<a href="/user/login.html" class="login">登录</a> 
+					<a href="/user/signIn.html">注册</a> 
+					<a href="#">导航</a> 
+					<a href="#">关于我们</a>
 					<a href="#">联系我们</a>
 				</div>
 			</div>

+ 2 - 1
src/main/webapp/WEB-INF/views/portal/scienceTechnology/lecture.html

@@ -55,7 +55,8 @@
 						<h4 th:text="${lecture.name}" th:title="${lecture.name}"></h4>
 						<p th:text="${lecture.summary}" th:title="${lecture.summary}"></p>
 						<p th:text="${lecture.lectureTimeFormattedDate}" th:title="${lecture.lectureTimeFormattedDate}">2017-07-02 09:30:00</p>
-						<span th:class="${lecture.lectureStatus} == 0 ? 'customer-service' : ''" th:text="${lecture.lectureStatus} == 0 ? '报名中' : '已结束'"></span>
+						<span th:class="${lecture.lectureStatus} == 0 ? 'customer-service apply' : ''" th:text="${lecture.lectureStatus} == 0 ? '报名中' : '已结束'"></span>
+						<input type="hidden" class="lid" th:value="${lecture.id}">
 					</div>
 				</li>
 			</ul>