|
@@ -47,7 +47,7 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
- * @description:数据总览-快手
|
|
|
+ * @description:数据总览-快手-运营经理
|
|
|
*
|
|
|
* @param mediaType 媒体类型 1-头条 2-快手
|
|
|
* @param type 查询类型 1-汇总 2-运营个人
|
|
@@ -125,6 +125,52 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @description: 数据总览-快手-运营个人
|
|
|
+ *
|
|
|
+ * @param mediaType 媒体类型 1-头条 2-快手
|
|
|
+ * @param startTime
|
|
|
+ * @param endTime
|
|
|
+ * @param userId
|
|
|
+ * @return: org.jeecg.common.api.vo.Result
|
|
|
+ * @author: zianY
|
|
|
+ * @time: 2022/3/3
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Result kuaiShousumDataPersonal(String mediaType,String startTime, String endTime, String userId) {
|
|
|
+
|
|
|
+ long stratDate = DateUtils.getDateInteger(startTime);
|
|
|
+ long endDate = DateUtils.getDateInteger(endTime);
|
|
|
+ Set<String> userSet = new HashSet<String>(){{
|
|
|
+ add(userId);
|
|
|
+ }};
|
|
|
+
|
|
|
+ //头条
|
|
|
+ if (StringUtils.equals(mediaType,"1")){
|
|
|
+ return Result.successMsg("暂无头条数据。",null);
|
|
|
+ }
|
|
|
+ //快手
|
|
|
+ if (StringUtils.equals(mediaType,"2")){
|
|
|
+ //查询一天数据时 查询时报
|
|
|
+ if (stratDate == endDate){
|
|
|
+ Map resultMap = new HashMap<>();
|
|
|
+ //时报
|
|
|
+ List<Map> todayList = materialStareMapper.getKuaiShouCostHourlyByUserIdList(stratDate, endDate, userSet);
|
|
|
+ long time = DateUtils.getDateInteger(DateUtils.addDayParse(Long.toString(endDate), -1));
|
|
|
+ List<Map> yesterdayList = materialStareMapper.getKuaiShouCostHourlyByUserIdList(time,time , userSet);
|
|
|
+ resultMap.put("todayList",todayList);
|
|
|
+ resultMap.put("yesterdayList",yesterdayList);
|
|
|
+ return Result.successMsg("查询运营个人-时报-汇总。",resultMap);
|
|
|
+ }
|
|
|
+ //多天 数据
|
|
|
+ // 日报
|
|
|
+ List<Map> dailyList = materialStareMapper.getKuaiShouCostDailyByUserIdList(stratDate, endDate, userSet);
|
|
|
+ return Result.successMsg("查询运营个人-日报-汇总成功。",dailyList);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
*
|
|
@@ -183,6 +229,89 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
+ * @description: 运营个人数据
|
|
|
+ *
|
|
|
+ * @param mediaType 媒体类型 1-头条 2-快手
|
|
|
+ * @param startTime
|
|
|
+ * @param endTime
|
|
|
+ * @param userId
|
|
|
+ * @return: org.jeecg.common.api.vo.Result<com.alibaba.fastjson.JSONObject>
|
|
|
+ * @author: zianY
|
|
|
+ * @time: 2022/3/3
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Result kuaiShouOperateDateTotalPersonal(String mediaType, String startTime, String endTime, String userId) {
|
|
|
+ Map resultMap = new HashMap();
|
|
|
+ DecimalFormat decimalFormat = new DecimalFormat("0.00%");
|
|
|
+
|
|
|
+ long stratDate = DateUtils.getDateInteger(startTime);
|
|
|
+ long endDate = DateUtils.getDateInteger(endTime);
|
|
|
+
|
|
|
+ try {
|
|
|
+ Set<String> userSet = new HashSet<String>(){{
|
|
|
+ add(userId);
|
|
|
+ }};
|
|
|
+
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
|
|
+ // ==>> 20220202
|
|
|
+ String now = sdf.format(new Date());
|
|
|
+ long nowDate = Long.valueOf(now);
|
|
|
+ int nowHour = DateUtils.getNowHour();
|
|
|
+ //昨天时间
|
|
|
+ long time = DateUtils.getDateInteger(DateUtils.addDayParse(now, -1));
|
|
|
+
|
|
|
+ //当天总消耗
|
|
|
+ JSONObject jsonObjectNow = materialStareMapper.getKuaiShouTotalCost(nowDate,nowDate,nowHour,userSet);
|
|
|
+ resultMap.put("todayCost",jsonObjectNow.getString("totalCost"));
|
|
|
+ //昨天同时段总消耗
|
|
|
+ JSONObject jsonObjectYesterday = materialStareMapper.getKuaiShouTotalCost(time,time,nowHour,userSet);
|
|
|
+
|
|
|
+ //今日同比 = (今天总消耗 - 昨天总消耗 ) / 昨天总消耗
|
|
|
+ Double d = (Double.valueOf(jsonObjectNow.getString("totalCost")) - Double.valueOf(jsonObjectYesterday.getString("totalCost"))) / Double.valueOf(jsonObjectYesterday.getString("totalCost"));
|
|
|
+ resultMap.put("todayCompare",decimalFormat.format(d));
|
|
|
+
|
|
|
+ //所选时段消耗
|
|
|
+ JSONObject timeNowCost = materialStareMapper.getKuaiShouTotalCostDaily(stratDate,endDate,userSet);
|
|
|
+ resultMap.put("timeCost",timeNowCost.getString("totalCost"));
|
|
|
+ //上阶段时间
|
|
|
+ Map<String,String> lastTime = DateUtils.getStartEndTime(startTime,endTime);
|
|
|
+ long lastTimeStart = Long.valueOf(DateUtils.getDateInteger(lastTime.get("lastTimeStart")));
|
|
|
+ long lastTimeEnd = Long.valueOf(DateUtils.getDateInteger(lastTime.get("lastTimeEnd")));
|
|
|
+
|
|
|
+ //上阶段消耗
|
|
|
+ JSONObject timeLastCost = materialStareMapper.getKuaiShouTotalCostDaily(lastTimeStart,lastTimeEnd,userSet);
|
|
|
+ //同比 = (当前总消耗 - 上阶段总消耗 ) / 当前总消耗
|
|
|
+ Double timeCompare = (Double.valueOf(timeNowCost.getString("totalCost")) - Double.valueOf(timeLastCost.getString("totalCost"))) / Double.valueOf(timeNowCost.getString("totalCost"));
|
|
|
+ resultMap.put("timeCompare",decimalFormat.format(timeCompare));
|
|
|
+
|
|
|
+ //当前月份的框返 和 激励
|
|
|
+ // 当前月份第一天
|
|
|
+ long monthFirstDay = Long.valueOf(DateUtils.getFirstDayByMonth());
|
|
|
+ //框返 激励
|
|
|
+ JSONObject nowMonthCost = materialStareMapper.getKuaiShouAccountCharged(monthFirstDay,nowDate,userSet);
|
|
|
+ resultMap.put("directCharged",nowMonthCost.getString("directCharged"));//框返
|
|
|
+ resultMap.put("contractCharged",nowMonthCost.getString("contractCharged"));//激励
|
|
|
+
|
|
|
+ //公司 组内排名
|
|
|
+ //用户所属公司id
|
|
|
+ String companyId = materialStareMapper.getUserCompanyByUserId(userId);
|
|
|
+ //组内排名
|
|
|
+ List<JSONObject> groupRankList = materialStareMapper.getKuaiShouPersonalGroupRank(monthFirstDay,nowDate,companyId);
|
|
|
+ resultMap.put("userRankTotalNum",groupRankList.size());//排名总数
|
|
|
+ for (JSONObject group : groupRankList) {
|
|
|
+ if (group.getString("user_id").equals(userId)){
|
|
|
+ resultMap.put("userIdRank",group.getString("serialNumber"));//排名
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return Result.successMsg("查询运营个人数据成功",resultMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
* @description: 运营数据详情
|
|
|
*
|
|
|
* @param pageNum
|