Merge branch 'temp' into develop/clock_in

This commit is contained in:
Cauchy
2023-10-12 13:34:16 +08:00
13 changed files with 138 additions and 34 deletions

View File

@@ -3,16 +3,23 @@ package com.peanut.config;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyRedissonConfig {
@Value("${redisAddress}")
private String redisAddress;
@Value("${redisPassword}")
private String redisPassword;
@Bean
public RedissonClient redissonClient() {
Config config = new Config();
config.useSingleServer().setAddress("redis://59.110.212.44:6379").setPassword("Jgll2015");
config.useSingleServer().setAddress(redisAddress).setPassword(redisPassword);
RedissonClient redissonClient = Redisson.create(config);
return redissonClient;
}

View File

@@ -1,8 +1,8 @@
/**
* Copyright (c) 2016-2019 人人开源 All rights reserved.
*
* <p>
* https://www.renren.io
*
* <p>
* 版权所有,侵权必究!
*/
@@ -27,5 +27,4 @@ public class MybatisPlusConfig {
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}

View File

@@ -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();
}

View File

@@ -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;
/**
* 列表 倒叙

View File

@@ -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

View File

@@ -26,7 +26,7 @@ public class BookTaskController {
@Autowired
private BookService bookService;
@Autowired
private BookClockinService bookClockinService;
private BookClockInService bookClockinService;
@Autowired
private MyUserService myUserService;
@Autowired

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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")
);

View File

@@ -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;
}

View File

@@ -3,7 +3,7 @@ spring:
redis:
open: false # 是否开启redis缓存 true开启 false关闭
database: 0
host: 39.106.36.183
host: 59.110.212.44
port: 6379
password: Jgll2015 # 密码(默认为空)
timeout: 6000000ms # 连接超时时长(毫秒)
@@ -50,7 +50,7 @@ spring:
initSQL: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci
rabbitmq:
host: 39.106.36.183
host: 59.110.212.44
port: 5672
username: admin
password: 751019
@@ -70,4 +70,7 @@ aliyun:
templateCode: SMS_248840040
server:
port: 9200
port: 9200
redisAddress: redis://59.110.212.44:6379
redisPassword: Jgll2015

View File

@@ -69,4 +69,7 @@ aliyun:
templateCode: SMS_248840040
server:
port: 9100
port: 9100
redisAddress: redis://59.110.212.44:6379
redisPassword: Jgll2015