Antiloveg пре 8 година
родитељ
комит
36b9b761bf

+ 1 - 0
schema/20170720-alter-activity.sql

@@ -0,0 +1 @@
+ALTER TABLE `activity` CHANGE COLUMN `desc` `summary` LONGTEXT DEFAULT NULL COMMENT '描述';

+ 2 - 1
src/main/java/com/goafanti/activity/bo/ActivityListBo.java

@@ -45,7 +45,8 @@ public class ActivityListBo {
 	 * 报名截止时间
 	 */
 	private Date	enrollDeadline;
-
+	
+	@JsonFormat(shape = Shape.STRING)
 	public Long getId() {
 		return id;
 	}

+ 5 - 5
src/main/java/com/goafanti/activity/bo/InputActivity.java

@@ -46,7 +46,7 @@ public class InputActivity {
 	/**
 	 * 描述
 	 */
-	private String	desc;
+	private String	summary;
 
 	public Long getId() {
 		return id;
@@ -136,12 +136,12 @@ public class InputActivity {
 		this.titleUrl = titleUrl;
 	}
 
-	public String getDesc() {
-		return desc;
+	public String getSummary() {
+		return summary;
 	}
 
-	public void setDesc(String desc) {
-		this.desc = desc;
+	public void setSummary(String summary) {
+		this.summary = summary;
 	}
 
 }

+ 9 - 0
src/main/java/com/goafanti/activity/service/ActivityService.java

@@ -1,5 +1,7 @@
 package com.goafanti.activity.service;
 
+import java.util.List;
+
 import com.goafanti.activity.bo.ActivityListBo;
 import com.goafanti.common.model.Activity;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -12,4 +14,11 @@ public interface ActivityService {
 	void save(Activity a, String startTimeFormattedDate, String endTimeFormattedDate,
 			String enrollDeadlineFormattedDate);
 
+	int update(Activity data, String startTimeFormattedDate, String endTimeFormattedDate,
+			String enrollDeadlineFormattedDate);
+
+	int batchDeleteByPrimaryKey(List<String> asList);
+
+	Activity findActivityDetail(Long id);
+
 }

+ 47 - 3
src/main/java/com/goafanti/activity/service/impl/ActivityServiceImpl.java

@@ -1,7 +1,9 @@
 package com.goafanti.activity.service.impl;
 
 import java.text.ParseException;
+import java.util.Calendar;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
@@ -15,12 +17,15 @@ import com.goafanti.common.dao.ActivityMapper;
 import com.goafanti.common.model.Activity;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
+import com.goafanti.core.mybatis.JDBCIdGenerator;
 import com.goafanti.core.mybatis.page.Pagination;
 
 @Service
 public class ActivityServiceImpl extends BaseMybatisDao<ActivityMapper> implements ActivityService {
 	@Autowired
-	private ActivityMapper activityMapper;
+	private ActivityMapper	activityMapper;
+	@Autowired
+	private JDBCIdGenerator	idGenerator;
 
 	@SuppressWarnings("unchecked")
 	@Override
@@ -65,8 +70,47 @@ public class ActivityServiceImpl extends BaseMybatisDao<ActivityMapper> implemen
 	@Override
 	public void save(Activity a, String startTimeFormattedDate, String endTimeFormattedDate,
 			String enrollDeadlineFormattedDate) {
-		// TODO Auto-generated method stub
-		
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		a.setCreateTime(now.getTime());
+		a.setId(idGenerator.generateId());
+		activityMapper
+				.insert(disposeActivity(a, startTimeFormattedDate, endTimeFormattedDate, enrollDeadlineFormattedDate));
+
+	}
+
+	@Override
+	public int update(Activity a, String startTimeFormattedDate, String endTimeFormattedDate,
+			String enrollDeadlineFormattedDate) {
+		return activityMapper.updateByPrimaryKeyWithBLOBs(
+				disposeActivity(a, startTimeFormattedDate, endTimeFormattedDate, enrollDeadlineFormattedDate));
+	}
+
+	private Activity disposeActivity(Activity a, String startTimeFormattedDate, String endTimeFormattedDate,
+			String enrollDeadlineFormattedDate) {
+		try {
+			if (StringUtils.isNotBlank(startTimeFormattedDate)) {
+				a.setStartTime(DateUtils.parseDate(startTimeFormattedDate, AFTConstants.YYYYMMDD));
+			}
+			if (StringUtils.isNotBlank(endTimeFormattedDate)) {
+				a.setEndTime(DateUtils.parseDate(endTimeFormattedDate, AFTConstants.YYYYMMDD));
+			}
+			if (StringUtils.isNotBlank(enrollDeadlineFormattedDate)) {
+				a.setEnrollDeadline(DateUtils.parseDate(enrollDeadlineFormattedDate, AFTConstants.YYYYMMDD));
+			}
+		} catch (ParseException e) {
+		}
+		return a;
+	}
+
+	@Override
+	public int batchDeleteByPrimaryKey(List<String> id) {
+		return activityMapper.batchDeleteByPrimaryKey(id);
+	}
+
+	@Override
+	public Activity findActivityDetail(Long id) {
+		return activityMapper.selectByPrimaryKey(id);
 	}
 
 }

+ 96 - 2
src/main/java/com/goafanti/admin/controller/AdminActivityApiController.java

@@ -1,12 +1,18 @@
 package com.goafanti.admin.controller;
 
+import java.util.Arrays;
+import java.util.Calendar;
+
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
 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.activity.bo.InputActivity;
@@ -15,8 +21,10 @@ import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseApiController;
 import com.goafanti.common.enums.ActivityFields;
+import com.goafanti.common.enums.AttachmentType;
 import com.goafanti.common.model.Activity;
 import com.goafanti.common.utils.StringUtils;
+import com.goafanti.core.mybatis.JDBCIdGenerator;
 
 /**
  * 活动圈
@@ -26,6 +34,8 @@ import com.goafanti.common.utils.StringUtils;
 public class AdminActivityApiController extends BaseApiController {
 	@Resource
 	private ActivityService activityService;
+	@Autowired
+	JDBCIdGenerator	idGenerator;
 
 	/**
 	 * 活动列表
@@ -59,6 +69,91 @@ public class AdminActivityApiController extends BaseApiController {
 			return res;
 		}
 
+		res = disposeInputActivity(res, ia, startTimeFormattedDate);
+		if (!res.getError().isEmpty()) {
+			return res;
+		}
+
+		activityService.save((Activity) res.getData(), startTimeFormattedDate, endTimeFormattedDate,
+				enrollDeadlineFormattedDate);
+		return res;
+	}
+
+	/**
+	 * 修改
+	 */
+	@RequestMapping(value = "/update", method = RequestMethod.POST)
+	public Result update(@Valid InputActivity ia, BindingResult bindingResult, String startTimeFormattedDate,
+			String endTimeFormattedDate, String enrollDeadlineFormattedDate) {
+		Result res = new Result();
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					ActivityFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+		
+		if (null == ia.getId()) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "活动ID"));
+			return res;
+		}
+		
+		res = disposeInputActivity(res, ia, startTimeFormattedDate);
+		if (!res.getError().isEmpty()) {
+			return res;
+		}
+		
+		activityService.update((Activity) res.getData(), startTimeFormattedDate, endTimeFormattedDate,
+				enrollDeadlineFormattedDate);
+		return res;
+	}
+	
+	/**
+	 * 详情
+	 */
+	@RequestMapping(value = "/detail", method = RequestMethod.GET)
+	public Result detail(Long id){
+		Result res = new Result();
+		if (null == id) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "活动Id"));
+			return res;
+		}
+		res.setData(activityService.findActivityDetail(id));
+		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(activityService.batchDeleteByPrimaryKey(Arrays.asList(ids)));
+		}
+		return res;
+	}
+	
+	/**
+	 * 活动图片上传
+	 */
+	@RequestMapping(value = "/upload", method = RequestMethod.POST)
+	public Result upload(HttpServletRequest req, String sign) {
+		Result res = new Result();
+		AttachmentType attachmentType = AttachmentType.getField(sign);
+		if (attachmentType == AttachmentType.ACTIVITY_TITLE_PICTURE
+				|| attachmentType == AttachmentType.ACTIVITY_CONTENT_PICTURE) {
+			Calendar c = Calendar.getInstance();
+			res.setData(handleFile(res, false, req, sign, String.valueOf(c.get(Calendar.YEAR)),
+					String.valueOf(c.get(Calendar.MONTH) + 1), idGenerator.generateId().toString()));
+		} else {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示"));
+		}
+		return res;
+	}
+
+	private Result disposeInputActivity(Result res, InputActivity ia, String startTimeFormattedDate) {
 		if (StringUtils.isBlank(ia.getName())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "标题"));
 			return res;
@@ -83,10 +178,9 @@ public class AdminActivityApiController extends BaseApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "活动地点"));
 			return res;
 		}
-
 		Activity a = new Activity();
 		BeanUtils.copyProperties(ia, a);
-		activityService.save(a, startTimeFormattedDate, endTimeFormattedDate, enrollDeadlineFormattedDate);
+		res.setData(a);
 		return res;
 	}
 }

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

@@ -1,5 +1,7 @@
 package com.goafanti.common.dao;
 
+import java.util.List;
+
 import com.goafanti.common.model.Activity;
 
 public interface ActivityMapper {
@@ -16,4 +18,6 @@ public interface ActivityMapper {
     int updateByPrimaryKeyWithBLOBs(Activity record);
 
     int updateByPrimaryKey(Activity record);
+
+	int batchDeleteByPrimaryKey(List<String> id);
 }

+ 3 - 1
src/main/java/com/goafanti/common/enums/AttachmentType.java

@@ -43,7 +43,9 @@ public enum AttachmentType {
 	BANNERS_PIC("banners", "广告图片"),
 	NEWS_TITLE_PICTURE("news_title_picture", "新闻题图图片"),
 	NEWS_CONTENT_PICTURE("news_content_picture", "新闻内容图片"),
-	LECTURE_PICTURE("lecture_picture", "科技讲堂展示图片");
+	LECTURE_PICTURE("lecture_picture", "科技讲堂展示图片"),
+	ACTIVITY_TITLE_PICTURE("activity_title_picture", "活动题图"),
+	ACTIVITY_CONTENT_PICTURE("activity_content_picture", "活动内容图片");
 	
 
 	private AttachmentType(String code, String desc) {

+ 11 - 11
src/main/java/com/goafanti/common/mapper/ActivityMapper.xml

@@ -20,14 +20,14 @@
     <result column="title_url" property="titleUrl" jdbcType="VARCHAR" />
   </resultMap>
   <resultMap id="ResultMapWithBLOBs" type="com.goafanti.common.model.Activity" extends="BaseResultMap" >
-    <result column="desc" property="desc" jdbcType="LONGVARCHAR" />
+    <result column="summary" property="summary" jdbcType="LONGVARCHAR" />
   </resultMap>
   <sql id="Base_Column_List" >
     id, start_time, end_time, name, status, address, host, undertake, asist, type, form, 
     img_urls, result, create_time, enroll_deadline, title_url
   </sql>
   <sql id="Blob_Column_List" >
-    desc
+    summary
   </sql>
   <select id="selectByPrimaryKey" resultMap="ResultMapWithBLOBs" parameterType="java.lang.Long" >
     select 
@@ -47,13 +47,13 @@
       host, undertake, asist, 
       type, form, img_urls, 
       result, create_time, enroll_deadline, 
-      title_url, desc)
+      title_url, summary)
     values (#{id,jdbcType=BIGINT}, #{startTime,jdbcType=TIMESTAMP}, #{endTime,jdbcType=TIMESTAMP}, 
       #{name,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, #{address,jdbcType=VARCHAR}, 
       #{host,jdbcType=VARCHAR}, #{undertake,jdbcType=VARCHAR}, #{asist,jdbcType=VARCHAR}, 
       #{type,jdbcType=INTEGER}, #{form,jdbcType=INTEGER}, #{imgUrls,jdbcType=VARCHAR}, 
       #{result,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{enrollDeadline,jdbcType=TIMESTAMP}, 
-      #{titleUrl,jdbcType=VARCHAR}, #{desc,jdbcType=LONGVARCHAR})
+      #{titleUrl,jdbcType=VARCHAR}, #{summary,jdbcType=LONGVARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.Activity" >
     insert into activity
@@ -106,8 +106,8 @@
       <if test="titleUrl != null" >
         title_url,
       </if>
-      <if test="desc != null" >
-        desc,
+      <if test="summary != null" >
+        summary,
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
@@ -159,8 +159,8 @@
       <if test="titleUrl != null" >
         #{titleUrl,jdbcType=VARCHAR},
       </if>
-      <if test="desc != null" >
-        #{desc,jdbcType=LONGVARCHAR},
+      <if test="summary != null" >
+        #{summary,jdbcType=LONGVARCHAR},
       </if>
     </trim>
   </insert>
@@ -212,8 +212,8 @@
       <if test="titleUrl != null" >
         title_url = #{titleUrl,jdbcType=VARCHAR},
       </if>
-      <if test="desc != null" >
-        desc = #{desc,jdbcType=LONGVARCHAR},
+      <if test="summary != null" >
+        summary = #{summary,jdbcType=LONGVARCHAR},
       </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
@@ -235,7 +235,7 @@
       create_time = #{createTime,jdbcType=TIMESTAMP},
       enroll_deadline = #{enrollDeadline,jdbcType=TIMESTAMP},
       title_url = #{titleUrl,jdbcType=VARCHAR},
-      desc = #{desc,jdbcType=LONGVARCHAR}
+      summary = #{summary,jdbcType=LONGVARCHAR}
     where id = #{id,jdbcType=BIGINT}
   </update>
   <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.Activity" >

+ 10 - 0
src/main/java/com/goafanti/common/mapper/ActivityMapperExt.xml

@@ -61,4 +61,14 @@
 			form = #{form,jdbcType=INTEGER}
 		</if>
 	</select>
+	
+  <delete id="batchDeleteByPrimaryKey" parameterType="java.util.List">
+  	delete
+  		from activity
+  	where id in
+  	<foreach item="item" index="index" collection="list" open="("
+			separator="," close=")">
+			#{item}
+	</foreach>
+  </delete>
 </mapper>

+ 5 - 5
src/main/java/com/goafanti/common/model/Activity.java

@@ -90,7 +90,7 @@ public class Activity {
 	/**
 	 * 描述
 	 */
-	private String	desc;
+	private String	summary;
 
 	public Long getId() {
 		return id;
@@ -223,12 +223,12 @@ public class Activity {
 		this.titleUrl = titleUrl;
 	}
 
-	public String getDesc() {
-		return desc;
+	public String getSummary() {
+		return summary;
 	}
 
-	public void setDesc(String desc) {
-		this.desc = desc;
+	public void setSummary(String summary) {
+		this.summary = summary;
 	}
 
 	public String getStartTimeFormattedDate() {