zoukankan      html  css  js  c++  java
  • 单独管理image

    NewsServiceimpl

    @Override
    	public int addWithImage(KumiaoNewsDO kumiaoNewsDO, String pcImageUrl, String mobileImageUrl) {
    		this.kumiaoNewsMapper.insert(kumiaoNewsDO);
    		if (kumiaoNewsDO.getId() <= 0L) {
    			return -1; // failed
    		}
    		if (pcImageUrl != null) {
    			KumiaoResourceDO pcKumiaoResourceDO = generateKumiaoResourceDO(pcImageUrl, "pc", kumiaoNewsDO);
    			this.kumiaoResourceService.add(pcKumiaoResourceDO);
    
    		}
    		if (mobileImageUrl != null) {
    			KumiaoResourceDO mobileKumiaoResourceDO = generateKumiaoResourceDO(mobileImageUrl, "mobile", kumiaoNewsDO);
    			this.kumiaoResourceService.add(mobileKumiaoResourceDO);
    		}
    		return 0;
    	}
    	
    	public KumiaoResourceDO generateKumiaoResourceDO(String imageUrl, String clientType, KumiaoNewsDO kumiaoNewsDO) {
    		KumiaoResourceDO kumiaoResourceDO = new KumiaoResourceDO();
        	kumiaoResourceDO.setTitle("");
        	kumiaoResourceDO.setGmtCreate(kumiaoNewsDO.getGmtCreate());
            kumiaoResourceDO.setGmtModified(kumiaoNewsDO.getGmtModified());
            kumiaoResourceDO.setResourceType("image");
            kumiaoResourceDO.setPageType("news");
            kumiaoResourceDO.setIsDeleted(kumiaoNewsDO.getIsDeleted());
            kumiaoResourceDO.setRemark("");
            kumiaoResourceDO.setClientType(clientType);
            kumiaoResourceDO.setStatus(NewsDataStatusEnum.PUBLISHED.getStoreValue()); // 图片默认是发布状态
            kumiaoResourceDO.setImageUrl(imageUrl);
            kumiaoResourceDO.setOwnerId(kumiaoNewsDO.getId());
            kumiaoResourceDO.setOwnerType("kumiao_news");
            kumiaoResourceDO.setIsTest(kumiaoNewsDO.getIsTest());
            return kumiaoResourceDO;
    	}
    



    NewsService

    int addWithImage(KumiaoNewsDO kumiaoNewsDO, String pcImageUrl, String mobileImageUrl);



    NewsServiceController

    /*
         * 添加单条新闻
         */
        @RequestMapping(value = "/add", method = RequestMethod.POST)
        @ResponseBody
        public ResponseVo add(KumiaoNewsDO kumiaoNewsDO,  String pcImageUrl, String mobileImageUrl) throws Exception {
            if (kumiaoNewsDO == null || StringUtil.isBlank(kumiaoNewsDO.getTitle())) {
                return ResponseUtil.error(MessageCode.PARAMS_NOT_ENOUGH);
            }
    
            /*
             * 新闻
             */
            Date now = new Date();
            kumiaoNewsDO.setGmtCreate(now);
            kumiaoNewsDO.setGmtModified(now);
            kumiaoNewsDO.setIsDeleted(NewsDeletedStatusEnum.NOT_DELETED.getStoreValue());
            kumiaoNewsDO.setRemark("");
            kumiaoNewsDO.setStatus(NewsDataStatusEnum.UNPUBLISHED.getStoreValue());
            int result = this.kumiaoNewsService.addWithImage(kumiaoNewsDO, pcImageUrl, mobileImageUrl);
            
            if (result == 0) {
                return ResponseUtil.success(MessageCode.SAVE_SUCCESS);
            } else {
                return ResponseUtil.error(MessageCode.FAILED);
            }
        }
        
        /*
         * 删除单条新闻
         */
        @RequestMapping(value = "/delete", method = RequestMethod.POST)
        public @ResponseBody ResponseVo delete(Long id) throws Exception {
            if (id == null || id <= 0L) {
                return ResponseUtil.error(MessageCode.PARAMS_NOT_ENOUGH);
            }
            this.kumiaoNewsService.delete(id);
            return ResponseUtil.success(MessageCode.DELETE_SUCCESS);
        }
        
        /*
         * 发布单条新闻
         */
        @RequestMapping(value = "/publish", method = RequestMethod.POST)
        public @ResponseBody ResponseVo publish(Long id) throws Exception {
            if (id == null || id <= 0L) {
                return ResponseUtil.error(MessageCode.PARAMS_NOT_ENOUGH);
            }
            this.kumiaoNewsService.publish(id);
            return ResponseUtil.success(MessageCode.PUBLISH_SUCCESS);
        }
        
        /*
         * 编辑单条新闻-查询
         */
        @RequestMapping(value = "/edit", method = RequestMethod.GET)
        public String edit(Long id, ModelMap model) throws Exception {
            if (id == null || id <= 0L) {
                return ResponseUtil.error(model, MessageCode.PARAMS_NOT_ENOUGH);
            }
           
            KumiaoNewsDO kumiaoNewsDO = this.kumiaoNewsService.getById(id);
            if (null == kumiaoNewsDO) {
                return ResponseUtil.error(model, MessageCode.OBJ_NOT_EXISTS);
            }
            model.put("kumiaoNewsDO", kumiaoNewsDO);
            
            KumiaoResourceDO pcImageDO = new KumiaoResourceDO();
            KumiaoResourceDO mobileImageDO = new KumiaoResourceDO();
            List<KumiaoResourceDO> kumiaoResourceDOList = this.kumiaoResourceService.getByNewsOwner(kumiaoNewsDO);
            if (kumiaoResourceDOList != null) {
                for (int i=0; i<kumiaoResourceDOList.size(); i++) {
                    KumiaoResourceDO resourceDO = kumiaoResourceDOList.get(i);
                    if (resourceDO.getClientType().equals(KumiaoResourceClientTypeEnum.PC.getStoreValue())) {
                        pcImageDO.setId(resourceDO.getId());
                        pcImageDO.setImageUrl(resourceDO.getImageUrl());
                    }else if(resourceDO.getClientType().equals(KumiaoResourceClientTypeEnum.MOBILE.getStoreValue())) {
                        mobileImageDO.setId(resourceDO.getId());
                        mobileImageDO.setImageUrl(resourceDO.getImageUrl());
                    }
                 }
            }
            model.put("pcImageDO", pcImageDO);
            model.put("mobileImageDO", mobileImageDO);
            fillDefData(model);
            return "kumiao/news/edit";
        }
        
        /*
         *  编辑单条新闻-更新
         */
        @ResponseBody
        @RequestMapping(value = "/edit", method = RequestMethod.POST)
        public ResponseVo editDo(KumiaoNewsDO kumiaoNewsDO, Long pcImageId, Long mobileImageId, String pcImageUrl, String mobileImageUrl) throws Exception {
            if (kumiaoNewsDO == null || kumiaoNewsDO.getId() == null) {
                return ResponseUtil.error(MessageCode.PARAMS_NOT_ENOUGH);
            }
            
            if (pcImageId != null && pcImageId > 0L) {
                this.updateImageByNews(pcImageId, pcImageUrl, kumiaoNewsDO);
            }
            
            if (mobileImageId != null && mobileImageId > 0L) {
                this.updateImageByNews(mobileImageId, mobileImageUrl, kumiaoNewsDO);
            }
            
            this.kumiaoNewsService.update(kumiaoNewsDO);
            return ResponseUtil.success(MessageCode.SAVE_SUCCESS);
        }
    
        /*
         * 下线单条新闻
         */
        @ResponseBody
        @RequestMapping(value = "/offline", method = RequestMethod.POST)
        public ResponseVo offline(Long id) throws Exception {
            if (id == null || id <= 0L) {
                return ResponseUtil.error(MessageCode.PARAMS_NOT_ENOUGH);
            }
            this.kumiaoNewsService.offlineById(id);
            return ResponseUtil.success(MessageCode.OFFLINE_SUCCESS);
        }
        
        private void fillDefData(ModelMap model) {
            model.put("newsDataTypeEnum", NewsDataTypeEnum.getMap());
        }
        
        private void updateImageByNews(Long imageId, String imageUrl, KumiaoNewsDO kumiaoNewsDO) {
            KumiaoResourceDO kumiaoResourceDO = new KumiaoResourceDO();
            kumiaoResourceDO.setId(imageId);
            kumiaoResourceDO.setImageUrl(imageUrl);
            kumiaoResourceDO.setIsTest(kumiaoNewsDO.getIsTest());
            this.kumiaoResourceService.update(kumiaoResourceDO);
        }
     /*
         * 添加单条新闻
         */
        @RequestMapping(value = "/add", method = RequestMethod.POST)
        @ResponseBody
        public ResponseVo add(KumiaoNewsDO kumiaoNewsDO,  String pcImageUrl, String mobileImageUrl) throws Exception {
        	if (kumiaoNewsDO == null || StringUtil.isBlank(kumiaoNewsDO.getTitle())) {
        		return ResponseUtil.error(MessageCode.PARAMS_NOT_ENOUGH);
        	}
    
        	/*
        	 * 新闻
        	 */
        	Date now = new Date();
        	kumiaoNewsDO.setGmtCreate(now);
        	kumiaoNewsDO.setGmtModified(now);
        	kumiaoNewsDO.setIsDeleted(NewsDeletedStatusEnum.NOT_DELETED.getStoreValue());
        	kumiaoNewsDO.setRemark("");
        	kumiaoNewsDO.setStatus(NewsDataStatusEnum.UNPUBLISHED.getStoreValue());
        	int result = this.kumiaoNewsService.addWithImage(kumiaoNewsDO, pcImageUrl, mobileImageUrl);
        	
        	if (result == 0) {
                return ResponseUtil.success(MessageCode.SAVE_SUCCESS);
            } else {
                return ResponseUtil.error(MessageCode.FAILED);
            }
        }



     /*
         * 编辑单条新闻-查询
         */
        @RequestMapping(value = "/edit", method = RequestMethod.GET)
        public String edit(Long id, ModelMap model) throws Exception {
        	if (id == null || id <= 0L) {
                return ResponseUtil.error(model, MessageCode.PARAMS_NOT_ENOUGH);
            }
           
            KumiaoNewsDO kumiaoNewsDO = this.kumiaoNewsService.getById(id);
            if (null == kumiaoNewsDO) {
                return ResponseUtil.error(model, MessageCode.OBJ_NOT_EXISTS);
            }
            model.put("kumiaoNewsDO", kumiaoNewsDO);
            
            KumiaoResourceDO pcImageDO = new KumiaoResourceDO();
            KumiaoResourceDO mobileImageDO = new KumiaoResourceDO();
            List<KumiaoResourceDO> kumiaoResourceDOList = this.kumiaoResourceService.getByNewsOwner(kumiaoNewsDO);
            if (kumiaoResourceDOList != null) {
            	for (int i=0; i<kumiaoResourceDOList.size(); i++) {
            		KumiaoResourceDO resourceDO = kumiaoResourceDOList.get(i);
            		if (resourceDO.getClientType().equals(KumiaoResourceClientTypeEnum.PC.getStoreValue())) {
            			pcImageDO.setId(resourceDO.getId());
            			pcImageDO.setImageUrl(resourceDO.getImageUrl());
            		}else if(resourceDO.getClientType().equals(KumiaoResourceClientTypeEnum.MOBILE.getStoreValue())) {
            			mobileImageDO.setId(resourceDO.getId());
            			mobileImageDO.setImageUrl(resourceDO.getImageUrl());
            		}
             	}
            }
            model.put("pcImageDO", pcImageDO);
            model.put("mobileImageDO", mobileImageDO);
            fillDefData(model);
            return "kumiao/news/edit";
        }
        
        /*
         *  编辑单条新闻-更新
         */
        @ResponseBody
        @RequestMapping(value = "/edit", method = RequestMethod.POST)
        public ResponseVo editDo(KumiaoNewsDO kumiaoNewsDO, Long pcImageId, Long mobileImageId, String pcImageUrl, String mobileImageUrl) throws Exception {
            if (kumiaoNewsDO == null || kumiaoNewsDO.getId() == null) {
                return ResponseUtil.error(MessageCode.PARAMS_NOT_ENOUGH);
            }
            
            if (pcImageId != null && pcImageId > 0L) {
            	this.updateImageByNews(pcImageId, pcImageUrl, kumiaoNewsDO);
            }
            
            if (mobileImageId != null && mobileImageId > 0L) {
            	this.updateImageByNews(mobileImageId, mobileImageUrl, kumiaoNewsDO);
            }
            
            this.kumiaoNewsService.update(kumiaoNewsDO);
            return ResponseUtil.success(MessageCode.SAVE_SUCCESS);
        }
    



    ResourceService

    List<KumiaoResourceDO> getByNewsOwner(KumiaoNewsDO kumiaoNewsDO);



    ResourceServiceImpl

    @Override
        public List<KumiaoResourceDO> getByNewsOwner(KumiaoNewsDO kumiaoNewsDO) {
            KumiaoResourceDOExample example = new KumiaoResourceDOExample();
            example.createCriteria().andOwnerIdEqualTo(kumiaoNewsDO.getId()).andOwnerTypeEqualTo("kumiao_news").andIsDeletedEqualTo(KumiaoResourceDeletedStatusEnum.NOT_DELETED.getStoreValue()).andStatusEqualTo(KumiaoResourceStatusEnum.PUBLISHED.getStoreValue()).andIsTestEqualTo(kumiaoNewsDO.getIsTest());
            List<KumiaoResourceDO> result = this.kumiaoResourceMapper.selectByExample(example);
            return result;
        }
    
    
  • 相关阅读:
    算法:希尔排序(Shell Sort)
    算法:五步教你消除递归
    算法:排列算法
    算法:逆波兰表达式求值
    算法:中缀表达式转换为逆波兰表达式
    算法:优先级队列(PriorityQueue)
    Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。
    算法:基于 RingBuffer 的 Deque 实现
    算法:基于 RingBuffer 的 Queue 实现《续》
    算法:基于 RingBuffer 的 Queue 实现
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/6933434.html
Copyright © 2011-2022 走看看