Commit a99844fa authored by liuyang's avatar liuyang

增加采血功能接口

parent 1243d2a0
......@@ -10,11 +10,9 @@ import com.qiankun.annotation.Auth;
import com.qiankun.config.WxMaConfiguration;
import com.qiankun.config.WxMaProperties;
import com.qiankun.dao.UserDao;
import com.qiankun.entity.Activity;
import com.qiankun.entity.ActivityReg;
import com.qiankun.entity.Contacts;
import com.qiankun.entity.User;
import com.qiankun.entity.*;
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;
......@@ -39,10 +37,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.*;
@RestController
@RequestMapping("/wx/mdp")
......@@ -56,6 +51,8 @@ public class MdpController {
private UserService userService;
@Autowired
private ActivityService activityService;
@Autowired
private BloodService bloodService;
private ResourceBundle rb = ResourceBundle.getBundle("system");
private String getAppid(){
return propertis.getConfigs().get(1).getAppid();
......@@ -311,4 +308,42 @@ public class MdpController {
result.put("status","ok");
return result;
}
@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){
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");
String bloodId = formData.get("bloodId");
User user = userService.findById(userId);
Activity activity = activityService.findById(activityId);
//验证一个用户在一次采血活动中只能有一次采血
boolean isExist = bloodService.isExistByUserAndActivty(user,activity);
if (isExist){
result.put("status","error");
result.put("errorMsg","该用户已经采血,请不要重复采集");
return result;
}
Blood blood = new Blood();
blood.setBloodId(bloodId);
blood.setBloodAddr(activity.getAddr());
blood.setUpdateTime(new Date());
blood.setUser(user);
blood.setActivity(activity);
bloodService.save(blood);
result.put("status","ok");
return result;
}
}
package com.qiankun.dao;
import com.qiankun.dao.core.IDao;
import com.qiankun.entity.Activity;
import com.qiankun.entity.Blood;
import com.qiankun.entity.User;
public interface BloodDao extends IDao<Blood,String> {
long findCountByUserAndActivity(String userId, String activityId);
}
package com.qiankun.dao;
import com.qiankun.dao.core.AbsDao;
import com.qiankun.entity.Activity;
import com.qiankun.entity.Blood;
import com.qiankun.entity.User;
import org.springframework.stereotype.Repository;
@Repository
public class BloodDaoImpl extends AbsDao<Blood,String> implements BloodDao {
@Override
public long findCountByUserAndActivity(String userId, String activityId) {
return findCount("select count(*) from Blood where user.id = ? and activity.id = ?",userId,activityId);
}
}
......@@ -42,6 +42,8 @@ public class Blood {
@ManyToOne
private User user = new User();
@ManyToOne
private Activity activity = null;
private Date updateTime = new Date();
......@@ -93,9 +95,11 @@ public class Blood {
this.updateTime = updateTime;
}
public Activity getActivity() {
return activity;
}
public void setActivity(Activity activity) {
this.activity = activity;
}
}
package com.qiankun.service;
import com.qiankun.dao.BloodDao;
import com.qiankun.entity.Activity;
import com.qiankun.entity.Blood;
import com.qiankun.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class BloodService {
@Autowired
private BloodDao bloodDao;
@Transactional
public void save(Blood blood){
bloodDao.save(blood);
}
public boolean isExistByUserAndActivty(User user, Activity activity) {
long count = bloodDao.findCountByUserAndActivity(user.getId(),activity.getId());
if (count > 0){
return true;
}else {
return false;
}
}
}
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