钟意Action
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的更多相关文章
- redux-amrc:用更少的代码发起异步 action
很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...
- 尝试asp.net mvc 基于controller action 方式权限控制方案可行性
微软在推出mvc框架不久,短短几年里,版本更新之快,真是大快人心,微软在这种优秀的框架上做了大量的精力投入,是值得赞同的,毕竟程序员驾驭在这种框架上,能够强力的精化代码,代码层次也更加优雅,扩展较为方 ...
- ASP.NET Core 中文文档 第四章 MVC(4.1)Controllers, Actions 和 Action Results
原文:Controllers, Actions, and Action Results 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:许登洋(Seay) Action 和 acti ...
- java中Action层、Service层和Dao层的功能区分
Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...
- SpringMVC的Action在同一时间里只允许同一个浏览器的单次进入?
最近用SpringMVC写了一个很简单的测试程序,代码如下: @Controller public class LongTimeTaskController { @RequestMapping(val ...
- 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 ...
- 实现MVC自定义过滤器,自定义Area过滤器,自定义Controller,Action甚至是ViewData过滤器
MVC开发中几种以AOP方式实现的Filters是非常好用的,默认情况下,我们通过App_Start中的FilterConfig来实现的过滤器注册是全局的,也就是整个应用程序都会使用的,针对单独的Fi ...
- ASP.NET MVC 5调用其他Action
引用代码: @Html.Action("Index", "BaseData", new { d = "variety" }) 后台获取参数: ...
- C#基础知识六之委托(delegate、Action、Func、predicate)
1. 什么是委托 官方解释 委托是定义方法签名的类型,当实例化委托时,您可以将其实例化与任何具有兼容签名的方法想关联,可以通过委托实例调用方法. 个人理解 委托通俗一点说就是把一件事情交给别人来帮助完 ...
随机推荐
- javascript 中解析json
首先温习一下JSON格式: (1) 单个对象{"变量名1":"变量值1","变量名2":"变量值2"} (2) 数组[{ ...
- Jar/War/Ear等包的作用与区别详解
以客户角度来看,jar文件就是一种封装格式,用户不需要知道jar包中有多少个.class格式的文件及每个文件中的功能与作用,也可以得到相应的访问的结果.java中除了jar格式还有war和ear等包文 ...
- sublime 设置侧边栏颜色
Sublime Text 2 编辑器: Ctrl+` 输入安装代码,安装package control 插件 ctrl+shift+P : Package install 为什么装不上了呢?出现了什么 ...
- CenOS6.5下源码安装vim-7.4
1.[下载] vim-7.4下载地址: ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2 2.[解压] tar jxvf vim-7.4.tar.bz2 之 ...
- C语言 · 完美的代价
基础练习 完美的代价 时间限制:1.0s 内存限制:512.0MB 锦囊1 使用贪心算法. 锦囊2 从左到右枚举每个字符,移动对应字符.个数为单的字符放中间. 问题描述 回文 ...
- 无法识别的属性 configProtectionProvider的解决方案
用RsaProtectedConfigurationProvider加密数据库连接字符串时,只要App.config有任何改动,都会提示无法识别的属性 configProtectionProvider ...
- [sz,rz]使用sz/rz在两台Linux设备之间传输数据
转自:https://superuser.com/questions/604055/using-rz-and-sz-under-linux-shell zsend #!/bin/sh DEV=/dev ...
- [镜像]loop设备及losetup命令介绍
最近需要对一个镜像文件进行修改,可以些方式是通过losetup和kpartx, mount完成,于是分享下面这篇 转自:http://blog.csdn.net/ustc_dylan/article/ ...
- CKFinder 自定义文件路径扩展ConfigurationPathBuilder
CKFinder 自定义文件路径扩展ConfigurationPathBuilder 打开config.xml当中可以看到如下配置 <basePathBuilderImpl>com.ckf ...
- JavaScript 深入理解作用域链
第一步. 定义后:每个已定义函数,都有一个内在属性[scope],其对应一个对象的列表,列表中的对象仅能内部访问. 例如:建立一个全局函数A,那么A的[Scope]内部属性中只包含一个全局对象(Glo ...