package com.j1.mai.action;

import com.github.pagehelper.PageInfo;
import com.j1.app.mysql.model.ApproveDetail;
import com.j1.app.mysql.model.ApproveGoods;
import com.j1.app.mysql.model.ApproveSort;
import com.j1.base.dto.ServiceMessage;
import com.j1.base.type.MsgStatus;
import com.j1.mai.model.common.SoaApiBaseAction;
import com.j1.mai.util.NumericUtil;
import com.j1.mai.util.StringUtil;
import com.j1.soa.common.ResultMsg;
import com.j1.soa.resource.mysql.app.api.ApproveDetailService;
import com.j1.soa.resource.mysql.app.api.ApproveGoodsService;
import com.j1.soa.resource.mysql.app.api.ApproveSortService;

import net.sf.json.JSONArray;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.util.List;

/**
 *
 * @ClassName: ApproveAction
 * @Description: 钟意Action
 * @author chenxu chenxu_j1_com
 * @date 2015年8月18日 下午2:49:13
 * @since 3.5
 *
 */
@Controller
@Scope("request")
@RequestMapping("/approve")
public class ApproveAction extends SoaApiBaseAction {

    static Logger LOG = Logger.getLogger(ApproveAction.class);
    @Autowired
    private ApproveDetailService approveDetailService;
    @Autowired
    private ApproveGoodsService approveGoodsService;
    @Autowired
    private ApproveSortService approveSortService;
/*    @Autowired
    private ApproveDetailService approveDetailService;
    @Autowired
    private PageIndexImgService pageIndexImgService;*/

    /**
     *
     * @Title: findByApproveAndSort
     * @Description:  根据分类ID查找
     *        内容包括:
     *             钟意类别所包含的所有商品列表
     * @param @param request
     * @param @param response
     * @param @param approveId 钟意ID
     * @param @param sortId  分类ID
     * @return void 返回类型
     * @throws
     */
    @RequestMapping("/sortChange")
    public void findByApproveAndSort(HttpServletRequest request,
            HttpServletResponse response,
            /*@RequestParam(value = "approveId", required = false) String approveId,*/
            @RequestParam(value = "sortId", required = false) String sortId,
            @RequestParam(value = "pnum", required = false) String pnum,
            @RequestParam(value = "psize", required = false) String psize) {
            if (StringUtil.isEmpty(sortId)) {
                this.setResultInfo(MsgStatus.PARAMS_ERROR.getCode(), ResultMsg.Common.QUERY_FAILURE)
                .write(request, response);
                return;
            }
            ApproveGoods findGoods = new ApproveGoods();
            findGoods.setApproveSortId(Integer.parseInt(sortId));
            findGoods.setCurrentPage(NumericUtil.parseInt(pnum, 1));
            findGoods.setLimitPage(NumericUtil.parseInt(psize, 20));
            ServiceMessage<PageInfo<ApproveGoods>> goodsList = null;
            try {
                goodsList = approveGoodsService.getApproveGoodsBySortId(findGoods);
                if(goodsList != null && goodsList.getResult() != null) {
                    this._result.put("goodsList", goodsList.getResult().getList());
                    this._result.put("totalPage", goodsList.getResult().getPages());
                    this._result.put("pnum", NumericUtil.parseInt(pnum, 1));
                    this.setResultInfo(MsgStatus.NORMAL.getCode(), ResultMsg.Common.OK)
                    .write(request, response);
                } else {
                    this.setResultInfo(MsgStatus.NO_RESULT.getCode(), ResultMsg.Common.QUERY_FAILURE)
                     .write(request, response);
                }

            } catch (Exception e) {
                LOG.error("approveGoodsService.getApproveGoodsBySortId:" + e);
                this.setResultInfo(MsgStatus.EXCEPTION.getCode(), ResultMsg.Common.QUERY_FAILURE)
                 .write(request, response);
            } finally {
                if(goodsList != null) {
                    LOG.debug("approveSortService.getApproveSortByApproveId:" + goodsList.getStatus());
                }
            }
    }

    /**
     *
     * @Title: findByApprove
     * @Description:  根据钟意ID和分类ID查找
     *        内容包括:
     *             钟意包含的所有类别列表
     *             缺省第一个类别所包含的所有商品列表
     * @param request
     * @param response
     * @param approveId 一级分类id
     * @param sortId 二级分类id
     * @return void 返回类型
     * @throws
     */
    @RequestMapping("/approveChange")
    public void findByApprove(HttpServletRequest request,
            HttpServletResponse response,
            @RequestParam(value = "approveId", required = false) String approveId,
            @RequestParam(value = "sortId", required = false) String sortId,
            @RequestParam(value = "pnum", required = false) String pnum,
            @RequestParam(value = "psize", required = false) String psize) {

        try {//根据id查询促销标语和背景图片
            ServiceMessage<ApproveDetail> message = approveDetailService.getApproveDetailById(NumericUtil.parseInt(approveId, 1));
            if(message.getStatus()==MsgStatus.NORMAL||message.getStatus()==MsgStatus.NO_RESULT) {
                this._result.put("title", message.getResult()!=null?message.getResult().getApprovePromoteDesc():"");
                this._result.put("titleColor", message.getResult()!=null?message.getResult().getColor():"");
            }else {
                this._result.put("title", "");
                this._result.put("titleColor","");
            }
        } catch (Exception e) {
            LOG.error("approveDetailService.getApproveDetailById:" + e);
        }
        //根据钟意ID查询所有钟意类别列表
        ApproveSort findSort = new ApproveSort();
        //设置查询条件 ApproveId
        findSort.setApproveId(NumericUtil.parseInt(approveId, 1));
        //根据条件查询
        ServiceMessage<List<ApproveSort>> sortList = null;
        try {
            sortList = approveSortService.getApproveSortByApproveId(findSort);
            /*this._result.setObjData(sortList);*/
            if(sortList != null && sortList.getResult() != null) {
                this._result.put("sortList", sortList.getResult());
            } else {
                this.setResultInfo(MsgStatus.EXCEPTION.getCode(), ResultMsg.Common.QUERY_FAILURE)
                 .write(request, response);
                return;
            }
        } catch (Exception e) {
            LOG.error("approveSortService.getApproveSortByApproveId:" + e);
            this.setResultInfo(MsgStatus.EXCEPTION.getCode(), ResultMsg.Common.QUERY_FAILURE)
             .write(request, response);
            return;
        } finally {
            if(sortList != null) {
                LOG.debug("approveSortService.getApproveSortByApproveId:" + sortList.getStatus());
            } 

        }
        //结果中获取排序位置为为0的sort,并根据sortId查询此sort下所有商品列表
        Integer firstSortId = null;
        if (StringUtil.isEmpty(sortId)) {
            firstSortId=findFirstFromList(sortList.getResult());
        }else {
            firstSortId=Integer.parseInt(sortId);
        }

        if(firstSortId != null) {//有值才进行下一步查询
            ApproveGoods findGoods = new ApproveGoods();
            findGoods.setApproveSortId(firstSortId);
            findGoods.setCurrentPage(NumericUtil.parseInt(pnum, 1));
            findGoods.setLimitPage(NumericUtil.parseInt(psize, 20));
            ServiceMessage<PageInfo<ApproveGoods>> goodsList = null;
            try {
                goodsList = approveGoodsService.getApproveGoodsBySortId(findGoods);
                if(goodsList != null && goodsList.getResult() != null) {
                    this._result.put("goodsList", goodsList.getResult().getList());
                    this._result.put("totalPage", goodsList.getResult().getPages());
                    this._result.put("pnum", NumericUtil.parseInt(pnum, 1));
                }else {
                    this._result.put("goodsList", new JSONArray());
                    this._result.put("totalPage", 0);
                    this._result.put("pnum", NumericUtil.parseInt(pnum, 1));
                }

            } catch (Exception e) {
                LOG.error("approveGoodsService.getApproveGoodsBySortId:" + e);
                this.setResultInfo(MsgStatus.EXCEPTION.getCode(), ResultMsg.Common.QUERY_FAILURE)
                 .write(request, response);
            }

        }
        this.setResultInfo(MsgStatus.NORMAL.getCode(), ResultMsg.Common.OK).write(request, response);
    }

    /**
     *
     * @Title: findByApproveWithPage
     * @Description:   分页查询(针对分类1)
     * @param @param request
     * @param @param response
     * @param @param approveId  设定文件
     * @return void 返回类型
     * @throws
     */
    @RequestMapping("/approveByPage")
    public void findByApproveWithPage(HttpServletRequest request,
            HttpServletResponse response,
            @RequestParam(value = "approveId", required = false) String approveId,
            @RequestParam(value = "pnum", required = false) String pnum,
            @RequestParam(value = "psize", required = false) String psize) {

        ApproveSort findSort = new ApproveSort();
        //设置查询条件 ApproveId
        findSort.setApproveId(NumericUtil.parseInt(approveId, 1));
        //根据条件查询
        ServiceMessage<List<ApproveSort>> sortList = null;
        try {
            sortList = approveSortService.getApproveSortByApproveId(findSort);
            /*this._result.setObjData(sortList);*/
            if(sortList != null && sortList.getResult() != null) {
                this._result.put("sortList", sortList.getResult());
            } else {
                this.setResultInfo(MsgStatus.EXCEPTION.getCode(), ResultMsg.Common.QUERY_FAILURE)
                 .write(request, response);
                return;
            }
        } catch (Exception e) {
            LOG.error("approveSortService.getApproveSortByApproveId:" + e);
            this.setResultInfo(MsgStatus.EXCEPTION.getCode(), ResultMsg.Common.QUERY_FAILURE)
             .write(request, response);
            return;
        } finally {
            if(sortList != null) {
                LOG.debug("approveSortService.getApproveSortByApproveId:" + sortList.getStatus());
            } 

        }

        ApproveGoods findGoods = new ApproveGoods();
        findGoods.setApproveId(NumericUtil.parseInt(approveId, 1));
        findGoods.setCurrentPage(NumericUtil.parseInt(pnum, 1));
        findGoods.setLimitPage(NumericUtil.parseInt(psize, 20));
        LOG.info("CurrentPage:" + findGoods.getCurrentPage());
        LOG.info("limitPage:" + findGoods.getLimitPage());
        ServiceMessage<PageInfo<ApproveGoods>> goodsList = null;
        try {
            goodsList = approveGoodsService.getApproveGoodsByApproveId(findGoods);
            if(goodsList != null && goodsList.getResult() != null) {
                this._result.put("goodsList", goodsList.getResult().getList());
                this._result.put("totalPage", goodsList.getResult().getPages());
                this._result.put("pnum", NumericUtil.parseInt(pnum, 1));
                this.setResultInfo(MsgStatus.NORMAL.getCode(), ResultMsg.Common.OK)
                .write(request, response);
            } else {
                this.setResultInfo(MsgStatus.EXCEPTION.getCode(), ResultMsg.Common.QUERY_FAILURE)
                 .write(request, response);
                return;
            }
        } catch (Exception e) {
            LOG.error("approveSortService.getApproveSortByApproveId:" + e);
            this.setResultInfo(MsgStatus.EXCEPTION.getCode(), ResultMsg.Common.QUERY_FAILURE)
             .write(request, response);
        } finally {
            if(goodsList != null) {
                LOG.debug("approveGoodsService.getApproveGoodsByApproveId:" + goodsList.getStatus());
            } 

        }
    }

    /**
     *
     * @Title: findFirstFromList
     * @Description:   查询list列表中第一个位置ID
     * @param @param lists
     * @param @return  设定文件
     * @return Integer 返回类型
     * @throws
     */
    private Integer findFirstFromList(List<ApproveSort> lists) {
        if(lists == null || lists.size() < 1) {
            return null;
        }
        for(ApproveSort s : lists) {
            if(s != null) {
                return s.getId();
            }
        }
        return null;
    }

}

钟意Action的更多相关文章

  1. redux-amrc:用更少的代码发起异步 action

    很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...

  2. 尝试asp.net mvc 基于controller action 方式权限控制方案可行性

    微软在推出mvc框架不久,短短几年里,版本更新之快,真是大快人心,微软在这种优秀的框架上做了大量的精力投入,是值得赞同的,毕竟程序员驾驭在这种框架上,能够强力的精化代码,代码层次也更加优雅,扩展较为方 ...

  3. ASP.NET Core 中文文档 第四章 MVC(4.1)Controllers, Actions 和 Action Results

    原文:Controllers, Actions, and Action Results 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:许登洋(Seay) Action 和 acti ...

  4. java中Action层、Service层和Dao层的功能区分

    Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...

  5. SpringMVC的Action在同一时间里只允许同一个浏览器的单次进入?

    最近用SpringMVC写了一个很简单的测试程序,代码如下: @Controller public class LongTimeTaskController { @RequestMapping(val ...

  6. No result defined for action com.lk.IndexAction and result success

    意图访问一个 /es/index.action 竟然出现: [SAE ] ERROR [05-11 13:54:32] [http-80-5] com.opensymphony.xwork2.util ...

  7. 实现MVC自定义过滤器,自定义Area过滤器,自定义Controller,Action甚至是ViewData过滤器

    MVC开发中几种以AOP方式实现的Filters是非常好用的,默认情况下,我们通过App_Start中的FilterConfig来实现的过滤器注册是全局的,也就是整个应用程序都会使用的,针对单独的Fi ...

  8. ASP.NET MVC 5调用其他Action

    引用代码: @Html.Action("Index", "BaseData", new { d = "variety" }) 后台获取参数: ...

  9. C#基础知识六之委托(delegate、Action、Func、predicate)

    1. 什么是委托 官方解释 委托是定义方法签名的类型,当实例化委托时,您可以将其实例化与任何具有兼容签名的方法想关联,可以通过委托实例调用方法. 个人理解 委托通俗一点说就是把一件事情交给别人来帮助完 ...

随机推荐

  1. Java ExecutorServic线程池(异步)

    相信大家都在项目中遇到过这样的情况,前台需要快速的显示,后台还需要做一个很大的逻辑.比如:前台点击数据导入按钮,按钮后的服务端执行逻辑A,和逻辑B(执行大量的表数据之间的copy功能),而这时前台不能 ...

  2. 如何设置电脑的固定IP地址

    大家在上网时电脑的IP地址往往都是自动选择的,但在局域网内有时会方便共享文件和监控流量等操作时需要固定的IP地址.下面将简单介绍如何手设置电脑的固定IP地址. 百度经验:jingyan.baidu.c ...

  3. hbase中double类型数据做累加

    public static Result incr(String tableFullName, String rowKey, String family, String qualifier, long ...

  4. 【Unity笔记】将角色的碰撞体朝向鼠标点击方向——角色朝向鼠标

    int floorMask; // 自动寻路层 void Awake() { floorMask = LayerMask.NameToLayer("Floor"); } void ...

  5. 内核定时器timer_list

    内核在时钟中断发生后执行检测各个定时器是否到期,到期后的定时器处理函数将作为软中断在底半部执行.实质上,时钟中断处理程序会唤起TIMER_SOFTIRQ软中断,运行当前处理器上到期的所有定时器.lin ...

  6. Struts2- 设置默认拦截器

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "- ...

  7. Git服务器搭建全过程分步详解

    GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用,那么我们可以自己搭建一台Git服务器. 下面我们就看看,如何在Ubuntu上搭建Git服务器.我们使用V ...

  8. 【转】淘宝技术牛p博客整理

    转自:http://blog.csdn.NET/zdp072/article/details/19574793 淘宝技术委员会是由淘宝技术部高级技术人员组成的一个组织,共分为Java分会.C/C++分 ...

  9. Stay hungry, stay foolish. 求知若饥,虚心若愚。

    如果留意我博客的朋友,应该都有看到这句话在我的自我介绍栏目存在了好长一段时间了,另外,我的 QQ.旺旺.MSN等都有这个签名.Stay hungry, stay foolish.(求知若饥,虚心若愚) ...

  10. Ubuntu创建新用户并增加管理员权限 删除某个用户

    sudo adduser xxx 这样的命令会在home目录下添加一个帐号sudo useradd xxx 仅仅是添加用户, 不会在home目录添加帐号 删除:终端方法:以下用newuser代替想要删 ...