记得上下班打卡 | git大法好,push需谨慎

Commit e3d7f75b authored by jiangxiulong's avatar jiangxiulong

统计task

parent 37c1e094
package com.liquidnet.service.feign.sweet.task;
import com.liquidnet.service.base.ResponseDto;
import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
@Component
@FeignClient(name = "liquidnet-service-sweet",
contextId = "FeignSweetTaskActivityClient", path = "",
url = "${liquidnet.service.sweet.url}",
fallback = FallbackFactory.Default.class)
public interface FeignSweetTaskActivityClient {
@PostMapping("sweet/sweetCityVote/setStatList")
ResponseDto<Boolean> setStatList();
}
......@@ -41,4 +41,10 @@ public class SweetCityVoteController {
return sweetCityVoteService.createVote(param);
}
@GetMapping("setStatList")
@ApiOperation("统计投票排名")
public ResponseDto setStatList() {
return sweetCityVoteService.setStatList();
}
}
package com.liquidnet.service.sweet.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel
public class SweetCityVoteStatDto implements Serializable ,Cloneable{
private static final long serialVersionUID = -3159959399631688127L;
@ApiModelProperty("城市代码")
private String cityCode;
@ApiModelProperty("城市名称")
private String cityName;
@ApiModelProperty("真实投票数量")
private Integer voteNum;
@ApiModelProperty("手动增加投票数量")
private Integer manualVoteNum;
@ApiModelProperty("总投票数")
private Integer totalNum;
private static final SweetCityVoteStatDto obj = new SweetCityVoteStatDto();
public static SweetCityVoteStatDto getNew() {
try {
return (SweetCityVoteStatDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetCityVoteStatDto();
}
}
}
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 城市投票统计表
* </p>
*
* @author jiangxiulong
* @since 2021-09-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetCityVoteStat implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* stat_id
*/
private String statId;
/**
* 城市代码
*/
private String cityCode;
/**
* 城市名称
*/
private String cityName;
/**
* 真实投票数量
*/
private Integer voteNum;
/**
* 手动增加投票数量
*/
private Integer manualVoteNum;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
}
package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.dto.SweetCityVoteStatDto;
import com.liquidnet.service.sweet.entity.SweetCityVoteStat;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* <p>
* 城市投票统计表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2021-09-15
*/
public interface SweetCityVoteStatMapper extends BaseMapper<SweetCityVoteStat> {
List<SweetCityVoteStatDto> getStatList();
}
......@@ -22,4 +22,5 @@ public interface ISweetCityVoteService extends IService<SweetCityVote> {
ResponseDto createVote(SweetCityVoteParam param);
ResponseDto setStatList();
}
package com.liquidnet.service.sweet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderSimpleVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.dto.vo.PerformanceOrderStatisticalVo;
import com.liquidnet.service.sweet.dto.SweetCityVoteStatDto;
import com.liquidnet.service.sweet.entity.SweetCityVote;
import com.liquidnet.service.sweet.mapper.SweetCityVoteMapper;
import com.liquidnet.service.sweet.mapper.SweetCityVoteStatMapper;
import com.liquidnet.service.sweet.param.SweetCityVoteParam;
import com.liquidnet.service.sweet.service.ISweetCityVoteService;
import com.liquidnet.service.sweet.utils.ObjectUtil;
import com.liquidnet.service.sweet.utils.QueueUtils;
import com.liquidnet.service.sweet.utils.RedisDataUtils;
import com.liquidnet.service.sweet.vo.SweetCItyVoteStatVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
......@@ -36,6 +48,8 @@ public class SweetCityVoteServiceImpl extends ServiceImpl<SweetCityVoteMapper, S
private RedisDataUtils redisDataUtils;
@Autowired
QueueUtils queueUtils;
@Autowired
private SweetCityVoteStatMapper sweetCityVoteStatMapper;
@Override
public ResponseDto<List<SweetCItyVoteStatVo>> getList() {
......@@ -85,4 +99,14 @@ public class SweetCityVoteServiceImpl extends ServiceImpl<SweetCityVoteMapper, S
return ResponseDto.success();
}
public ResponseDto setStatList() {
List<SweetCityVoteStatDto> list = sweetCityVoteStatMapper.getStatList();
if (!CollectionUtils.isEmpty(list)) {
ArrayList<SweetCItyVoteStatVo> newList = ObjectUtil.getSweetCItyVoteStatVoList();
list.forEach(r -> newList.add(SweetCItyVoteStatVo.getNew().copy(r)));
redisDataUtils.setSweetCityVoteStatList(newList);
}
return ResponseDto.success();
}
}
......@@ -7,6 +7,7 @@ import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistListMDSKDto;
import com.liquidnet.service.sweet.entity.SweetManualShop;
import com.liquidnet.service.sweet.entity.SweetManualShopMdsk;
import com.liquidnet.service.sweet.vo.SweetCItyVoteStatVo;
import java.util.ArrayList;
......@@ -18,6 +19,7 @@ public class ObjectUtil {
private static final ArrayList<SweetManualAppletMDSKDto> sweetManualAppletMDSKDtoList = new ArrayList<>();
private static final ArrayList<SweetManualArtistListMDSKDto> sweetManualArtistListMDSKDtoList = new ArrayList<>();
private static final ArrayList<SweetManualShopMdsk> sweetManualShopMDSKList = new ArrayList<>();
private static final ArrayList<SweetCItyVoteStatVo> sweetCItyVoteStatVoList = new ArrayList<>();
public static ArrayList<SweetManualAppletDto> getSweetManualAppletDtoList() {
return (ArrayList<SweetManualAppletDto>)sweetManualAppletDtoList.clone();
......@@ -43,4 +45,8 @@ public class ObjectUtil {
public static ArrayList<SweetManualShopMdsk> getSweetManualShopMdskList() {
return (ArrayList<SweetManualShopMdsk>)sweetManualShopMDSKList.clone();
}
public static ArrayList<SweetCItyVoteStatVo> getSweetCItyVoteStatVoList() {
return (ArrayList<SweetCItyVoteStatVo>)sweetCItyVoteStatVoList.clone();
}
}
......@@ -2,6 +2,7 @@ package com.liquidnet.service.sweet.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.liquidnet.service.sweet.dto.SweetCityVoteStatDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -25,10 +26,13 @@ public class SweetCItyVoteStatVo implements Serializable, Cloneable {
private String cityName;
@ApiModelProperty("真实投票数量")
private String voteNum;
private Integer voteNum;
@ApiModelProperty("手动增加投票数量")
private String manualVoteNum;
private Integer manualVoteNum;
@ApiModelProperty("总投票数")
private Integer totalNum;
/*@ApiModelProperty("创建时间")
private LocalDateTime createdAt;
......@@ -45,4 +49,14 @@ public class SweetCItyVoteStatVo implements Serializable, Cloneable {
}
}
public SweetCItyVoteStatVo copy(SweetCityVoteStatDto source) {
if (null == this) return this;
this.setCityCode(source.getCityCode());
this.setCityName(source.getCityName());
this.setVoteNum(source.getVoteNum());
this.setManualVoteNum(source.getManualVoteNum());
this.setTotalNum(source.getTotalNum());
return this;
}
}
<?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.liquidnet.service.sweet.mapper.SweetCityVoteStatMapper">
<resultMap id="getListResult" type="com.liquidnet.service.sweet.dto.SweetCityVoteStatDto">
<result column="city_code" property="cityCode"/>
<result column="city_name" property="cityName"/>
<result column="vote_num" property="voteNum"/>
<result column="manual_vote_num" property="manualVoteNum"/>
<result column="total_num" property="totalNum"/>
</resultMap>
<select id="getStatList" resultMap="getListResult">
select
*, (vote_num + manual_vote_num) as total_num
from sweet_city_vote_stat
ORDER BY total_num DESC
</select>
</mapper>
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