BannerService.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. package com.cloudcross.ssp.service.impl;
  2. import java.util.Date;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import javax.servlet.http.HttpServletRequest;
  7. import org.apache.log4j.Logger;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import com.cloudcross.ssp.model.Account;
  11. import com.cloudcross.ssp.model.Banner;
  12. import com.cloudcross.ssp.model.BannerTemplate;
  13. import com.cloudcross.ssp.model.Log;
  14. import com.cloudcross.ssp.model.Zone;
  15. import com.cloudcross.ssp.service.IBannerService;
  16. import com.cloudcross.ssp.service.ILogService;
  17. import com.cloudcross.ssp.base.dao.GenericIBatisDao;
  18. import com.cloudcross.ssp.common.utils.Common;
  19. import com.cloudcross.ssp.common.utils.MapBuilder;
  20. import com.cloudcross.ssp.common.utils.Pager;
  21. import com.cloudcross.ssp.common.utils.SqlHelper;
  22. @Service
  23. public class BannerService implements IBannerService {
  24. private static final Logger LOG = Logger.getLogger(BannerService.class);
  25. @Autowired
  26. private GenericIBatisDao myBatisDao;
  27. @Autowired
  28. ILogService logService;
  29. @Override
  30. public Banner findById(Long id) {
  31. return myBatisDao.get("bannerSqlMapper.findByIdAdvertiser", id);
  32. }
  33. public Banner findByIdOperator(Long id) {
  34. // TODO Auto-generated method stub
  35. return myBatisDao.get("bannerSqlMapper.findByIdOperator",id);
  36. }
  37. @Override
  38. public int countByParams(Map<String, Object> paramMap) {
  39. //这里的搜索只是对名称进行搜索
  40. String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
  41. paramMap.put("key", paramMap.get("searchKey"));
  42. paramMap.put("value", searchValue);
  43. return myBatisDao.get("bannerSqlMapper.countByParams", paramMap);
  44. }
  45. @Override
  46. public List<Banner> findByParams(Map<String, Object> paramMap, Pager pager) {
  47. String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
  48. paramMap.put("key", paramMap.get("searchKey"));
  49. paramMap.put("value", searchValue);
  50. paramMap.put("pager", pager);
  51. LOG.debug("aaaaaaaaaaaa:");
  52. return myBatisDao.getList("bannerSqlMapper.findByParams", paramMap);
  53. }
  54. //新增创意,只新增一条创意记录 djp
  55. @Override
  56. public boolean add(Banner t) {
  57. Date date = new Date();
  58. t.setUpdated(date);
  59. t.setSupdated(date);
  60. myBatisDao.save("bannerSqlMapper.addBanner", t);
  61. return true;
  62. }
  63. //编辑创意 djp
  64. @Override
  65. public boolean edit(Banner t) {
  66. Date date = new Date();
  67. t.setUpdated(date);
  68. t.setSupdated(date);
  69. t.getBannerTemplate().setUpdated(date);
  70. myBatisDao.save("bannerSqlMapper.editBanner", t);
  71. return true;
  72. }
  73. //更新创意 djp
  74. @Override
  75. public boolean updata(Banner t) {
  76. Date date = new Date();
  77. t.setUpdated(date);
  78. t.setSupdated(date);
  79. t.getBannerTemplate().setUpdated(date);
  80. myBatisDao.save("bannerSqlMapper.updataBanner", t);
  81. Long id[]={t.getId()};
  82. myBatisDao.save("bannerSqlMapper.updataOperatorBanner", MapBuilder.create(HashMap.class)
  83. .add("idList", id)
  84. .add("supdated", date)
  85. .map());
  86. return true;
  87. }
  88. @Override
  89. public boolean edit(Map<String, Object> paramMap) {
  90. // myBatisDao.save("bannerSqlMapper.editBanner", t);
  91. return true;
  92. }
  93. //批量改变状态 djp
  94. @Override
  95. public boolean updateStatus(List<Long> idList, int status) {
  96. Date date = new Date();
  97. //更新创意与创意模板状态
  98. myBatisDao.save("bannerSqlMapper.updateBannerStatus",
  99. MapBuilder.create(HashMap.class)
  100. .add("status", status)
  101. .add("idList", idList)
  102. .add("updated", date)
  103. .add("supdated", date)
  104. .map());
  105. /**下面为创意物理删除,暂先保留
  106. //删除选择创意
  107. myBatisDao.save("bannerSqlMapper.deleteBanner",
  108. MapBuilder.create(HashMap.class)
  109. .add("idList", idList)
  110. .map());
  111. */
  112. myBatisDao.save("bannerSqlMapper.updataOperatorBanner", MapBuilder.create(HashMap.class)
  113. .add("idList", idList)
  114. .add("supdated", date)
  115. .map());
  116. return true;
  117. }
  118. public boolean updateStatusOperator(List<Long> bannerIdList, int checked) {
  119. // TODO Auto-generated method stub
  120. myBatisDao.save("bannerSqlMapper.updateBannerStatusOperator",
  121. MapBuilder.create(HashMap.class)
  122. .add("bannerIdList", bannerIdList)
  123. .add("updated", new Date())
  124. .add("checked", checked).map());
  125. return true;
  126. }
  127. @Override
  128. public int countByAdGroupId(Long adGroupId) {
  129. return myBatisDao.get("bannerSqlMapper.countByAdGroupId", adGroupId);
  130. }
  131. @Override
  132. public boolean cloneBanner(Map<String, Object> paramMap) {
  133. // 查询模板
  134. Long bannerTemplateId = (Long) paramMap.get("bannerTemplateId");
  135. BannerTemplate bannerTemplate = myBatisDao.get("bannerTemplateSqlMapper.findById",
  136. bannerTemplateId);
  137. bannerTemplate.setAdvertiserId((Long)paramMap.get("advertiserId"));
  138. bannerTemplate.setAgentId((Long)paramMap.get("agentId"));
  139. myBatisDao.save("bannerTemplateSqlMapper.updataIds", bannerTemplate);
  140. Banner banner = new Banner();
  141. //设置新建创意信息
  142. banner.setBannerTemplateId((Long)paramMap.get("bannerTemplateId"));
  143. banner.setAdGroupId((Long) paramMap.get("adGroupId"));
  144. banner.setCampaignId((Long) paramMap.get("campaignId"));
  145. banner.setOrderId((Long) paramMap.get("orderId"));
  146. banner.setVisitAddress("visitAddress");
  147. banner.setClickAddress("clickAddress");
  148. banner.setImpressionAddress("impressionAddress");
  149. banner.setMemo("");
  150. banner.setChecked(1);
  151. banner.setStatus(bannerTemplate.getStatus());
  152. Date date = new Date();
  153. banner.setUpdated(date);
  154. banner.setSupdated(date);
  155. banner.setBannerTemplate(bannerTemplate);
  156. LOG.debug("banner====qqq=="+banner);
  157. myBatisDao.save("advertiser.bannerSqlMapper.addBanner", banner);
  158. /**
  159. * 创意添加成功之后要增加日志记录
  160. */
  161. HttpServletRequest request = (HttpServletRequest)paramMap.get("request");
  162. Account account = (Account)paramMap.get("account");
  163. Log log = new Log();
  164. //对应模块,这里应该是投放模块
  165. log.setModule("Ad");
  166. //对应的表名,这里是t_adgroup
  167. log.setTableName("t_banner");
  168. //对应的投放id
  169. log.setRecordId(banner.getId());
  170. //对应的操作类型
  171. log.setActionType("新增");
  172. //变更详情
  173. log.setAction("新增了创意:" + bannerTemplate.getName());
  174. log.setActionTime("100");
  175. log.setAccountId(new Long(account.getId()));
  176. log.setUserIp(Common.toIpAddr(request));
  177. log.setAccountName(account.getAccountName());
  178. logService.add(log);
  179. return true;
  180. }
  181. //根据adGroupId更新banner的supdated时间
  182. public boolean updateSupdated(List<Long> adGroupIdList, Date date) {
  183. myBatisDao.save("bannerSqlMapper.updateBannerSupdated",
  184. MapBuilder.create(HashMap.class)
  185. .add("adGroupIdList", adGroupIdList)
  186. .add("modifyDate",date ).map());
  187. return true;
  188. }
  189. public boolean updateSupdatedByOrderId(List<Long> orderIdList,Date date) {
  190. myBatisDao.save("bannerSqlMapper.updateBannerSupdatedByOrderId",
  191. MapBuilder.create(HashMap.class)
  192. .add("orderIdList", orderIdList)
  193. .add("modifyDate", date).map());
  194. return true;
  195. }
  196. @Override
  197. public boolean updateSupdatedByCampaignId(List<Long> campaignIdList, Date date) {
  198. myBatisDao.save("bannerSqlMapper.updateBannerSupdatedByCampaignId",
  199. MapBuilder.create(HashMap.class)
  200. .add("campaignIdList", campaignIdList)
  201. .add("modifyDate", date).map());
  202. return true;
  203. }
  204. public boolean updateStatusByOrderId(List<Long> orderIdList, int status) {
  205. myBatisDao.save("bannerSqlMapper.updateStatusByOrderId",
  206. MapBuilder.create(HashMap.class)
  207. .add("orderIdList", orderIdList)
  208. .add("modifyDate", new Date())
  209. .add("status", status).map());
  210. return true;
  211. }
  212. @Override
  213. public boolean updateStatusByCampaignId(List<Long> campaignIdList,int status) {
  214. myBatisDao.save("bannerSqlMapper.updateStatusByOrderId",
  215. MapBuilder.create(HashMap.class)
  216. .add("campaignIdList", campaignIdList)
  217. .add("modifyDate", new Date())
  218. .add("status", status).map());
  219. return true;
  220. }
  221. @Override
  222. public boolean updateStatusByAdGroupId(List<Long> adGroupIdList, int status) {
  223. myBatisDao.save("bannerSqlMapper.updateStatusByAdGroupId",
  224. MapBuilder.create(HashMap.class)
  225. .add("adGroupIdList", adGroupIdList)
  226. .add("modifyDate", new Date())
  227. .add("status", status).map());
  228. return true;
  229. }
  230. @Override
  231. public int countByParams1(Map<String, Object> paramMap) {
  232. return myBatisDao.get("bannerSqlMapper.countByParams1", paramMap);
  233. }
  234. @Override
  235. public List<Banner> findByParams1(Map<String, Object> paramMap, Pager pager) {
  236. paramMap.put("pager", pager);
  237. return myBatisDao.getList("bannerSqlMapper.findByParams1",
  238. paramMap);
  239. }
  240. @Override
  241. public List<Banner> findByParams1(Map<String, Object> paramMap) {
  242. return myBatisDao.getList("bannerSqlMapper.findByParams2", paramMap);
  243. }
  244. @Override
  245. public boolean updateStatus1(List<Long> idList, int status) {
  246. Date date = new Date();
  247. myBatisDao.save("bannerSqlMapper.updateBannerStatus",MapBuilder.create(HashMap.class)
  248. .add("status", status)
  249. .add("idList", idList)
  250. .add("updated", date)
  251. .add("supdated", date)
  252. .map());
  253. myBatisDao.save("bannerSqlMapper.updateOperatorBannerTime",MapBuilder.create(HashMap.class)
  254. .add("idList", idList)
  255. .add("supdated", new Date())
  256. .map());
  257. return true;
  258. }
  259. public int countByOperatorIdandParams(Long operatorId,Map<String, Object> paramMap) {
  260. // TODO Auto-generated method stub
  261. LOG.info("传入的参数:" + operatorId);
  262. List<Zone> zoneList = myBatisDao.getList("zoneSqlMapper.findByOperatorId", operatorId);
  263. paramMap.put("zoneList", zoneList);
  264. if(zoneList.size()==0){
  265. return 0;
  266. }
  267. if(paramMap.get("searchValue")!=null){
  268. paramMap.put("searchValue", "%" + paramMap.get("searchValue") + "%");
  269. }
  270. if(paramMap.get("operatorChecked")!=null){
  271. paramMap.put("operatorChecked", paramMap.get("operatorChecked"));
  272. }
  273. System.out.println("bbb:" + paramMap.get("checked"));
  274. int bannerNumber = myBatisDao.get("bannerSqlMapper.countByOperator", paramMap);
  275. LOG.info("计算素材的个数:" + bannerNumber);
  276. return bannerNumber;
  277. }
  278. public List<Banner> findByOperatorIdandParams(Long operatorId,Map<String, Object> paramMap, Pager pager) {
  279. // TODO Auto-generated method stub
  280. LOG.info("传入的参数:" + operatorId);
  281. List<Zone> zoneList = myBatisDao.getList("zoneSqlMapper.findByOperatorId", operatorId);
  282. paramMap.put("zoneList", zoneList);
  283. paramMap.put("pager", pager);
  284. if(zoneList.size()==0){
  285. return null;
  286. }
  287. System.out.println("bbb1:" + paramMap.get("checked"));
  288. List<Banner> bannerList = myBatisDao.getList("bannerSqlMapper.findByOpertor", paramMap);
  289. LOG.info("素材列表:" + bannerList);
  290. return bannerList;
  291. }
  292. public boolean addOperatorBanner(Long bannerId,int status,Long operatorId) {
  293. myBatisDao.save("bannerSqlMapper.addOperatorBanner",
  294. MapBuilder.create(HashMap.class)
  295. .add("operatorId", operatorId)
  296. .add("bannerId",bannerId)
  297. .add("supdated", new Date())
  298. .add("operatorChecked", status).map());
  299. return true;
  300. }
  301. public boolean updataOperatorBanner(Long bannerId,int status,Long operatorId) {
  302. myBatisDao.save("bannerSqlMapper.updateOperatorBanner",
  303. MapBuilder.create(HashMap.class)
  304. .add("operatorId", operatorId)
  305. .add("bannerId",bannerId)
  306. .add("supdated", new Date())
  307. .add("operatorChecked", status).map());
  308. return true;
  309. }
  310. }