Commit 44b5adb5 authored by maliang's avatar maliang

权限控制

parent eccf4d85
......@@ -57,6 +57,8 @@ public interface AdvertDao {
int insertAdvertDataCount(List<AdvertiserData> list);
int insertAdvertiserDataCount(List<AdvertiserData> list);
int insertAdvertList(List<AdvertiserData> list);
int insertAdvertiserData(List<AdvertiserData> list);
......@@ -86,4 +88,7 @@ public interface AdvertDao {
List<AdvertiserData> getAdvertiserDataThirtyIncome();
int insertAdvertiserDataThirtyIncome(List<AdvertiserData> list);
//把分时曝光和点击插入
int insertAdvertDataMinute(List<AdvertiserData> list);
}
......@@ -145,8 +145,64 @@ public class AdvertiserServiceImpl implements AdvertiserService {
//从redis取数据存到mysql
public void syncRedisMysql(){
//从redis把所有广告商的总曝光和总点击取出来,存到advertiser_data_count
//查所有的广告商id
List<AdvertiserData> advertiserData = advertDao.getAdvertiserData();
//从redis查点击和曝光
for (AdvertiserData data : advertiserData) {
getRedisExCli(data);
}
advertDao.insertAdvertiserDataCount(advertiserData);
//从redis把所有广告商的分时广告查出来,存到advertiser_data_minutes
advertiserData = advertDao.getAdvertiserData();
for (AdvertiserData data : advertiserData) {
}
}
public void getRedisExCli(AdvertiserData advertiserData){
String key="redisAdvertData:"+advertiserData.getAdvertiserId();
Integer exposure=JedisHelper.hget(Integer.class,key,"exposure");
Integer click=JedisHelper.hget(Integer.class,key,"click");
advertiserData.setExposure(exposure);
advertiserData.setClick(click);
}
//根据广告商id,从redis把该广告商下面的所有广告的曝光拿到
public List<AdvertiserData> getExFromRedis(AdvertiserData advertiserData){
String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String exposureKey="redisAdvertDataDayExposure:"+date+":"+advertiserData.getAdvertiserId();
Map<String, Integer> exposureMap = JedisHelper.hgetAll(Integer.class, exposureKey);
List<String> minutesCodeIdExposure = mapToList(exposureMap);
List<AdvertiserData> list=new ArrayList<>();
for (String s : minutesCodeIdExposure) {
AdvertiserData data = new AdvertiserData();
data.setReportDate(date);
data.setAdvertiserId(advertiserData.getAdvertiserId());
data.setAdvertiserName(advertiserData.getAdvertiserName());
data.setMinutes(s.split(",")[0]);
data.setCodeId(s.split(",")[1]);
data.setExposure(Integer.valueOf(s.split(",")[2]));
}
return list;
}
//根据广告商id,从redis把该广告商下面的所有点击拿到
public List<AdvertiserData> getCliFromRedis(AdvertiserData advertiserData){
String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String clickKey="redisAdvertDataDayClick:"+date+":"+advertiserData.getAdvertiserId();
Map<String, Integer> clickMap = JedisHelper.hgetAll(Integer.class, clickKey);
List<String> minutesCodeIdClick = mapToList(clickMap);
List<AdvertiserData> list=new ArrayList<>();
for (String s : minutesCodeIdClick) {
AdvertiserData data = new AdvertiserData();
data.setReportDate(date);
data.setAdvertiserId(advertiserData.getAdvertiserId());
data.setAdvertiserName(advertiserData.getAdvertiserName());
data.setMinutes(s.split(",")[0]);
data.setCodeId(s.split(",")[1]);
data.setClick(Integer.valueOf(s.split(",")[2]));
}
return list;
}
private JSONObject getRedisChartInfo(Integer advertiserId,String advertId){
......
......@@ -109,4 +109,47 @@
advertiser_name = VALUES(advertiser_name),
income_thirty = VALUES(income_thirty)
</insert>
<insert id="insertAdvertiserDataCount" parameterType="java.util.List">
INSERT INTO advertiser_data_count(advertiser_id, advertiser_name,exposure,click)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.advertiserId},#{item.advertiserName},#{item.exposure},#{item.click})
</foreach>
ON DUPLICATE KEY UPDATE
advertiser_id = VALUES(advertiser_id),
advertiser_name = VALUES(advertiser_name),
exposure = VALUES(exposure),
click = VALUES(click)
</insert>
<insert id="insertAdvertDataMinuteEx" parameterType="java.util.List">
INSERT INTO advertiser_data_minutes(report_date,advertiser_id, advertiser_name,code_id,minutes,exposure)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.reportDate},#{item.advertiserId},#{item.advertiserName},#{item.codeId},#{item.minutes},#{item.exposure})
</foreach>
ON DUPLICATE KEY UPDATE
report_date = VALUES(report_date),
advertiser_id = VALUES(advertiser_id),
advertiser_name = VALUES(advertiser_name),
code_id = VALUES(code_id),
minutes = VALUES(minutes),
exposure = VALUES(exposure)
</insert>
<insert id="insertAdvertDataMinuteCl" parameterType="java.util.List">
INSERT INTO advertiser_data_minutes(report_date,advertiser_id, advertiser_name,code_id,minutes,click)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.reportDate},#{item.advertiserId},#{item.advertiserName},#{item.codeId},#{item.minutes},#{item.click})
</foreach>
ON DUPLICATE KEY UPDATE
report_date = VALUES(report_date),
advertiser_id = VALUES(advertiser_id),
advertiser_name = VALUES(advertiser_name),
code_id = VALUES(code_id),
minutes = VALUES(minutes),
click = VALUES(click)
</insert>
</mapper>
\ No newline at end of file
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