Merge branch 'temp' into develop/clock_in
This commit is contained in:
@@ -1,14 +1,21 @@
|
||||
package com.peanut.modules.book.controller;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.TypeReference;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.peanut.common.utils.R;
|
||||
import com.peanut.modules.app.service.UserService;
|
||||
import com.peanut.modules.book.entity.BookClockEntryEntity;
|
||||
import com.peanut.modules.book.entity.BookClockInChatEntity;
|
||||
import com.peanut.modules.book.entity.BookClockInEntity;
|
||||
import com.peanut.modules.book.entity.UserEntity;
|
||||
import com.peanut.modules.book.service.BookClockEntryChatService;
|
||||
import com.peanut.modules.book.service.BookClockinService;
|
||||
import com.peanut.modules.book.service.BookClockEntryService;
|
||||
import com.peanut.modules.book.vo.ClockInCommentVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -18,14 +25,18 @@ import java.util.Map;
|
||||
* @Author: Cauchy
|
||||
* @CreateTime: 2023/10/11
|
||||
*/
|
||||
@RestController("/book/clockForum")
|
||||
@RestController
|
||||
@RequestMapping("/book/clockInForum")
|
||||
public class BookClockForumController {
|
||||
|
||||
@Autowired
|
||||
private BookClockEntryChatService bookClockEntryChatService;
|
||||
|
||||
@Autowired
|
||||
private BookClockinService bookClockinService;
|
||||
private BookClockEntryService bookClockEntryService;
|
||||
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
/**
|
||||
* 获取论坛内容
|
||||
@@ -37,10 +48,10 @@ public class BookClockForumController {
|
||||
@RequestMapping(path = "/getPostingInfo", method = RequestMethod.GET)
|
||||
public R getPostingInfo(@RequestParam("bookId") Integer bookId,
|
||||
@RequestParam("day") Integer day) {
|
||||
QueryWrapper<BookClockInEntity> queryWrapper = new QueryWrapper<>();
|
||||
QueryWrapper<BookClockEntryEntity> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("book_id", bookId);
|
||||
queryWrapper.eq("day", day);
|
||||
BookClockInEntity entity = bookClockinService.getOne(queryWrapper);
|
||||
BookClockEntryEntity entity = bookClockEntryService.getOne(queryWrapper);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("result", entity);
|
||||
return R.ok(result);
|
||||
@@ -53,11 +64,27 @@ public class BookClockForumController {
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(path = "/getChatList", method = RequestMethod.GET)
|
||||
public R getChatList(@RequestParam("entryId") Integer entryId) {
|
||||
public R getChatList(@RequestParam("entryId") Integer entryId,
|
||||
@RequestParam(value = "userId", required = false) Integer userId) {
|
||||
QueryWrapper<BookClockInChatEntity> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("entry_id", entryId);
|
||||
queryWrapper.orderByAsc("f_id", "create_time");
|
||||
List<BookClockInChatEntity> resultList = bookClockEntryChatService.list(queryWrapper);
|
||||
if (userId != null) {
|
||||
queryWrapper.eq("user_id", userId);
|
||||
}
|
||||
queryWrapper.orderByAsc("fid", "create_time");
|
||||
List<ClockInCommentVo> resultList = new ArrayList<>();
|
||||
List<BookClockInChatEntity> chatEntityList = bookClockEntryChatService.list(queryWrapper);
|
||||
for (BookClockInChatEntity entity : chatEntityList) {
|
||||
List<String> imageList = JSON.parseObject(entity.getImages(), new TypeReference<List<String>>() {
|
||||
});
|
||||
entity.setImageList(imageList);
|
||||
ClockInCommentVo vo = new ClockInCommentVo();
|
||||
BeanUtil.copyProperties(entity, vo);
|
||||
UserEntity user = userService.getById(entity.getUserId());
|
||||
vo.setNickName(user.getNickname());
|
||||
vo.setAvatar(user.getAvatar());
|
||||
resultList.add(vo);
|
||||
}
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("chatList", resultList);
|
||||
return R.ok(result);
|
||||
@@ -69,8 +96,11 @@ public class BookClockForumController {
|
||||
* @param chat
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(path = "/addChat", method = RequestMethod.POST)
|
||||
@PostMapping(path = "/addChat")
|
||||
public R addChat(@RequestBody BookClockInChatEntity chat) {
|
||||
List<String> imageList = chat.getImageList();
|
||||
String images = JSON.toJSON(imageList).toString();
|
||||
chat.setImages(images);
|
||||
bookClockEntryChatService.save(chat);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.peanut.modules.book.entity.BookClockInEntity;
|
||||
import com.peanut.modules.book.entity.BookClockinPunchEntity;
|
||||
import com.peanut.modules.book.service.BookClockinCommentService;
|
||||
import com.peanut.modules.book.service.BookClockinPunchService;
|
||||
import com.peanut.modules.book.service.BookClockinService;
|
||||
import com.peanut.modules.book.service.BookClockInService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import java.util.Arrays;
|
||||
@@ -28,7 +28,7 @@ public class BookClockinCommentController {
|
||||
@Autowired
|
||||
private BookClockinPunchService bookClockinPunchService;
|
||||
@Autowired
|
||||
private BookClockinService bookClockinService;
|
||||
private BookClockInService bookClockinService;
|
||||
|
||||
/**
|
||||
* 列表 倒叙
|
||||
|
||||
@@ -15,7 +15,7 @@ import java.util.*;
|
||||
@RequestMapping("book/clockin")
|
||||
public class BookClockinController {
|
||||
@Autowired
|
||||
private BookClockinService bookClockinService;
|
||||
private BookClockInService bookClockinService;
|
||||
@Autowired
|
||||
private BookTaskService bookTaskService;
|
||||
@Autowired
|
||||
|
||||
@@ -26,7 +26,7 @@ public class BookTaskController {
|
||||
@Autowired
|
||||
private BookService bookService;
|
||||
@Autowired
|
||||
private BookClockinService bookClockinService;
|
||||
private BookClockInService bookClockinService;
|
||||
@Autowired
|
||||
private MyUserService myUserService;
|
||||
@Autowired
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
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 java.util.*;
|
||||
|
||||
@@ -22,6 +23,7 @@ import java.util.*;
|
||||
* @CreateTime: 2023/10/11
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/book/userClockIn")
|
||||
public class UserBookClockController {
|
||||
@Autowired
|
||||
@@ -41,17 +43,23 @@ public class UserBookClockController {
|
||||
queryWrapper.eq("book_id", bookId);
|
||||
queryWrapper.eq("user_id", userId);
|
||||
UserBookClockEntity userBookClock = userBookClockService.getOne(queryWrapper);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
if (userBookClock == null) {
|
||||
return R.error("未获取到该用户的打卡信息");
|
||||
result.put("beginDate", new Date());
|
||||
result.put("currentDay", 1);
|
||||
result.put("clockInDayList", new ArrayList<>());
|
||||
return R.ok(result);
|
||||
}
|
||||
// 1. 获取打卡初始日期
|
||||
Date beginDate = userBookClock.getBeginDate();
|
||||
Date today = new Date();
|
||||
long between = DateUtil.between(beginDate, today, DateUnit.DAY);
|
||||
// 2. 获取打卡天数列表
|
||||
String clocksStr = userBookClock.getClocks();
|
||||
List<Integer> clockInDayList = JSON.parseObject(clocksStr, new TypeReference<List<Integer>>() {
|
||||
});
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("beginDate", beginDate);
|
||||
result.put("currentDay", between + 1);
|
||||
result.put("clockInDayList", clockInDayList);
|
||||
return R.ok(result);
|
||||
}
|
||||
@@ -64,7 +72,8 @@ public class UserBookClockController {
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(path = "/clockIn", method = RequestMethod.GET)
|
||||
public R clockIn(@RequestParam("bookId") Integer bookId, @RequestParam("userId") Integer userId) {
|
||||
public R clockIn(@RequestParam("bookId") Integer bookId,
|
||||
@RequestParam("userId") Integer userId) {
|
||||
// 查询是否有该用户打卡记录,如果没有,说明是第一天打卡
|
||||
QueryWrapper<UserBookClockEntity> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("book_id", bookId);
|
||||
@@ -90,7 +99,10 @@ public class UserBookClockController {
|
||||
Date beginDate = userBookClock.getBeginDate();
|
||||
Date today = new Date();
|
||||
long between = DateUtil.between(beginDate, today, DateUnit.DAY);
|
||||
clockInDaysList.add((int) between);
|
||||
if (clockInDaysList.contains((int) between + 1)) {
|
||||
return R.error("今天打卡已完成,不可重复打卡!");
|
||||
}
|
||||
clockInDaysList.add((int) (between + 1));
|
||||
String clockInDaysListStr = JSON.toJSON(clockInDaysList).toString();
|
||||
userBookClock.setClocks(clockInDaysListStr);
|
||||
userBookClockService.updateById(userBookClock);
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
package com.peanut.modules.book.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@TableName("book_clock_entry_chat")
|
||||
public class BookClockInChatEntity implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -24,8 +28,15 @@ public class BookClockInChatEntity implements Serializable {
|
||||
|
||||
private String content;
|
||||
|
||||
private Integer pChatId;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
@TableField(exist = false)
|
||||
private List<String> imageList;
|
||||
|
||||
private String images;
|
||||
}
|
||||
|
||||
@@ -6,10 +6,8 @@ import com.peanut.modules.book.entity.BookClockInEntity;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface BookClockinService extends IService<BookClockInEntity> {
|
||||
public interface BookClockInService extends IService<BookClockInEntity> {
|
||||
PageUtils queryPage(Map<String, Object> params);
|
||||
|
||||
|
||||
|
||||
PageUtils queryPagemylist(Map<String, Object> params);
|
||||
}
|
||||
@@ -7,24 +7,24 @@ import com.peanut.common.utils.PageUtils;
|
||||
import com.peanut.common.utils.Query;
|
||||
import com.peanut.modules.book.dao.BookClockinDao;
|
||||
import com.peanut.modules.book.entity.BookClockInEntity;
|
||||
import com.peanut.modules.book.service.BookClockinService;
|
||||
import com.peanut.modules.book.service.BookClockInService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class BookClockinServiceImpl extends ServiceImpl<BookClockinDao, BookClockInEntity> implements BookClockinService {
|
||||
public class BookClockInServiceImpl extends ServiceImpl<BookClockinDao, BookClockInEntity> implements BookClockInService {
|
||||
|
||||
|
||||
@Override
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
Object book =params.get("bookid");
|
||||
Object book = params.get("bookid");
|
||||
Object taskid = params.get("taskid");
|
||||
IPage<BookClockInEntity> page = this.page(
|
||||
new Query<BookClockInEntity>().getPage(params),
|
||||
new QueryWrapper<BookClockInEntity>()
|
||||
.eq("book_id",book)
|
||||
.eq("task_id",taskid)
|
||||
.eq("book_id", book)
|
||||
.eq("task_id", taskid)
|
||||
.orderByDesc("create_time")
|
||||
|
||||
);
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.peanut.modules.book.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 用户评论信息 Vo
|
||||
* @Author: Cauchy
|
||||
* @CreateTime: 2023/10/12
|
||||
*/
|
||||
@Data
|
||||
public class ClockInCommentVo {
|
||||
private Integer id;
|
||||
|
||||
private Integer entryId;
|
||||
|
||||
private Integer userId;
|
||||
|
||||
private Integer fid;
|
||||
|
||||
private Integer pUserId;
|
||||
|
||||
private String content;
|
||||
|
||||
private Integer pChatId;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private Integer delFlag;
|
||||
|
||||
private List<String> imageList;
|
||||
|
||||
private String images;
|
||||
|
||||
private String nickName;
|
||||
|
||||
private String avatar;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user