Commit f12c0db8 authored by liuchao's avatar liuchao
parents afa4a49a aa74abfc
......@@ -48,21 +48,24 @@ public class ActivityController extends BaseController<Object>{
@Auth(verifyLogin = false,verifyURL = false)
@RequestMapping(value = "/wx/api/activity", method = RequestMethod.POST)
public @ResponseBody Map<String,Object> entityformWX(@RequestBody ActivityVo activityVo, HttpServletResponse response, HttpServletRequest request) throws Exception {
Map<String,Object> result = Maps.newConcurrentMap();
Map<String,Object> result = Maps.newHashMap();
Activity activity = activityService.findById(activityVo.getId());
result.put("status","ok");
result.put("activity",activity);
result.put("activityRegCount",activity.getActivityReg().size());
Iterator<ActivityReg> it = activity.getActivityReg().iterator();
boolean currentUserApplyed = false;//当前用户是否报名
ActivityReg rtReg = null;
while (it.hasNext()){
ActivityReg reg = it.next();
if (reg.getUser().getId().equals(activityVo.getUserId())){
currentUserApplyed = true;
rtReg = reg;
break;
}
}
result.put("currentUserApplyed",currentUserApplyed);
result.put("activityReg",rtReg);
return result;
}
......
......@@ -9,14 +9,18 @@ import com.google.common.collect.Maps;
import com.qiankun.annotation.Auth;
import com.qiankun.config.WxMaConfiguration;
import com.qiankun.config.WxMaProperties;
import com.qiankun.controller.base.BaseController;
import com.qiankun.dao.UserDao;
import com.qiankun.dao.core.Hints;
import com.qiankun.entity.*;
import com.qiankun.pages.IPageList;
import com.qiankun.service.ActivityService;
import com.qiankun.service.BloodService;
import com.qiankun.service.UserService;
import com.qiankun.utils.JwtTokenUtil;
import com.qiankun.utils.QRCodeUtil;
import com.qiankun.utils.UserUtils;
import com.qiankun.vo.ActivityVo;
import com.qiankun.vo.DecryptedDataVo;
import com.qiankun.vo.PaperIdLoginVo;
import com.qiankun.vo.UserVo;
......@@ -24,6 +28,7 @@ import com.sun.mail.imap.ResyncData;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.omg.PortableInterceptor.ServerRequestInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -34,6 +39,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
......@@ -41,7 +47,7 @@ import java.util.*;
@RestController
@RequestMapping("/wx/mdp")
public class MdpController {
public class MdpController extends BaseController<Object> {
private final Logger logger = LoggerFactory.getLogger(MdpController.class);
@Autowired
private JwtTokenUtil tokenUtil;
......@@ -216,6 +222,16 @@ public class MdpController {
return result;
}
if (!userInfoisComplete(user)){
result.put("userInfoStatus","unComplete");
}else{
result.put("userInfoStatus","complete");
}
result.put("points",getUserPoints(user));
result.put("status","ok");
return result;
}
private boolean userInfoisComplete(User user){
if (Strings.isNullOrEmpty(user.getName()) ||
Strings.isNullOrEmpty(user.getBirthday()) ||
Strings.isNullOrEmpty(user.getPaperType()) ||
......@@ -226,16 +242,11 @@ public class MdpController {
Strings.isNullOrEmpty(user.getAddr()) ||
Strings.isNullOrEmpty(user.getMobile()) ||
Strings.isNullOrEmpty(user.getQq()) ||
!validateContacts(user)){
result.put("userInfoStatus","unComplete");
}else{
result.put("userInfoStatus","complete");
!validateContacts(user)) {
return false;
}
result.put("points",getUserPoints(user));
result.put("status","ok");
return result;
return true;
}
/**
* 获取用户积分
* @param user
......@@ -277,6 +288,25 @@ public class MdpController {
QRCodeUtil.generateQRCode(id,100,100,"png",response);
response.flushBuffer();
}
@Auth(verifyURL = false,verifyLogin = false)
@RequestMapping(value = "/activity/list",method = RequestMethod.GET)
public Map<String,Object> getActivityList(@RequestParam(required = false) String userId, HttpServletResponse response, HttpServletRequest request){
IPageList<Activity> userPage = activityService.findPageList(userId,new Hints(getStartRow(request),getPageCount(request)));
Map<String, Object> map = new HashMap<>();
map.put("activityData", userPage);
map.put("pageCount", getPageCount(request));
map.put("pageNumber", getPageNumber(request));
return map;
}
/**
* 活动报名
* @param userId
* @param activityId
* @return
*/
@Auth(verifyURL = false,verifyLogin = false)
@RequestMapping(value = "/activity/apply",method = RequestMethod.GET)
public Map<String,Object> activityApply(@RequestParam String userId,@RequestParam String activityId){
......@@ -301,6 +331,14 @@ public class MdpController {
result.put("errorMsg","活动报名人数已达上限");
return result;
}
if (activity.getType().equals("1")){
//采血活动,需验证个人信息是否已完善
if (!userInfoisComplete(user)){
result.put("status","error");
result.put("errorMsg","请先完善个人信息后再报名");
return result;
}
}
ActivityReg reg = new ActivityReg();
reg.setUser(user);
reg.setActivity(activity);
......@@ -308,6 +346,13 @@ public class MdpController {
result.put("status","ok");
return result;
}
/**
* 采血
* @param formData
* @param sKey
* @return
*/
@Auth(verifyURL = false,verifyLogin = false)
@RequestMapping(value = "/activity/collectionBlood",method = RequestMethod.POST)
public Map<String,Object> collectionBlood(@RequestBody Map<String,String> formData,@RequestHeader String sKey){
......@@ -346,4 +391,48 @@ public class MdpController {
result.put("status","ok");
return result;
}
@Auth(verifyLogin = false,verifyURL = false)
@RequestMapping(value = "/activity/signin",method = RequestMethod.POST)
public Map<String,Object> activitySignin(@RequestBody Map<String,String> formData,@RequestHeader String sKey){
Map<String,Object> result = Maps.newConcurrentMap();
if (Strings.isNullOrEmpty(sKey)){
result.put("status","error");
result.put("errorMsg","请求参数错误");
return result;
}
String openid = tokenUtil.getUsernameFromToken(sKey);
if (Strings.isNullOrEmpty(openid)){
result.put("status","error");
result.put("errorMsg","请求参数错误");
return result;
}
String userId = formData.get("userId");
String activityId = formData.get("activityId");
ActivityReg reg = activityService.signin(userId,activityId);
result.put("status","ok");
result.put("activityReg",reg);
return result;
}
@Auth(verifyLogin = false,verifyURL = false)
@RequestMapping(value = "/activity/signout",method = RequestMethod.POST)
public Map<String,Object> activitySignout(@RequestBody Map<String,String> formData,@RequestHeader String sKey){
Map<String,Object> result = Maps.newConcurrentMap();
if (Strings.isNullOrEmpty(sKey)){
result.put("status","error");
result.put("errorMsg","请求参数错误");
return result;
}
String openid = tokenUtil.getUsernameFromToken(sKey);
if (Strings.isNullOrEmpty(openid)){
result.put("status","error");
result.put("errorMsg","请求参数错误");
return result;
}
String userId = formData.get("userId");
String activityId = formData.get("activityId");
ActivityReg reg = activityService.signout(userId,activityId);
result.put("status","ok");
result.put("activityReg",reg);
return result;
}
}
......@@ -13,4 +13,6 @@ public interface ActivityDao extends IDao<Activity, String> {
Hints hints);
List<Activity> findByAvailableAndType(Boolean available, String type);
IPageList<Activity> findPageList(String userId, Hints hints);
}
......@@ -3,6 +3,7 @@ package com.qiankun.dao;
import java.util.Date;
import java.util.List;
import com.google.common.base.Strings;
import org.springframework.stereotype.Repository;
import com.qiankun.dao.core.AbsDao;
......@@ -60,4 +61,20 @@ public class ActivityDaoImpl extends AbsDao<Activity, String> implements Activit
return find(FIND_ACTIVITY_BY_TYPE + hql, new Hints(), type);
}
@Override
public IPageList<Activity> findPageList(String userId, Hints hints) {
String hsql = "";
IPageList<Activity> activitys = new PageListImpl<Activity>();
if(Strings.isNullOrEmpty(userId)){
hsql = " from Activity order by available desc,createTime desc";
activitys.setRecords(find(hsql, hints));
activitys.setRecordTotal(findCount(" select count(*) " + hsql));
}else {
hsql = " from Activity a inner join a.activityReg r where r.user.id = ? order by a.createTime desc";
activitys.setRecords(find("select a " + hsql, hints,userId));
activitys.setRecordTotal(findCount(" select count(*) " + hsql, userId));
}
return activitys;
}
}
......@@ -13,6 +13,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.awt.image.RGBImageFilter;
import java.text.BreakIterator;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
@Service
......@@ -85,4 +89,40 @@ public class ActivityService {
public void saveActivityReg(ActivityReg reg) {
activityRegDao.save(reg);
}
@Transactional
public ActivityReg signin(String userId, String activityId) {
Activity activity = findById(activityId);
Iterator<ActivityReg> it = activity.getActivityReg().iterator();
ActivityReg rt = null;
while (it.hasNext()){
ActivityReg reg = it.next();
if (reg.getUser().getId().equals(userId)){
reg.setSignin(true);
reg.setSigninTime(new Date());
saveActivityReg(reg);
rt = reg;
}
}
return rt;
}
@Transactional
public ActivityReg signout(String userId, String activityId) {
Activity activity = findById(activityId);
Iterator<ActivityReg> it = activity.getActivityReg().iterator();
ActivityReg rt = null;
while (it.hasNext()){
ActivityReg reg = it.next();
if (reg.getUser().getId().equals(userId)){
reg.setSignoutTime(new Date());
saveActivityReg(reg);
rt = reg;
}
}
return rt;
}
public IPageList<Activity> findPageList(String userId, Hints hints) {
return activityDao.findPageList(userId,hints);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment