提交 52c932cf authored 作者: 吕本才's avatar 吕本才

竞品数据展示

上级 591dd164
package com.link.bi.controller.query;
import com.link.bi.service.IEcBaStoreDailyDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/ba/store/query")
public class EcBaStoreDailyDataQueryController {
@Autowired
IEcBaStoreDailyDataService ecBaStoreDailyDataService;
}
package com.link.bi.controller.query;
import com.link.bi.pojo.request.OppoCmmDto;
import com.link.bi.pojo.response.OppoCmmVO;
import com.link.bi.service.IOppoCmmService;
import com.sfa.common.core.web.controller.BaseController;
import com.sfa.common.security.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 电商竞品-蝉妈妈数据(抖音后台)Controller
*
* @author admin
* @date 2024-12-19
*/
@RestController
@RequestMapping("/oppo/cmm")
public class OppoCmmQueryController extends BaseController {
@Autowired
private IOppoCmmService oppoCmmService;
/**
* 查询电商竞品-蝉妈妈数据(抖音后台)列表
* zbj 直播间数据
*/
@RequiresPermissions("bi:cmm:list")
@GetMapping("/zbj")
public List<List<OppoCmmVO>> selectOppoCmmZbjBiList(OppoCmmDto oppoCmmDto) {
return oppoCmmService.selectOppoCmmZbjBiList(oppoCmmDto);
}
}
package com.link.bi.controller.query;
import com.link.bi.pojo.request.OppoSycmDto;
import com.link.bi.pojo.response.OppoSycmVO;
import com.link.bi.service.IOppoSycmService;
import com.sfa.common.core.web.controller.BaseController;
import com.sfa.common.security.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 电商竞品-生意参谋数据(天猫)Controller
*
* @author admin
* @date 2024-12-20
*/
@RestController
@RequestMapping("/oppo/sycm")
public class OppoSycmQueryController extends BaseController
{
@Autowired
private IOppoSycmService oppoSycmService;
/**
* 查询电商竞品-生意参谋数据(天猫)列表
*/
@RequiresPermissions("sycm:sycm:list")
@GetMapping("/list")
public List<List<OppoSycmVO>> list(OppoSycmDto oppoSycmDto)
{
return oppoSycmService.selectOppoSycmStoreBi(oppoSycmDto);
}
}
package com.link.bi.domain.dao;
import com.link.bi.domain.entity.OppoCmm;
import com.link.bi.domain.wq.OppoCmmWq;
import java.util.List;
/**
* 电商竞品-蝉妈妈数据(抖音后台)Mapper接口
*
* @author admin
* @date 2024-12-19
*/
public interface IOppoCmmDao {
List<OppoCmm> selectList(OppoCmmWq oppoCmmDto);
}
package com.link.bi.domain.dao;
import com.link.bi.domain.entity.OppoSycm;
import com.link.bi.domain.wq.OppoSycmWq;
import java.util.List;
/**
* 电商竞品-蝉妈妈数据(抖音后台)Mapper接口
*
* @author admin
* @date 2024-12-19
*/
public interface IOppoSycmDao {
List<OppoSycm> selectList(OppoSycmWq wq);
}
package com.link.bi.domain.dao.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.link.bi.domain.dao.IOppoCmmDao;
import com.link.bi.domain.entity.OppoCmm;
import com.link.bi.domain.mapper.OppoCmmMapper;
import com.link.bi.domain.wq.OppoCmmWq;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author : lvbencai
* @date : 2024-12-20 10:32
* @describe :
*/
@Service
public class OppoCmmDaoImpl implements IOppoCmmDao {
@Autowired
OppoCmmMapper oppoCmmMapper;
@Override
public List<OppoCmm> selectList(OppoCmmWq wq) {
// 查询数据库数据
QueryWrapper<OppoCmm> wrapper = new QueryWrapper<>();
wrapper.select("`date`,name,SUM(gkrc_num) AS gkrc_num_total, SUM(sale_sum) AS sale_sum_total ");
wrapper.between(ObjectUtil.isNotEmpty(wq.getStartDate()), "date", wq.getStartDate(), wq.getEndDate());
wrapper.groupBy("name,`date`");
wrapper.orderByDesc("`date`");
return oppoCmmMapper.selectList(wrapper);
}
}
package com.link.bi.domain.dao.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.link.bi.domain.dao.IOppoSycmDao;
import com.link.bi.domain.entity.OppoSycm;
import com.link.bi.domain.mapper.OppoSycmMapper;
import com.link.bi.domain.wq.OppoSycmWq;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author : lvbencai
* @date : 2024-12-20 10:32
* @describe :
*/
@Service
public class OppoSycmDaoImpl implements IOppoSycmDao {
@Autowired
OppoSycmMapper oppoSycmMapper;
@Override
public List<OppoSycm> selectList(OppoSycmWq wq) {
// 查询数据库数据
QueryWrapper<OppoSycm> wrapper = new QueryWrapper<>();
wrapper.select("`date`,platform_store,SUM(zfmj_under) AS zfmj_under_total, SUM(zfmj_peak) AS zfmj_peak_total , SUM(jyzs_under) AS jyzs_under_total , SUM(jyzs_peak) AS jyzs_peak_total , SUM(uv_under) AS uv_under_total , SUM(uv_peak) AS uv_peak_total, SUM(llzs_under) AS llzs_under_total, SUM(llzs_peak) AS llzs_peak_total ");
String storeStr = "三只松鼠旗舰店,良品铺子旗舰店,比比赞旗舰店,百草味官方旗舰店,沃隆旗舰店,每果时光旗舰店,老街口旗舰店,洽洽食品官方旗舰店,好利来官方旗舰店,盐津铺子食品旗舰店,德芙官方旗舰店,蒙都旗舰店,脱骨侠旗舰店,炭食光食品旗舰店,藤桥官方旗舰店,蒙时代旗舰店,周黑鸭食品旗舰店";
wrapper.in("platform_store",storeStr.split(","));
wrapper.between(ObjectUtil.isNotEmpty(wq.getStartDate()), "date", wq.getStartDate(), wq.getEndDate());
wrapper.groupBy("platform_store,`date`");
wrapper.orderByDesc("`date`");
//
return oppoSycmMapper.selectList(wrapper);
}
}
package com.link.bi.domain.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sfa.common.core.annotation.Excel;
import com.sfa.common.core.web.domain.BaseDo;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
/**
* 王小卤后台数据对象 ec_ba_store_daily_data
*
* @author admin
* @date 2024-12-19
*/
@TableName(value ="ec_ba_store_daily_data")
@Data
public class EcBaStoreDailyData extends BaseDo
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id标识 */
private Long ebtId;
/** 年份 */
@Excel(name = "年份")
private Long year;
/** 月份 */
@Excel(name = "月份")
private Long month;
/** 日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date date;
/** 平台id */
@Excel(name = "平台id")
private Long platformId;
/** 1 天猫; 2 抖音; 3 拼多多; 4 京东; 5 私域; 6 分销; 7 线下; 8 样品; 9 团购; 10 其他; */
@Excel(name = "1 天猫; 2 抖音; 3 拼多多; 4 京东; 5 私域; 6 分销; 7 线下; 8 样品; 9 团购; 10 其他;")
private String platform;
/** 取数平台:生意参谋、拼多多后台、抖音罗盘 */
@Excel(name = "取数平台:生意参谋、拼多多后台、抖音罗盘")
private String dataPlatform;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String storeCode;
/** 店铺名称 */
@Excel(name = "店铺名称")
private String storeName;
/** 成交总额-支付金额 */
@Excel(name = "成交总额-支付金额")
private BigDecimal gmv;
/** 净成交总额-支付金额-退款 */
@Excel(name = "净成交总额-支付金额-退款")
private BigDecimal netGmv;
/** 投资回报率,单位% */
@Excel(name = "投资回报率,单位%")
private BigDecimal roi;
/** 推广花费(包含每日额外平均) */
@Excel(name = "推广花费", readConverterExp = "包=含每日额外平均")
private BigDecimal promotionCost;
/** 推广花费-每日额外平均,淘宝天猫有 */
@Excel(name = "推广花费-每日额外平均,淘宝天猫有")
private BigDecimal promotionCostExtra;
/** 推广产出-推广总交易额 */
@Excel(name = "推广产出-推广总交易额")
private BigDecimal promotionOutput;
/** 浏览量 */
@Excel(name = "浏览量")
private Long pv;
/** 点击人数-unique visitor(访客) */
@Excel(name = "点击人数-unique visitor(访客)")
private Long uv;
/** 成交人数-支付买家 */
@Excel(name = "成交人数-支付买家")
private Long transactionsNum;
/** 成交转化率Conversion Rate-支付转化 */
@Excel(name = "成交转化率Conversion Rate-支付转化")
private BigDecimal cvr;
/** 退款金额 */
@Excel(name = "退款金额")
private BigDecimal refundAmount;
/** 退款率:退款金额/gmv */
@Excel(name = "退款率:退款金额/gmv")
private BigDecimal refundRate;
/** 客单价Average Transaction Value */
@Excel(name = "客单价Average Transaction Value")
private BigDecimal atv;
/** 批次号 */
@Excel(name = "批次号")
private String batchNo;
/** 是否删除标志0未删除1已删除 */
private String delFlag;
/** 创建人UserID */
@Excel(name = "创建人UserID")
private Long createUserId;
/** 修改人UserID */
@Excel(name = "修改人UserID")
private Long updateUserId;
public void setEbtId(Long ebtId)
{
this.ebtId = ebtId;
}
public Long getEbtId()
{
return ebtId;
}
public void setYear(Long year)
{
this.year = year;
}
public Long getYear()
{
return year;
}
public void setMonth(Long month)
{
this.month = month;
}
public Long getMonth()
{
return month;
}
public void setDate(Date date)
{
this.date = date;
}
public Date getDate()
{
return date;
}
public void setPlatformId(Long platformId)
{
this.platformId = platformId;
}
public Long getPlatformId()
{
return platformId;
}
public void setPlatform(String platform)
{
this.platform = platform;
}
public String getPlatform()
{
return platform;
}
public void setDataPlatform(String dataPlatform)
{
this.dataPlatform = dataPlatform;
}
public String getDataPlatform()
{
return dataPlatform;
}
public void setStoreCode(String storeCode)
{
this.storeCode = storeCode;
}
public String getStoreCode()
{
return storeCode;
}
public void setStoreName(String storeName)
{
this.storeName = storeName;
}
public String getStoreName()
{
return storeName;
}
public void setGmv(BigDecimal gmv)
{
this.gmv = gmv;
}
public BigDecimal getGmv()
{
return gmv;
}
public void setNetGmv(BigDecimal netGmv)
{
this.netGmv = netGmv;
}
public BigDecimal getNetGmv()
{
return netGmv;
}
public void setRoi(BigDecimal roi)
{
this.roi = roi;
}
public BigDecimal getRoi()
{
return roi;
}
public void setPromotionCost(BigDecimal promotionCost)
{
this.promotionCost = promotionCost;
}
public BigDecimal getPromotionCost()
{
return promotionCost;
}
public void setPromotionCostExtra(BigDecimal promotionCostExtra)
{
this.promotionCostExtra = promotionCostExtra;
}
public BigDecimal getPromotionCostExtra()
{
return promotionCostExtra;
}
public void setPromotionOutput(BigDecimal promotionOutput)
{
this.promotionOutput = promotionOutput;
}
public BigDecimal getPromotionOutput()
{
return promotionOutput;
}
public void setPv(Long pv)
{
this.pv = pv;
}
public Long getPv()
{
return pv;
}
public void setUv(Long uv)
{
this.uv = uv;
}
public Long getUv()
{
return uv;
}
public void setTransactionsNum(Long transactionsNum)
{
this.transactionsNum = transactionsNum;
}
public Long getTransactionsNum()
{
return transactionsNum;
}
public void setCvr(BigDecimal cvr)
{
this.cvr = cvr;
}
public BigDecimal getCvr()
{
return cvr;
}
public void setRefundAmount(BigDecimal refundAmount)
{
this.refundAmount = refundAmount;
}
public BigDecimal getRefundAmount()
{
return refundAmount;
}
public void setRefundRate(BigDecimal refundRate)
{
this.refundRate = refundRate;
}
public BigDecimal getRefundRate()
{
return refundRate;
}
public void setAtv(BigDecimal atv)
{
this.atv = atv;
}
public BigDecimal getAtv()
{
return atv;
}
public void setBatchNo(String batchNo)
{
this.batchNo = batchNo;
}
public String getBatchNo()
{
return batchNo;
}
public void setDelFlag(String delFlag)
{
this.delFlag = delFlag;
}
public String getDelFlag()
{
return delFlag;
}
public void setCreateUserId(Long createUserId)
{
this.createUserId = createUserId;
}
public Long getCreateUserId()
{
return createUserId;
}
public void setUpdateUserId(Long updateUserId)
{
this.updateUserId = updateUserId;
}
public Long getUpdateUserId()
{
return updateUserId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("ebtId", getEbtId())
.append("year", getYear())
.append("month", getMonth())
.append("date", getDate())
.append("platformId", getPlatformId())
.append("platform", getPlatform())
.append("dataPlatform", getDataPlatform())
.append("storeCode", getStoreCode())
.append("storeName", getStoreName())
.append("gmv", getGmv())
.append("netGmv", getNetGmv())
.append("roi", getRoi())
.append("promotionCost", getPromotionCost())
.append("promotionCostExtra", getPromotionCostExtra())
.append("promotionOutput", getPromotionOutput())
.append("pv", getPv())
.append("uv", getUv())
.append("transactionsNum", getTransactionsNum())
.append("cvr", getCvr())
.append("refundAmount", getRefundAmount())
.append("refundRate", getRefundRate())
.append("atv", getAtv())
.append("batchNo", getBatchNo())
.append("delFlag", getDelFlag())
.append("createBy", getCreateBy())
.append("createUserId", getCreateUserId())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateUserId", getUpdateUserId())
.append("updateTime", getUpdateTime())
.toString();
}
}
package com.link.bi.domain.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sfa.common.core.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 电商竞品-蝉妈妈数据(抖音后台)对象 oppo_cmm
*
* @author admin
* @date 2024-12-19
*/
@TableName(value = "oppo_cmm")
@Data
public class OppoCmm implements Serializable {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* id标识
*/
private Long cmmId;
/**
* 年份
*/
@Excel(name = "年份")
private Long year;
/**
* 月份
*/
@Excel(name = "月份")
private Long month;
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date date;
/**
* 日期
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date dateinfo;
/**
* 平台id-2
*/
@Excel(name = "平台id-2")
private Long platformId;
/**
* 2 抖音
*/
@Excel(name = "2 抖音")
private String platform;
/**
* 取数平台:蝉妈妈
*/
@Excel(name = "取数平台:蝉妈妈")
private String dataPlatform;
/**
* 店铺名
*/
@Excel(name = "店铺名")
private String name;
/**
* 直播场次
*/
@Excel(name = "直播场次")
private String zbcc;
/**
* 观看人次
*/
@Excel(name = "观看人次")
private Long gkrcNum;
/**
* 观看人次求和
*/
@Excel(name = "观看人次求和")
@TableField(exist = false)
private Long gkrcNumTotal;
/**
* 人气峰值
*/
@Excel(name = "人气峰值")
private Long rqfz;
/**
* unique visitor(独立访客)
*/
@Excel(name = "unique visitor(独立访客)")
private Long uv;
/**
* 销售量
*/
@Excel(name = "销售量")
private BigDecimal saleCount;
/**
* 销售额
*/
@Excel(name = "销售额")
private BigDecimal saleSum;
/**
* 销售额求和
*/
@Excel(name = "销售额求和")
@TableField(exist = false)
private BigDecimal saleSumTotal;
/**
* 创建日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date creatDatetime;
}
package com.link.bi.domain.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sfa.common.core.annotation.Excel;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.io.Serializable;
import java.util.Date;
/**
* 电商竞品-生意参谋数据(天猫)对象 oppo_sycm
*
* @author admin
* @date 2024-12-20
*/
@TableName(value = "oppo_sycm")
@Data
public class OppoSycm implements Serializable {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* id标识
*/
private Long sycmId;
/**
* 年份
*/
@Excel(name = "年份")
private Long year;
/**
* 月份
*/
@Excel(name = "月份")
private Long month;
/**
* 日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date date;
/**
* 平台id-1
*/
@Excel(name = "平台id-1")
private Long platformId;
/**
* 1 天猫
*/
@Excel(name = "1 天猫")
private String platform;
/**
* 取数平台:生意参谋
*/
@Excel(name = "取数平台:生意参谋")
private String dataPlatform;
/**
* 平台店铺
*/
@Excel(name = "平台店铺")
private String platformStore;
/**
* 商品/货品名称(【百补】洽洽焦糖/五香/山核桃味大包装瓜子500g*2袋恰恰葵花籽)
*/
@Excel(name = "商品/货品名称", readConverterExp = "【=百补】洽洽焦糖/五香/山核桃味大包装瓜子500g*2袋恰恰葵花籽")
private String prdName;
/**
* 支付买家数(范围-低)
*/
@Excel(name = "支付买家数(范围-低)")
private Long zfmjUnder;
/**
* 支付买家数(范围-高)
*/
@Excel(name = "支付买家数(范围-高)")
private Long zfmjPeak;
/**
* %交易增速(范围-低)
*/
@Excel(name = "%交易增速(范围-低)")
private Long jyzsUnder;
/**
* %交易增速(范围-高)
*/
@Excel(name = "%交易增速(范围-高)")
private Long jyzsPeak;
/**
* unique visitor(独立访客范围-低)
*/
@Excel(name = "unique visitor(独立访客范围-低)")
private Long uvUnder;
/**
* unique visitor(独立访客范围-高)
*/
@Excel(name = "unique visitor(独立访客范围-高)")
private Long uvPeak;
/**
* %流量增速(范围-低)
*/
@Excel(name = "%流量增速(范围-低)")
private Long llzsUnder;
/**
* %流量增速(范围-高)
*/
@Excel(name = "%流量增速(范围-高)")
private Long llzsPeak;
/**
* 支付买家数(范围-低)
*/
@TableField(exist = false)
private Long zfmjUnderTotal;
/**
* 支付买家数(范围-高)
*/
@TableField(exist = false)
private Long zfmjPeakTotal;
/**
* %交易增速(范围-低)
*/
@TableField(exist = false)
private Long jyzsUnderTotal;
/**
* %交易增速(范围-高)
*/
@TableField(exist = false)
private Long jyzsPeakTotal;
/**
* unique visitor(独立访客范围-低)
*/
@TableField(exist = false)
private Long uvUnderTotal;
/**
* unique visitor(独立访客范围-高)
*/
@TableField(exist = false)
private Long uvPeakTotal;
/**
* %流量增速(范围-低)
*/
@TableField(exist = false)
private Long llzsUnderTotal;
/**
* %流量增速(范围-高)
*/
@TableField(exist = false)
private Long llzsPeakTotal;
public void setSycmId(Long sycmId) {
this.sycmId = sycmId;
}
public Long getSycmId() {
return sycmId;
}
public void setYear(Long year) {
this.year = year;
}
public Long getYear() {
return year;
}
public void setMonth(Long month) {
this.month = month;
}
public Long getMonth() {
return month;
}
public void setDate(Date date) {
this.date = date;
}
public Date getDate() {
return date;
}
public void setPlatformId(Long platformId) {
this.platformId = platformId;
}
public Long getPlatformId() {
return platformId;
}
public void setPlatform(String platform) {
this.platform = platform;
}
public String getPlatform() {
return platform;
}
public void setDataPlatform(String dataPlatform) {
this.dataPlatform = dataPlatform;
}
public String getDataPlatform() {
return dataPlatform;
}
public void setPlatformStore(String platformStore) {
this.platformStore = platformStore;
}
public String getPlatformStore() {
return platformStore;
}
public void setPrdName(String prdName) {
this.prdName = prdName;
}
public String getPrdName() {
return prdName;
}
public void setZfmjUnder(Long zfmjUnder) {
this.zfmjUnder = zfmjUnder;
}
public Long getZfmjUnder() {
return zfmjUnder;
}
public void setZfmjPeak(Long zfmjPeak) {
this.zfmjPeak = zfmjPeak;
}
public Long getZfmjPeak() {
return zfmjPeak;
}
public void setJyzsUnder(Long jyzsUnder) {
this.jyzsUnder = jyzsUnder;
}
public Long getJyzsUnder() {
return jyzsUnder;
}
public void setJyzsPeak(Long jyzsPeak) {
this.jyzsPeak = jyzsPeak;
}
public Long getJyzsPeak() {
return jyzsPeak;
}
public void setUvUnder(Long uvUnder) {
this.uvUnder = uvUnder;
}
public Long getUvUnder() {
return uvUnder;
}
public void setUvPeak(Long uvPeak) {
this.uvPeak = uvPeak;
}
public Long getUvPeak() {
return uvPeak;
}
public void setLlzsUnder(Long llzsUnder) {
this.llzsUnder = llzsUnder;
}
public Long getLlzsUnder() {
return llzsUnder;
}
public void setLlzsPeak(Long llzsPeak) {
this.llzsPeak = llzsPeak;
}
public Long getLlzsPeak() {
return llzsPeak;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("sycmId", getSycmId())
.append("year", getYear())
.append("month", getMonth())
.append("date", getDate())
.append("platformId", getPlatformId())
.append("platform", getPlatform())
.append("dataPlatform", getDataPlatform())
.append("platformStore", getPlatformStore())
.append("prdName", getPrdName())
.append("zfmjUnder", getZfmjUnder())
.append("zfmjPeak", getZfmjPeak())
.append("jyzsUnder", getJyzsUnder())
.append("jyzsPeak", getJyzsPeak())
.append("uvUnder", getUvUnder())
.append("uvPeak", getUvPeak())
.append("llzsUnder", getLlzsUnder())
.append("llzsPeak", getLlzsPeak())
.toString();
}
}
package com.link.bi.domain.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.link.bi.domain.entity.EcBaStoreDailyData;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* 王小卤后台数据Mapper接口
*
* @author admin
* @date 2024-12-19
*/
@Repository
@Mapper
public interface EcBaStoreDailyDataMapper extends BaseMapper<EcBaStoreDailyData> {
}
package com.link.bi.domain.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.link.bi.domain.entity.OppoCmm;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* 电商竞品-蝉妈妈数据(抖音后台)Mapper接口
*
* @author admin
* @date 2024-12-19
*/
@Repository
@Mapper
public interface OppoCmmMapper extends BaseMapper<OppoCmm> {
}
package com.link.bi.domain.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.link.bi.domain.entity.OppoSycm;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* 电商竞品-生意参谋数据(天猫)Mapper接口
*
* @author admin
* @date 2024-12-20
*/
@Repository
@Mapper
public interface OppoSycmMapper extends BaseMapper<OppoSycm> {
}
package com.link.bi.domain.wq;
import lombok.Data;
import java.util.Date;
/**
* @author : lvbencai
* @date : 2024-12-20 10::41
* @describe : 竞品蝉妈妈查询参数
*/
@Data
public class OppoCmmWq {
// 入参 时间开始时间
private Date startDate;
// 入参 时间结束时间
private Date endDate;
}
package com.link.bi.domain.wq;
import lombok.Data;
import java.util.Date;
/**
* @author : lvbencai
* @date : 2024-12-20 10::41
* @describe : 竞品生意参谋查询参数
*/
@Data
public class OppoSycmWq {
// 入参 时间开始时间
private Date startDate;
// 入参 时间结束时间
private Date endDate;
}
package com.link.bi.pojo.request;
import lombok.Data;
import java.util.Date;
@Data
public class OppoCmmDto {
// 入参 时间开始时间
private Date startDate;
// 入参 时间结束时间
private Date endDate;
}
package com.link.bi.pojo.request;
import lombok.Data;
import java.util.Date;
@Data
public class OppoSycmDto {
// 入参 时间开始时间
private Date startDate;
// 入参 时间结束时间
private Date endDate;
}
package com.link.bi.pojo.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author lvbencai
* @date 2022/12/20 10:18
*/
@Data
public class OppoCmmVO {
// 日期
@JsonFormat(pattern = "yyyy-MM-dd")
private Date date;
// 店铺名
private String name;
// 直播场次
// private String zbcc;
// 销售额
private BigDecimal saleSumTotal;
// 观看人次
private Long gkrcNumTotal;
}
package com.link.bi.pojo.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* @author lvbencai
* @date 2022/12/20 10:18
*/
@Data
public class OppoSycmVO {
// 日期
@JsonFormat(pattern = "yyyy-MM-dd")
private Date date;
/**
* 平台店铺
*/
private String platformStore;
/**
* 支付买家数(范围-低)
*/
private Long zfmjUnderTotal;
/**
* 支付买家数(范围-高)
*/
private Long zfmjPeakTotal;
/**
* %交易增速(范围-低)
*/
private Long jyzsUnderTotal;
/**
* %交易增速(范围-高)
*/
private Long jyzsPeakTotal;
/**
* unique visitor(独立访客范围-低)
*/
private Long uvUnderTotal;
/**
* unique visitor(独立访客范围-高)
*/
private Long uvPeakTotal;
/**
* %流量增速(范围-低)
*/
private Long llzsUnderTotal;
/**
* %流量增速(范围-高)
*/
private Long llzsPeakTotal;
}
package com.link.bi.service;
/**
* 王小卤后台数据Service接口
*
* @author admin
* @date 2024-12-19
*/
public interface IEcBaStoreDailyDataService {
}
package com.link.bi.service;
import com.link.bi.pojo.request.OppoCmmDto;
import com.link.bi.pojo.response.OppoCmmVO;
import java.util.List;
/**
* 电商竞品-蝉妈妈数据(抖音后台)Service接口
*
* @author admin
* @date 2024-12-19
*/
public interface IOppoCmmService {
List<List<OppoCmmVO>> selectOppoCmmZbjBiList(OppoCmmDto oppoCmmDto);
}
package com.link.bi.service;
import com.link.bi.pojo.request.OppoSycmDto;
import com.link.bi.pojo.response.OppoSycmVO;
import java.util.List;
/**
* 电商竞品-生意参谋数据(天猫)Service接口
*
* @author admin
* @date 2024-12-20
*/
public interface IOppoSycmService {
List<List<OppoSycmVO>> selectOppoSycmStoreBi(OppoSycmDto oppoSycmDto);
}
package com.link.bi.service.impl;
import com.link.bi.service.IEcBaStoreDailyDataService;
import org.springframework.stereotype.Service;
/**
* 王小卤后台数据Service业务层处理
*
* @author admin
* @date 2024-12-19
*/
@Service
public class EcBaStoreDailyDataServiceImpl implements IEcBaStoreDailyDataService {
}
package com.link.bi.service.impl;
import com.link.bi.domain.dao.IOppoCmmDao;
import com.link.bi.domain.entity.OppoCmm;
import com.link.bi.domain.wq.OppoCmmWq;
import com.link.bi.pojo.request.OppoCmmDto;
import com.link.bi.pojo.response.OppoCmmVO;
import com.link.bi.service.IOppoCmmService;
import com.sfa.common.core.utils.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* 电商竞品-蝉妈妈数据(抖音后台)Service业务层处理
*
* @author admin
* @date 2024-12-19
*/
@Service
public class OppoCmmServiceImpl implements IOppoCmmService {
@Autowired
IOppoCmmDao oppoCmmDao;
@Override
public List<List<OppoCmmVO>> selectOppoCmmZbjBiList(OppoCmmDto oppoCmmDto) {
// 设置默认入参时间,倒数30天
// Optional判断入参为空设置默认值
Date startDate = Optional.ofNullable(oppoCmmDto.getStartDate())
.orElse(DateUtils.addDays(DateUtils.dateStart(new Date()), -31));
Date endDate = Optional.ofNullable(oppoCmmDto.getEndDate()).orElse(
DateUtils.addDays(DateUtils.dateStart(new Date()), -1));
oppoCmmDto.setStartDate(startDate);
oppoCmmDto.setEndDate(endDate);
OppoCmmWq wq = new OppoCmmWq();
BeanUtils.copyProperties(oppoCmmDto, wq);
List<OppoCmm> oppoCmms = oppoCmmDao.selectList(wq);
List<List<OppoCmmVO>> vos = new ArrayList<>();
// 按照name分成不同的list
Map<String, List<OppoCmm>> map = oppoCmms.stream()
.collect(Collectors.groupingBy(OppoCmm::getName));
map.forEach((name, objects) -> {
System.out.println("Name: " + name);
List<OppoCmmVO> oppoCmmVOS = new ArrayList<>();
objects.forEach(obj -> {
OppoCmmVO vo = new OppoCmmVO();
BeanUtils.copyProperties(obj, vo);
vo.setSaleSumTotal(vo.getSaleSumTotal().setScale(2));
oppoCmmVOS.add(vo);
});
vos.add(oppoCmmVOS);
});
return vos;
}
}
package com.link.bi.service.impl;
import com.link.bi.domain.dao.IOppoSycmDao;
import com.link.bi.domain.entity.OppoSycm;
import com.link.bi.domain.wq.OppoSycmWq;
import com.link.bi.pojo.request.OppoSycmDto;
import com.link.bi.pojo.response.OppoSycmVO;
import com.link.bi.service.IOppoSycmService;
import com.sfa.common.core.utils.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* 电商竞品-生意参谋数据(天猫)Service业务层处理
*
* @author admin
* @date 2024-12-20
*/
@Service
public class OppoSycmServiceImpl implements IOppoSycmService
{
@Autowired
IOppoSycmDao sycmDao;
@Override
public List<List<OppoSycmVO>> selectOppoSycmStoreBi(OppoSycmDto oppoSycmDto) {
// 设置默认入参时间,倒数30天
// Optional判断入参为空设置默认值
Date startDate = Optional.ofNullable(oppoSycmDto.getStartDate())
.orElse(DateUtils.addDays(DateUtils.dateStart(new Date()), -31));
Date endDate = Optional.ofNullable(oppoSycmDto.getEndDate()).orElse(
DateUtils.addDays(DateUtils.dateStart(new Date()), -1));
oppoSycmDto.setStartDate(startDate);
oppoSycmDto.setEndDate(endDate);
OppoSycmWq wq = new OppoSycmWq();
BeanUtils.copyProperties(oppoSycmDto, wq);
List<OppoSycm> oppoSycms = sycmDao.selectList(wq);
List<List<OppoSycmVO>> lists = new ArrayList<>();
// 按照name分成不同的list
Map<String, List<OppoSycm>> map = oppoSycms.stream()
.collect(Collectors.groupingBy(OppoSycm::getPlatformStore));
map.forEach((name, objects) -> {
// System.out.println("Name: " + name);
List<OppoSycmVO> oppoCmmVOS = new ArrayList<>();
objects.forEach(obj -> {
OppoSycmVO vo = new OppoSycmVO();
BeanUtils.copyProperties(obj, vo);
oppoCmmVOS.add(vo);
});
lists.add(oppoCmmVOS);
});
return lists;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论