Commit 23355fb8 authored by liuyang's avatar liuyang

完成小朋友和爱心人士心愿的发布领取等功能

parent 382c3477
...@@ -22,15 +22,19 @@ import com.qiankun.pages.IPageList; ...@@ -22,15 +22,19 @@ import com.qiankun.pages.IPageList;
import com.qiankun.service.ActivityService; import com.qiankun.service.ActivityService;
import com.qiankun.utils.JwtTokenUtil; import com.qiankun.utils.JwtTokenUtil;
import com.qiankun.vo.*; import com.qiankun.vo.*;
import com.sun.org.apache.regexp.internal.REUtil;
import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.dom4j.util.UserDataDocumentFactory;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.support.SimpleTriggerContext;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -277,7 +281,7 @@ public class RainbowPlanController extends BaseController<Object> { ...@@ -277,7 +281,7 @@ public class RainbowPlanController extends BaseController<Object> {
RainbowPlanUser user = userDao.findByOpenid(openid); RainbowPlanUser user = userDao.findByOpenid(openid);
Activity activity = activityService.findByAavailableAndType("3"); Activity activity = activityService.findByAavailableAndType("3");
result.put("activity",activity); result.put("activity",activity == null ? "" : activity);
if (activity == null){ if (activity == null){
//没有活动时 //没有活动时
return result; return result;
...@@ -306,19 +310,92 @@ public class RainbowPlanController extends BaseController<Object> { ...@@ -306,19 +310,92 @@ public class RainbowPlanController extends BaseController<Object> {
Wish wish = wishDao.findById(id); Wish wish = wishDao.findById(id);
List<WishReply> replys = wishReplyDao.findByWishId(wish.getId()); List<WishReply> replys = wishReplyDao.findByWishId(wish.getId());
WishDetailVo vo = new WishDetailVo(wish,replys); List<WishReplyVo> replyVoList = Lists.newArrayList();
if (!CollectionUtils.isEmpty(replys)){
List<String> ids = Lists.newArrayList();
for(WishReply reply : replys){
if (!ids.contains(reply.getRainbowplanUserId())){
ids.add(reply.getRainbowplanUserId());
}
}
List<RainbowPlanUser> users = userDao.findByIds(ids);
for (WishReply reply : replys){
WishReplyVo vo = new WishReplyVo();
BeanUtils.copyProperties(reply,vo);
for(RainbowPlanUser user : users){
if (reply.getRainbowplanUserId().equals(user.getId())){
vo.setRainbowplanUserAvatar(user.getAvatar());
if (!Strings.isNullOrEmpty(user.getNickName())){
vo.setRainbowplanUserName(user.getNickName());
}else {
vo.setRainbowplanUserName(user.getName());
}
}
}
replyVoList.add(vo);
}
}
WishDetailVo vo = new WishDetailVo(wish,replyVoList);
return vo; return vo;
} }
@Auth(verifyLogin = false,verifyURL = false) @Auth(verifyLogin = false,verifyURL = false)
@RequestMapping(value = "/receiveWish",method = RequestMethod.POST)
public Map<String,String> receiveWish(@RequestHeader String sKey,@RequestBody ReceiveWishVo vo){
Map<String,String> result = Maps.newConcurrentMap();
if (Strings.isNullOrEmpty(sKey)){
result.put("status","error");
result.put("errorMsg","请求参数错误");
return result;
}
String openid = tokenUtil.getUsernameFromToken(sKey);
Wish wish = wishDao.findById(vo.getWishId());
if (wish == null || wish.getStatus() != Wish.STATUS_PUBLISH){
result.put("status","error");
result.put("errorMsg","心愿不存或已被其他人领取");
return result;
}
wish.setStatus(Wish.STATUS_RECEIVE);
wish.setVolunteerId(vo.getUserId());
wishDao.save(wish);
result.put("status","OK");
return result;
}
@Auth(verifyLogin = false,verifyURL = false)
@RequestMapping(value = "/sendWish",method = RequestMethod.POST)
public Map<String,String> send(@RequestHeader String sKey, @RequestBody SendWishVo vo){
Map<String,String> result = Maps.newConcurrentMap();
if (Strings.isNullOrEmpty(sKey)){
result.put("status","error");
result.put("errorMsg","请求参数错误");
return result;
}
String openid = tokenUtil.getUsernameFromToken(sKey);
Wish wish = wishDao.findById(vo.getWishId());
if (wish == null){
result.put("status","error");
result.put("errorMsg","心愿不存在");
return result;
}
wish.setVolunteerId(vo.getUserId());
wish.setHelpType(vo.getHelpType());
if (wish.getHelpType() == Wish.HELP_TYPE_EXPRESS){
wish.setExpressCompany(vo.getExpressCompany());
wish.setExpressCode(vo.getExpressCode());
}
wish.setStatus(Wish.STATUS_SEND);
wishDao.update(wish);
result.put("status","OK");
return result;
}
@Auth(verifyLogin = false,verifyURL = false)
@RequestMapping(value = "/reply",method = RequestMethod.POST) @RequestMapping(value = "/reply",method = RequestMethod.POST)
public String reply(@RequestBody WishReply reply,@RequestHeader String sKey){ public String reply(@RequestBody WishReply reply,@RequestHeader String sKey){
if (Strings.isNullOrEmpty(sKey)){ if (Strings.isNullOrEmpty(sKey)){
throw new IllegalArgumentException("请求参数错误"); throw new IllegalArgumentException("请求参数错误");
} }
String openid = tokenUtil.getUsernameFromToken(sKey); String openid = tokenUtil.getUsernameFromToken(sKey);
//TODO 验证
wishReplyDao.save(reply); wishReplyDao.save(reply);
return "OK"; return "OK";
} }
......
...@@ -3,8 +3,12 @@ package com.qiankun.dao; ...@@ -3,8 +3,12 @@ package com.qiankun.dao;
import com.qiankun.dao.core.IDao; import com.qiankun.dao.core.IDao;
import com.qiankun.entity.RainbowPlanUser; import com.qiankun.entity.RainbowPlanUser;
import java.util.List;
public interface RainbowPlanUserDao extends IDao<RainbowPlanUser,String> { public interface RainbowPlanUserDao extends IDao<RainbowPlanUser,String> {
RainbowPlanUser findByOpenid(String openid); RainbowPlanUser findByOpenid(String openid);
RainbowPlanUser findByPhone(String phone); RainbowPlanUser findByPhone(String phone);
List<RainbowPlanUser> findByIds(List<String> ids);
} }
...@@ -3,9 +3,12 @@ package com.qiankun.dao; ...@@ -3,9 +3,12 @@ package com.qiankun.dao;
import com.qiankun.dao.core.AbsDao; import com.qiankun.dao.core.AbsDao;
import com.qiankun.dao.core.Hints; import com.qiankun.dao.core.Hints;
import com.qiankun.entity.RainbowPlanUser; import com.qiankun.entity.RainbowPlanUser;
import org.hibernate.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Repository @Repository
public class RainbowPlanUserDaoImpl extends AbsDao<RainbowPlanUser,String> implements RainbowPlanUserDao { public class RainbowPlanUserDaoImpl extends AbsDao<RainbowPlanUser,String> implements RainbowPlanUserDao {
@Override @Override
...@@ -29,4 +32,11 @@ public class RainbowPlanUserDaoImpl extends AbsDao<RainbowPlanUser,String> imple ...@@ -29,4 +32,11 @@ public class RainbowPlanUserDaoImpl extends AbsDao<RainbowPlanUser,String> imple
public RainbowPlanUser findByPhone(String phone) { public RainbowPlanUser findByPhone(String phone) {
return findUnique("from RainbowPlanUser where phone = ?",new Hints(),phone); return findUnique("from RainbowPlanUser where phone = ?",new Hints(),phone);
} }
@Override
@SuppressWarnings("unchecked")
public List<RainbowPlanUser> findByIds(List<String> ids) {
Query query = getSessionFactory().getCurrentSession().createQuery("from RainbowPlanUser where id in (:ids)").setParameterList("ids",ids);
return query.list();
}
} }
...@@ -29,6 +29,9 @@ public class AbsDao<E, K extends Serializable> implements IDao<E, K> { ...@@ -29,6 +29,9 @@ public class AbsDao<E, K extends Serializable> implements IDao<E, K> {
public void setSessionFactory(SessionFactory sessionFactory) { public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory; this.sessionFactory = sessionFactory;
} }
public SessionFactory getSessionFactory(){
return sessionFactory;
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public List<E> findPaged(final String queryString, final Hints hnts, final Object... values) { public List<E> findPaged(final String queryString, final Hints hnts, final Object... values) {
......
...@@ -13,6 +13,8 @@ public class Wish { ...@@ -13,6 +13,8 @@ public class Wish {
public static final int STATUS_RECEIVE = 1; public static final int STATUS_RECEIVE = 1;
public static final int STATUS_SEND = 2; public static final int STATUS_SEND = 2;
public static final int STATUS_COMPLETE = 3; public static final int STATUS_COMPLETE = 3;
public static final int HELP_TYPE_CUSTOM = 1;
public static final int HELP_TYPE_EXPRESS = 2;
@Id @Id
@GenericGenerator(name = "systemUUID", strategy = "uuid2") @GenericGenerator(name = "systemUUID", strategy = "uuid2")
@GeneratedValue(generator = "systemUUID") @GeneratedValue(generator = "systemUUID")
...@@ -21,10 +23,13 @@ public class Wish { ...@@ -21,10 +23,13 @@ public class Wish {
private String content;//愿望内容 private String content;//愿望内容
private String uploadImage; //上传的图片 private String uploadImage; //上传的图片
private int status;//愿望状态,0:发布;1:领取;2.寄送中;3:实现 private int status;//愿望状态,0:发布;1:领取;2.寄送中;3:实现
private String volunteerId; //领取愿望的志愿者ID private String volunteerId; //领取愿望的爱心人士ID
private String rainbowPlanUserId; //小朋友ID private String rainbowPlanUserId; //小朋友ID
private Date createTime = new Date(); private Date createTime = new Date();
private String activityId;//彩虹计划活动ID private String activityId;//彩虹计划活动ID
private int helpType;//1:自送礼物;2:快递
private String expressCompany;//快递公司
private String expressCode;//快递单号
public Date getCreateTime() { public Date getCreateTime() {
return createTime; return createTime;
...@@ -97,4 +102,28 @@ public class Wish { ...@@ -97,4 +102,28 @@ public class Wish {
public void setActivityId(String activityId) { public void setActivityId(String activityId) {
this.activityId = activityId; this.activityId = activityId;
} }
public int getHelpType() {
return helpType;
}
public void setHelpType(int helpType) {
this.helpType = helpType;
}
public String getExpressCompany() {
return expressCompany;
}
public void setExpressCompany(String expressCompany) {
this.expressCompany = expressCompany;
}
public String getExpressCode() {
return expressCode;
}
public void setExpressCode(String expressCode) {
this.expressCode = expressCode;
}
} }
...@@ -15,29 +15,10 @@ public class WishReply { ...@@ -15,29 +15,10 @@ public class WishReply {
private String id; //愿望ID private String id; //愿望ID
private String content;//回复内容 private String content;//回复内容
private String uploadImage;//上传的图片 private String uploadImage;//上传的图片
private String volunteerId;//志愿者ID
private String volunteerName;//志愿者名称
private String volunteerAvatar;//志愿者头像
private String rainbowplanUserId;//小朋友ID private String rainbowplanUserId;//小朋友ID
private String wishId;//愿望ID private String wishId;//愿望ID
private Date createTime = new Date(); private Date createTime = new Date();
public String getVolunteerName() {
return volunteerName;
}
public void setVolunteerName(String volunteerName) {
this.volunteerName = volunteerName;
}
public String getVolunteerAvatar() {
return volunteerAvatar;
}
public void setVolunteerAvatar(String volunteerAvatar) {
this.volunteerAvatar = volunteerAvatar;
}
public Date getCreateTime() { public Date getCreateTime() {
return createTime; return createTime;
} }
...@@ -78,14 +59,6 @@ public class WishReply { ...@@ -78,14 +59,6 @@ public class WishReply {
this.uploadImage = uploadImage; this.uploadImage = uploadImage;
} }
public String getVolunteerId() {
return volunteerId;
}
public void setVolunteerId(String volunteerId) {
this.volunteerId = volunteerId;
}
public String getRainbowplanUserId() { public String getRainbowplanUserId() {
return rainbowplanUserId; return rainbowplanUserId;
} }
......
package com.qiankun.vo;
public class ReceiveWishVo {
private String wishId;
private String userId;
public String getWishId() {
return wishId;
}
public void setWishId(String wishId) {
this.wishId = wishId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
}
package com.qiankun.vo;
public class SendWishVo {
private String wishId;
private String userId;
private int helpType;
private String expressCompany;
private String expressCode;
public String getWishId() {
return wishId;
}
public void setWishId(String wishId) {
this.wishId = wishId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public int getHelpType() {
return helpType;
}
public void setHelpType(int helpType) {
this.helpType = helpType;
}
public String getExpressCompany() {
return expressCompany;
}
public void setExpressCompany(String expressCompany) {
this.expressCompany = expressCompany;
}
public String getExpressCode() {
return expressCode;
}
public void setExpressCode(String expressCode) {
this.expressCode = expressCode;
}
}
...@@ -7,12 +7,12 @@ import java.util.List; ...@@ -7,12 +7,12 @@ import java.util.List;
public class WishDetailVo { public class WishDetailVo {
private Wish wish; private Wish wish;
private List<WishReply> replys; private List<WishReplyVo> replys;
public WishDetailVo(){ public WishDetailVo(){
} }
public WishDetailVo(Wish wish,List<WishReply> replys){ public WishDetailVo(Wish wish,List<WishReplyVo> replys){
this.wish = wish; this.wish = wish;
this.replys = replys; this.replys = replys;
} }
...@@ -24,11 +24,11 @@ public class WishDetailVo { ...@@ -24,11 +24,11 @@ public class WishDetailVo {
this.wish = wish; this.wish = wish;
} }
public List<WishReply> getReplys() { public List<WishReplyVo> getReplys() {
return replys; return replys;
} }
public void setReplys(List<WishReply> replys) { public void setReplys(List<WishReplyVo> replys) {
this.replys = replys; this.replys = replys;
} }
} }
package com.qiankun.vo;
import java.util.Date;
public class WishReplyVo {
private String id; //愿望ID
private String content;//回复内容
private String uploadImage;//上传的图片
private String rainbowplanUserId;//回复人ID
private String wishId;//愿望ID
private Date createTime;
private String rainbowplanUserAvatar;//回复人头像
private String rainbowplanUserName;//回复人名称
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getUploadImage() {
return uploadImage;
}
public void setUploadImage(String uploadImage) {
this.uploadImage = uploadImage;
}
public String getRainbowplanUserId() {
return rainbowplanUserId;
}
public void setRainbowplanUserId(String rainbowplanUserId) {
this.rainbowplanUserId = rainbowplanUserId;
}
public String getWishId() {
return wishId;
}
public void setWishId(String wishId) {
this.wishId = wishId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getRainbowplanUserAvatar() {
return rainbowplanUserAvatar;
}
public void setRainbowplanUserAvatar(String rainbowplanUserAvatar) {
this.rainbowplanUserAvatar = rainbowplanUserAvatar;
}
public String getRainbowplanUserName() {
return rainbowplanUserName;
}
public void setRainbowplanUserName(String rainbowplanUserName) {
this.rainbowplanUserName = rainbowplanUserName;
}
}
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