Commit 2669276e authored by shiyu's avatar shiyu

分享信息

parent 4eff475a
package com.wwdz.ch.wx.impl.qiandao; package com.wwdz.ch.wx.impl.qiandao;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wwdz.ch.core.api.wxpay.WxPayServiceApi; import com.wwdz.ch.core.api.wxpay.WxPayServiceApi;
import com.wwdz.ch.core.consts.CommConsts; import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.DisposableSubscribeRecordEnum;
import com.wwdz.ch.core.consts.DistributionEnum; import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.consts.SigninEnum; import com.wwdz.ch.core.consts.SigninEnum;
import com.wwdz.ch.core.consts.qiandao.SignInTaskEnum; import com.wwdz.ch.core.consts.qiandao.SignInTaskEnum;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.IdUtils; import com.wwdz.ch.core.util.IdUtils;
import com.wwdz.ch.core.util.OkHttpUtil;
import com.wwdz.ch.db.dao.distribution.DistributionOrderDao; import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
import com.wwdz.ch.db.dao.qiandao.QdUserSignInDao; import com.wwdz.ch.db.dao.qiandao.*;
import com.wwdz.ch.db.dao.qiandao.QdUserSignInNoteDao; import com.wwdz.ch.db.domain.SignInShareImage;
import com.wwdz.ch.db.dao.qiandao.SignInTaskDao; import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.db.domain.distribution.DistributionOrder; import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.qiandao.QdUser;
import com.wwdz.ch.db.domain.qiandao.QdUserSignIn; import com.wwdz.ch.db.domain.qiandao.QdUserSignIn;
import com.wwdz.ch.db.domain.qiandao.QdUserSignInNote; import com.wwdz.ch.db.domain.qiandao.QdUserSignInNote;
import com.wwdz.ch.db.domain.qiandao.SignInTask; import com.wwdz.ch.db.domain.qiandao.SignInTask;
import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto; import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto;
import com.wwdz.ch.wx.service.qiandao.QdUserSignInService; import com.wwdz.ch.wx.service.qiandao.QdUserSignInService;
import com.xxdxxs.utils.DateUtils; import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.JsonUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalTime; import java.time.LocalTime;
...@@ -30,6 +36,7 @@ import java.time.format.DateTimeFormatter; ...@@ -30,6 +36,7 @@ import java.time.format.DateTimeFormatter;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Objects;
@Service @Service
public class QdUserSignInServiceImpl implements QdUserSignInService { public class QdUserSignInServiceImpl implements QdUserSignInService {
...@@ -51,6 +58,12 @@ public class QdUserSignInServiceImpl implements QdUserSignInService { ...@@ -51,6 +58,12 @@ public class QdUserSignInServiceImpl implements QdUserSignInService {
@Autowired @Autowired
QdUserSignInNoteDao qdUserSignInNoteDao; QdUserSignInNoteDao qdUserSignInNoteDao;
@Autowired
QdUserDao qdUserDao;
@Autowired
QdUserSignInTaskDao qdUserSignInTaskDao;
@Override @Override
public Result check(QdUserSignInRequestDto dto) { public Result check(QdUserSignInRequestDto dto) {
...@@ -281,4 +294,61 @@ public class QdUserSignInServiceImpl implements QdUserSignInService { ...@@ -281,4 +294,61 @@ public class QdUserSignInServiceImpl implements QdUserSignInService {
} }
return Result.failed(); return Result.failed();
} }
@Override
public Result getShareInfo(QdUserSignInRequestDto dto) {
try {
long taskId = dto.getTaskId();
LocalDate today = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
String formattedDate = today.format(formatter);
Map<String, Object> map = new HashMap<>();
String backgroundImage = "https://cdn.wanwudezhi.com/static/web-static/image/78f4b7643dd2d41717d3040665dde669_1472x2616.png";
map.put("backgroundImage", backgroundImage);
QdUser qdUser = qdUserDao.queryById(dto.getUserId());
map.put("userName", qdUser.getNickName());
map.put("avatar", qdUser.getAvatar());
map.put("date", formattedDate);
map.put("day", today.getDayOfMonth());
LocalTime now = LocalTime.now();
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm");
String formattedTime = now.format(timeFormatter);
map.put("time", formattedTime);
DayOfWeek dayOfWeek = today.getDayOfWeek();
String weekDay = dayOfWeek.getDisplayName(java.time.format.TextStyle.FULL, java.util.Locale.CHINESE);
map.put("weekDay", weekDay);
QdUserSignIn qdUserSignIn = qdUserSignInDao.findLastedRecord(dto.getUserId(), taskId);
if (qdUserSignIn != null) {
LocalDate yesterday = today.minusDays(1);
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String yesterdayString = yesterday.format(dateFormatter);
String todayStr = today.format(dateFormatter);
if (qdUserSignIn.getSignInDate().equals(yesterdayString) || qdUserSignIn.getSignInDate().equals(todayStr)) {
map.put("consecutiveDays", qdUserSignIn.getConsecutiveDays());
} else {
map.put("consecutiveDays", 0);
}
} else {
map.put("consecutiveDays", 0);
}
//查询累计签到天数
long totalDays = qdUserSignInDao.countTotalRecord(dto.getUserId(), taskId);
map.put("totalDays", totalDays);
long joinPeopleNum = qdUserSignInTaskDao.countByTaskId(taskId);
map.put("joinPeopleNum", joinPeopleNum);
//查询任务信息
SignInTask signInTask = signInTaskDao.findById(taskId);
map.put("taskName", signInTask.getName());
map.put("taskId", taskId);
return Result.success(map);
} catch (Exception e) {
logger.error("获取分享信息失败 error : {}", e);
}
return Result.failed();
}
} }
package com.wwdz.ch.wx.service.qiandao; package com.wwdz.ch.wx.service.qiandao;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.UserSignInRequestDto;
import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto; import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto;
public interface QdUserSignInService { public interface QdUserSignInService {
...@@ -34,4 +35,12 @@ public interface QdUserSignInService { ...@@ -34,4 +35,12 @@ public interface QdUserSignInService {
*/ */
Result findInfo(QdUserSignInRequestDto dto); Result findInfo(QdUserSignInRequestDto dto);
/**
* 获取分享信息
* @param dto
* @return
*/
Result getShareInfo(QdUserSignInRequestDto dto);
} }
package com.wwdz.ch.wx.web.qiandao; package com.wwdz.ch.wx.web.qiandao;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.wwdz.ch.core.consts.ResultCode; import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.storage.StorageService;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.ImgUtil;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.db.dao.qiandao.QdUserSignInDao; import com.wwdz.ch.db.dao.qiandao.QdUserSignInDao;
import com.wwdz.ch.db.domain.qiandao.QdUserSignIn; import com.wwdz.ch.db.domain.qiandao.QdUserSignIn;
import com.wwdz.ch.db.dto.request.UserSignInRequestDto; import com.wwdz.ch.db.dto.request.UserSignInRequestDto;
...@@ -17,10 +21,15 @@ import org.apache.commons.lang3.StringUtils; ...@@ -17,10 +21,15 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
@RestController @RestController
@RequestMapping("/wx/qdUserSignIn") @RequestMapping("/wx/qdUserSignIn")
...@@ -31,6 +40,43 @@ public class QdUserSignInController { ...@@ -31,6 +40,43 @@ public class QdUserSignInController {
@Autowired @Autowired
QdUserSignInService qdUserSignInService; QdUserSignInService qdUserSignInService;
@Autowired
StorageService storageService;
/**
* 上传文件
*
* @param file
* @return
* @throws IOException
*/
@PostMapping("/upload")
@ApiOperation("上传文件")
public Object upload(@RequestParam("file") MultipartFile file) throws IOException {
logger.info("【请求开始】乾岛上传文件,请求参数,file:{}", file.getOriginalFilename());
String originalFilename = file.getOriginalFilename();
InputStream targetInput = null;
try (InputStream inputStream = file.getInputStream()) {
BufferedImage image = ImageIO.read(inputStream);
ImgUtil.ImageOrientationWithNameResult orientationResult = ImgUtil.getImageFileNameWithWithRepaintInfo(file, image, null);
if (orientationResult.getNeedRepaint()) {
logger.info("当前图片需要进行重绘,旋转角度:【{}】", orientationResult.getAngel());
targetInput = ImgUtil.repaintImage2InputStream(image, orientationResult.getAngel(), orientationResult.getType());
} else {
targetInput = file.getInputStream();
}
} catch (Exception e) {
logger.error("get image size failed : ", e);
}
String url = storageService.store(targetInput, file.getSize(), file.getContentType(), originalFilename);
Map<String, Object> data = new HashMap<>();
data.put("url", url);
logger.info("【请求结束】乾岛上传文件,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data);
}
@ApiOperation(value = "签到前置校验") @ApiOperation(value = "签到前置校验")
@PostMapping("/check") @PostMapping("/check")
......
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