Commit 2669276e authored by shiyu's avatar shiyu

分享信息

parent 4eff475a
......@@ -117,7 +117,7 @@ public class QdHomePageServiceImpl implements QdHomePageService {
@Override
public Result getAcode(String page, String scene, HttpServletRequest request) {
public Result getAcode(String page, String scene, HttpServletRequest request) {
try {
String url = "";
// 判断是否存储过该请求路径的微信小程序码图片
......
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.consts.CommConsts;
import com.wwdz.ch.core.consts.DisposableSubscribeRecordEnum;
import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.consts.SigninEnum;
import com.wwdz.ch.core.consts.qiandao.SignInTaskEnum;
import com.wwdz.ch.core.type.Result;
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.qiandao.QdUserSignInDao;
import com.wwdz.ch.db.dao.qiandao.QdUserSignInNoteDao;
import com.wwdz.ch.db.dao.qiandao.SignInTaskDao;
import com.wwdz.ch.db.dao.qiandao.*;
import com.wwdz.ch.db.domain.SignInShareImage;
import com.wwdz.ch.db.domain.User;
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.QdUserSignInNote;
import com.wwdz.ch.db.domain.qiandao.SignInTask;
import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto;
import com.wwdz.ch.wx.service.qiandao.QdUserSignInService;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.JsonUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
......@@ -30,6 +36,7 @@ import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@Service
public class QdUserSignInServiceImpl implements QdUserSignInService {
......@@ -51,6 +58,12 @@ public class QdUserSignInServiceImpl implements QdUserSignInService {
@Autowired
QdUserSignInNoteDao qdUserSignInNoteDao;
@Autowired
QdUserDao qdUserDao;
@Autowired
QdUserSignInTaskDao qdUserSignInTaskDao;
@Override
public Result check(QdUserSignInRequestDto dto) {
......@@ -281,4 +294,61 @@ public class QdUserSignInServiceImpl implements QdUserSignInService {
}
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;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.UserSignInRequestDto;
import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto;
public interface QdUserSignInService {
......@@ -34,4 +35,12 @@ public interface QdUserSignInService {
*/
Result findInfo(QdUserSignInRequestDto dto);
/**
* 获取分享信息
* @param dto
* @return
*/
Result getShareInfo(QdUserSignInRequestDto dto);
}
package com.wwdz.ch.wx.web.qiandao;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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.util.ImgUtil;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.db.dao.qiandao.QdUserSignInDao;
import com.wwdz.ch.db.domain.qiandao.QdUserSignIn;
import com.wwdz.ch.db.dto.request.UserSignInRequestDto;
......@@ -17,10 +21,15 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
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
@RequestMapping("/wx/qdUserSignIn")
......@@ -31,6 +40,43 @@ public class QdUserSignInController {
@Autowired
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 = "签到前置校验")
@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