提交 38f8543e 编写于 作者: S Sqh

v0.1.7

发送笔友信的业务逻辑和邮票数目对接完成
上级 02973d12
......@@ -9,6 +9,7 @@ import com.mobius.modules.lms.dto.SearchReceivedLmsPensConditionParam;
import com.mobius.modules.lms.dto.SearchSentLmsPensConditionParam;
import com.mobius.modules.lms.model.LmsPen;
import com.mobius.modules.lms.vo.PenVO;
import org.springframework.transaction.annotation.Transactional;
/**
* <p>
......@@ -41,6 +42,7 @@ public interface LmsPenService extends IService<LmsPen> {
CommonResult userPenFriendSendList(IPage<PenBriefDTO> page);
@Transactional
CommonResult userSendPen(PenVO penVO);
CommonResult getPenFriendLetterInfo(Long id);
......
......@@ -34,7 +34,7 @@ import java.util.*;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author Hzd
......@@ -73,7 +73,7 @@ public class LmsPenServiceImpl extends ServiceImpl<LmsPenMapper, LmsPen> impleme
UmsUser user = userService.getUserByPhone(phone);
Integer sentId = user.getId();
final LambdaQueryWrapper<LmsPen> lambda = new QueryWrapper<LmsPen>().lambda();
lambda.eq(LmsPen::getSenderId,sentId);
lambda.eq(LmsPen::getSenderId, sentId);
if (conditionParam.getReceiveId() != null) {
lambda.eq(LmsPen::getReceiverId, conditionParam.getReceiveId());
}
......@@ -90,22 +90,22 @@ public class LmsPenServiceImpl extends ServiceImpl<LmsPenMapper, LmsPen> impleme
final Date lowerUpdateTime = conditionParam.getLowerUpdateTime();
final Date upperUpdateTime = conditionParam.getUpperUpdateTime();
final SimpleDateFormat dateFormat = new SimpleDateFormat(ComConstants.DATE_TIME_FORMAT_PATTERN);
if (lowerArriveTime != null){
if (lowerArriveTime != null) {
lambda.apply("UNIX_TIMESTAMP(arrive_time) >= UNIX_TIMESTAMP('" + dateFormat.format(lowerArriveTime) + "')");
}
if (upperArriveTime != null){
if (upperArriveTime != null) {
lambda.apply("UNIX_TIMESTAMP(arrive_time) <= UNIX_TIMESTAMP('" + dateFormat.format(upperArriveTime) + "')");
}
if (lowerCreateTime != null){
if (lowerCreateTime != null) {
lambda.apply("UNIX_TIMESTAMP(create_time) >= UNIX_TIMESTAMP('" + dateFormat.format(lowerCreateTime) + "')");
}
if (upperCreateTime != null){
if (upperCreateTime != null) {
lambda.apply("UNIX_TIMESTAMP(create_time) <= UNIX_TIMESTAMP('" + dateFormat.format(upperCreateTime) + "')");
}
if (lowerUpdateTime != null){
if (lowerUpdateTime != null) {
lambda.apply("UNIX_TIMESTAMP(update_time) >= UNIX_TIMESTAMP('" + dateFormat.format(lowerUpdateTime) + "')");
}
if (upperUpdateTime != null){
if (upperUpdateTime != null) {
lambda.apply("UNIX_TIMESTAMP(update_time) <= UNIX_TIMESTAMP('" + dateFormat.format(upperUpdateTime) + "')");
}
return super.page(page, lambda);
......@@ -119,7 +119,7 @@ public class LmsPenServiceImpl extends ServiceImpl<LmsPenMapper, LmsPen> impleme
UmsUser user = userService.getUserByPhone(phone);
Integer receiveId = user.getId();
final LambdaQueryWrapper<LmsPen> lambda = new QueryWrapper<LmsPen>().lambda();
lambda.eq(LmsPen::getReceiverId,receiveId);
lambda.eq(LmsPen::getReceiverId, receiveId);
if (conditionParam.getSenderId() != null) {
lambda.eq(LmsPen::getSenderId, conditionParam.getSenderId());
}
......@@ -136,35 +136,36 @@ public class LmsPenServiceImpl extends ServiceImpl<LmsPenMapper, LmsPen> impleme
final Date lowerUpdateTime = conditionParam.getLowerUpdateTime();
final Date upperUpdateTime = conditionParam.getUpperUpdateTime();
final SimpleDateFormat dateFormat = new SimpleDateFormat(ComConstants.DATE_TIME_FORMAT_PATTERN);
if (lowerArriveTime != null){
if (lowerArriveTime != null) {
lambda.apply("UNIX_TIMESTAMP(arrive_time) >= UNIX_TIMESTAMP('" + dateFormat.format(lowerArriveTime) + "')");
}
if (upperArriveTime != null){
if (upperArriveTime != null) {
lambda.apply("UNIX_TIMESTAMP(arrive_time) <= UNIX_TIMESTAMP('" + dateFormat.format(upperArriveTime) + "')");
}
if (lowerCreateTime != null){
if (lowerCreateTime != null) {
lambda.apply("UNIX_TIMESTAMP(create_time) >= UNIX_TIMESTAMP('" + dateFormat.format(lowerCreateTime) + "')");
}
if (upperCreateTime != null){
if (upperCreateTime != null) {
lambda.apply("UNIX_TIMESTAMP(create_time) <= UNIX_TIMESTAMP('" + dateFormat.format(upperCreateTime) + "')");
}
if (lowerUpdateTime != null){
if (lowerUpdateTime != null) {
lambda.apply("UNIX_TIMESTAMP(update_time) >= UNIX_TIMESTAMP('" + dateFormat.format(lowerUpdateTime) + "')");
}
if (upperUpdateTime != null){
if (upperUpdateTime != null) {
lambda.apply("UNIX_TIMESTAMP(update_time) <= UNIX_TIMESTAMP('" + dateFormat.format(upperUpdateTime) + "')");
}
return super.page(page, lambda); }
return super.page(page, lambda);
}
@Override
public CommonResult userPenFriendSendList(IPage<PenBriefDTO> page) {
MyUserDetail details = (MyUserDetail) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
IPage<PenBriefDTO> senderPenBriefList = baseMapper.selectSenderPenBriefList(Long.parseLong(details.getId().toString()), page);
HashMap<String,Object> result = new HashMap<>();
result.put("total",senderPenBriefList.getTotal());
HashMap<String, Object> result = new HashMap<>();
result.put("total", senderPenBriefList.getTotal());
result.put("list", senderPenBriefList.getRecords());
result.put("list",senderPenBriefList.getRecords());
return CommonResult.success(result);
}
......@@ -172,24 +173,25 @@ public class LmsPenServiceImpl extends ServiceImpl<LmsPenMapper, LmsPen> impleme
public CommonResult userSendPen(PenVO penVO) {
MyUserDetail details = (MyUserDetail) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (penVO.getReceiverId().equals(details.getId())){
if (penVO.getReceiverId().equals(details.getId())) {
return CommonResult.failed("不能写信给自己");
}
if (!relationService.isFriend(penVO.getReceiverId())){
if (!relationService.isFriend(penVO.getReceiverId())) {
return CommonResult.failed("您未添加对方为好友");
};
}
;
Long contentId = draftLetterService.saveDraft(penVO, 0);
UmsUser byId = userService.getById(penVO.getReceiverId());
if(byId==null){
if (byId == null) {
return CommonResult.failed("收信方不存在");
}
LmsIncident incident = incidentService.generateIncidentId();
Date arriveTime = new Date(new Date().getTime() + incident.getDelayTime()*60*60*1000);
Date arriveTime = new Date(System.currentTimeMillis() + incident.getDelayTime() * 60 * 60 * 1000);
String contentBrief;
if (penVO.getContent().length()<=20){
contentBrief =penVO.getContent();
}else {
contentBrief = penVO.getContent().substring(0,20);
if (penVO.getContent().length() <= 20) {
contentBrief = penVO.getContent();
} else {
contentBrief = penVO.getContent().substring(0, 20);
}
LmsPen pen = LmsPen.builder()
.id(0L)
......@@ -208,6 +210,9 @@ public class LmsPenServiceImpl extends ServiceImpl<LmsPenMapper, LmsPen> impleme
.build();
save(pen);
final UmsUser currentUser = userService.getCurrentUser();
currentUser.setStampCount(currentUser.getStampCount() - 1);
userService.updateUserById(currentUser);
return CommonResult.success(incident);
}
......@@ -215,13 +220,13 @@ public class LmsPenServiceImpl extends ServiceImpl<LmsPenMapper, LmsPen> impleme
public CommonResult getPenFriendLetterInfo(Long id) {
MyUserDetail details = (MyUserDetail) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
LmsPen byId = getById(id);
if (byId==null){
if (byId == null) {
return CommonResult.failed("信件不存在");
}
if (byId.getSenderId().intValue() == details.getId().intValue()){
if (byId.getSenderId().intValue() == details.getId().intValue()) {
return CommonResult.success(baseMapper.selectPenInfo(id));
}else if (byId.getReceiverId().equals(details.getId())){
if (byId.getArriveTime().after(new Date())){
} else if (byId.getReceiverId().equals(details.getId())) {
if (byId.getArriveTime().after(new Date())) {
return CommonResult.failed("信件未送达");
}
byId.setIsRead(1);
......@@ -234,11 +239,11 @@ public class LmsPenServiceImpl extends ServiceImpl<LmsPenMapper, LmsPen> impleme
@Override
public LmsPen getLatestPenLetter(Long userId) {
QueryWrapper<LmsPen> wrapper = new QueryWrapper<>();
wrapper.eq("receiver_id",userId);
wrapper.ge("arrive_time",new Date());
wrapper.eq("receiver_id", userId);
wrapper.ge("arrive_time", new Date());
wrapper.orderByDesc("arrive_time");
List<LmsPen> lmsPens = baseMapper.selectList(wrapper);
if (lmsPens.isEmpty()){
if (lmsPens.isEmpty()) {
return null;
}
return lmsPens.get(0);
......@@ -248,37 +253,38 @@ public class LmsPenServiceImpl extends ServiceImpl<LmsPenMapper, LmsPen> impleme
public CommonResult getUserLatestPenInfo() {
MyUserDetail details = (MyUserDetail) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
LmsPen latestPenLetter = getLatestPenLetter(Long.parseLong(details.getId().toString()));
if (latestPenLetter==null){
if (latestPenLetter == null) {
return CommonResult.success("快和你的笔友们交流吧!");
}
LmsIncident incident = incidentService.getById(latestPenLetter.getIncidentId());
long hours = latestPenLetter.getArriveTime().getTime()-new Date().getTime();
hours = hours/(1000*60*60);
String message = "有一封信正在赶来....+\n"+
"路上" + incident.getDescription()+",\n"+"大约"+hours+"小时后到达.";
long hours = latestPenLetter.getArriveTime().getTime() - new Date().getTime();
hours = hours / (1000 * 60 * 60);
String message = "有一封信正在赶来....+\n" +
"路上" + incident.getDescription() + ",\n" + "大约" + hours + "小时后到达.";
return CommonResult.success(message);
}
@Override
public CommonResult getPenFriendList(Long friendId, Long page, Long size) {
if (!relationService.isFriend(Integer.valueOf(friendId.toString()))){
if (!relationService.isFriend(Integer.valueOf(friendId.toString()))) {
return CommonResult.failed("您未添加对方为好友");
};
}
;
MyUserDetail details = (MyUserDetail) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
Date date = new Date("2000/5/22");
log.info(date.toString());
IPage<PenBriefDTO> sendList = baseMapper.selectSenderPenBriefList(Long.parseLong(details.getId().toString()), friendId, date, new Page<>(page,size));
IPage<PenBriefDTO> receiveList = baseMapper.selectSenderPenBriefList(friendId,Long.parseLong(details.getId().toString()), new Date(),new Page<>(page,size));
HashMap<String,Object> result = new HashMap<>();
result.put("total",sendList.getTotal() + receiveList.getTotal());
IPage<PenBriefDTO> sendList = baseMapper.selectSenderPenBriefList(Long.parseLong(details.getId().toString()), friendId, date, new Page<>(page, size));
IPage<PenBriefDTO> receiveList = baseMapper.selectSenderPenBriefList(friendId, Long.parseLong(details.getId().toString()), new Date(), new Page<>(page, size));
HashMap<String, Object> result = new HashMap<>();
result.put("total", sendList.getTotal() + receiveList.getTotal());
List<PenBriefDTO> resultList = new ArrayList<>();
resultList.addAll(sendList.getRecords());
resultList.addAll(receiveList.getRecords());
resultList.sort(new Comparator<PenBriefDTO>() {
@Override
public int compare(PenBriefDTO o1, PenBriefDTO o2) {
if (o1.getIsRead()>o2.getIsRead()){
if (o1.getIsRead() > o2.getIsRead()) {
return 1;
}
if (o1.getArriveTime().before(o2.getArriveTime())) {
......@@ -287,12 +293,12 @@ public class LmsPenServiceImpl extends ServiceImpl<LmsPenMapper, LmsPen> impleme
return 0;
}
});
int start = (int) ((page-1)*size);
int start = (int) ((page - 1) * size);
List<PenBriefDTO> penBriefDTOS = new ArrayList<>();
for (int i = start;i<resultList.size()-1&&i<start+size;i++){
for (int i = start; i < resultList.size() - 1 && i < start + size; i++) {
penBriefDTOS.add(resultList.get(i));
}
result.put("list",penBriefDTOS);
result.put("list", penBriefDTOS);
return CommonResult.success(result);
}
......
......@@ -70,7 +70,7 @@ public class UmsUser implements Serializable {
private String icon;
@ApiModelProperty(value = "邮票数量")
private String stampCount;
private Integer stampCount;
@ApiModelProperty(value = "每日收到信件投递的时间,格式为hh:mm:ss")
private String receiveLetterTime;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册