Commit 8a62f969 by xunj

红包雨-抢红包

1 parent 4552338f
package com.polysoft.activity.controller;
import com.polysoft.activity.model.param.AddRedRainParam;
import com.polysoft.activity.service.ActItemService;
import com.polysoft.activity.utils.ApiResult;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
@RequestMapping("/red/rain")
@Api(value = "心愿", description = "心愿接口")
public class RedPackageController {
@Resource
private ActItemService actItemService;
@PostMapping("/saveRedRain" )
@ResponseBody
public ApiResult saveRedRain(@RequestBody AddRedRainParam param) {
return actItemService.saveRedRain(param);
}
@GetMapping("/queryActivityInfo" )
@ResponseBody
public ApiResult queryActivityInfo() {
return actItemService.queryActivityInfo();
}
}
package com.polysoft.activity.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.polysoft.activity.model.dto.ActItemDto;
import com.polysoft.activity.model.dto.AddRedRainDto;
import com.polysoft.activity.model.vo.ActItemVO;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
import java.util.List;
/**
* @author lvyp
* @date 2021/1/28
*/
@Mapper
public interface ActivityMapper extends BaseMapper<ActItemDto> {
List<ActItemVO> queryActivityInfo();
int updateActStatus(@Param("id")Long id ,@Param("status") int status);
int saveRedRain(@Param("list") List<AddRedRainDto> list);
}
package com.polysoft.activity.model.dto;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* @author lvyp
* @date 2021/1/28
*/
@Data
@TableName(value = "act_item")
public class ActItemDto {
private Long id;
private String activityName;
private String startTime;
private String emdTime;
private int activityStatus;
}
package com.polysoft.activity.model.dto;
import cn.hutool.core.date.DateUtil;
import lombok.Data;
import java.util.Date;
/**
* @author lvyp
* @date 2021/1/28
*/
@Data
public class AddRedRainDto {
private Long redId ;
//用户主键
private Long userId ;
//红包金额
private String redAmount ;
//红包类型 0 普通红包 1 牛牌
private Long redType ;
//牛牌主键
private Long cattleBrandId ;
private String createTime;
//0 未结算 1 已结算
private int isEnble;
public void setCreateTime(Date date) {
this.createTime = DateUtil.format(date,"yyyy-MM-dd HH:mm:ss");
}
}
package com.polysoft.activity.model.param;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* @author lvyp
* @date 2021/1/28
*/
@Data
public class AddRedRainParam {
private Long userId;
private int redNum;
}
package com.polysoft.activity.model.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* @author lvyp
* @date 2021/1/28
*/
@Data
public class ActItemVO {
private Long id;
private String activityName;
private String startTime;
private String emdTime;
private int activityStatus;
}
package com.polysoft.activity.service;
import com.polysoft.activity.model.param.AddRedRainParam;
import com.polysoft.activity.model.vo.ActItemVO;
import com.polysoft.activity.utils.ApiResult;
/**
* @author lvyp
* @date 2021/1/28
*/
public interface ActItemService {
ApiResult queryActivityInfo();
ApiResult saveRedRain(AddRedRainParam param);
}
package com.polysoft.activity.service.impl;
import cn.hutool.core.date.DateUtil;
import com.polysoft.activity.mapper.ActivityMapper;
import com.polysoft.activity.model.dto.AddRedRainDto;
import com.polysoft.activity.model.param.AddRedRainParam;
import com.polysoft.activity.model.vo.ActItemVO;
import com.polysoft.activity.service.ActItemService;
import com.polysoft.activity.utils.ApiResult;
import com.polysoft.activity.utils.SnowFlakeUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author lvyp
* @date 2021/1/28
*/
@Service
public class ActItemServiceImpl implements ActItemService{
@Resource
private ActivityMapper activityMapper;
@Override
public ApiResult queryActivityInfo() {
List<ActItemVO> list = activityMapper.queryActivityInfo();
for (ActItemVO item : list) {
if(item.getActivityStatus() != 3) {
Long startTime = DateUtil.parse(item.getStartTime(), "yyyy-MM-dd HH:mm:ss").getTime() / 1000;
Long endTime = DateUtil.parse(item.getEmdTime(), "yyyy-MM-dd HH:mm:ss").getTime() / 1000;
Long cuttentTime = System.currentTimeMillis() / 1000;
if (cuttentTime > startTime && cuttentTime < endTime) {
//正在进行
activityMapper.updateActStatus(item.getId(), 1);
item.setActivityStatus(1);
}
if(cuttentTime < startTime && (startTime - cuttentTime) <30){
//即将开始
activityMapper.updateActStatus(item.getId(), 2);
item.setActivityStatus(2);
}
if (cuttentTime > endTime) {
//已结束
activityMapper.updateActStatus(item.getId(), 3);
item.setActivityStatus(3);
}
}
}
return ApiResult.ok(list);
}
@Override
public ApiResult saveRedRain(AddRedRainParam param) {
Date date = new Date();
List<AddRedRainDto> list = new ArrayList<>();
if(param.getRedNum() > 0) {
for (int i = 0; i < param.getRedNum(); i++) {
AddRedRainDto dto = new AddRedRainDto();
dto.setRedId(SnowFlakeUtil.nextId());
dto.setUserId(param.getUserId());
dto.setCreateTime(date);
list.add(dto);
}
activityMapper.saveRedRain(list);
}
return ApiResult.ok();
}
}
...@@ -39,8 +39,8 @@ public class WishServiceImpl implements WishService { ...@@ -39,8 +39,8 @@ public class WishServiceImpl implements WishService {
private WishPicMapper wishPicMapper; private WishPicMapper wishPicMapper;
@Value("${fileUpload.saveWishPicPath}") @Value("${fileUpload.saveWishPicPath}")
private String saveWishPicPath; private String saveWishPicPath;
@Value("${fileUpload.cllWishPicUrl}") @Value("${fileUpload.callWishPicUrl}")
private String cllWishPicUrl; private String callWishPicUrl;
@Override @Override
public ApiResult addWish(AddWishParam param) { public ApiResult addWish(AddWishParam param) {
...@@ -52,7 +52,7 @@ public class WishServiceImpl implements WishService { ...@@ -52,7 +52,7 @@ public class WishServiceImpl implements WishService {
wishPicDto.setPicId(SnowFlakeUtil.nextId()); wishPicDto.setPicId(SnowFlakeUtil.nextId());
wishPicDto.setWishId(wishId); wishPicDto.setWishId(wishId);
wishPicDto.setCreateTime(new Date()); wishPicDto.setCreateTime(new Date());
wishPicDto.setPicUrl(cllWishPicUrl+result.get("data").toString()); wishPicDto.setPicUrl(callWishPicUrl+result.get("data").toString());
wishPicMapper.insert(wishPicDto); wishPicMapper.insert(wishPicDto);
} }
dto.setWishId(wishId); dto.setWishId(wishId);
......
...@@ -2,6 +2,7 @@ package com.polysoft.activity.task; ...@@ -2,6 +2,7 @@ package com.polysoft.activity.task;
import com.polysoft.activity.common.log.LoggerHelper; import com.polysoft.activity.common.log.LoggerHelper;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -11,25 +12,17 @@ import org.springframework.stereotype.Component; ...@@ -11,25 +12,17 @@ import org.springframework.stereotype.Component;
* @date 2021/1/21 * @date 2021/1/21
*/ */
@Component @Component
public class EpidemicForSendWechat { @EnableScheduling
@Value("${spring.profiles.active}") public class InitRedPackageTask {
private String profile;
@Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000) // @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000)
public void execute() { public void execute() {
try {
if (!"prod".equals(profile)) {
return;
}
Thread.sleep(10000);
sendWechat(); sendWechat();
} catch (InterruptedException e) {
LoggerHelper.err(this.getClass(), "EpidemicForSendWechatp休眠异常:{}", e);
}
} }
private void sendWechat(){ private void sendWechat(){
//查询疫情回访数据基础表 //查询出没有初始化的红包
System.out.println("任务开始");
} }
} }
...@@ -68,6 +68,6 @@ wechat: ...@@ -68,6 +68,6 @@ wechat:
accessTokenUrl: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential& accessTokenUrl: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&
jsapiTicketUrl: https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi& jsapiTicketUrl: https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&
fileUpload: fileUpload:
wishPicUrl: http://quality.item.polyhome.net/spfest/images callWishPicUrl: http://quality.item.polyhome.net/spfest/images
wishPicUrl: E:/spring_festvial/images saveWishPicPath: E:/spring_festvial/images
...@@ -69,4 +69,4 @@ wechat: ...@@ -69,4 +69,4 @@ wechat:
jsapiTicketUrl: https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi& jsapiTicketUrl: https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&
fileUpload: fileUpload:
saveWishPicPath: /home/spring_fistival/images saveWishPicPath: /home/spring_fistival/images
cllWishPicUrl: http://quality.item.polyhome.net/spfest/images callWishPicUrl: http://quality.item.polyhome.net/spfest/images
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.polysoft.activity.mapper.ActivityMapper">
<insert id="saveRedRain" parameterType="list">
INSERT into t_red_rain (
red_id,
user_id,
create_time
)VALUES
<foreach collection="list" item="item" index="index" separator =",">
(
#{item.redId},
#{item.userId},
#{item.createTime}
)
</foreach>
</insert>
<update id="updateActStatus">
update act_item
set activity_status=#{status}
where id =#{id}
</update>
<select id="queryActivityInfo" resultType="com.polysoft.activity.model.vo.ActItemVO">
SELECT
id,
activity_name,
start_time,
emd_time,
activity_status
FROM
act_item ORDER by id asc
</select>
</mapper>
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!