mybatis 之 parameterType="HashMap"参数包含list
/** * 获得人气组合商品详情 * @param paramMap * @return */ public List<Goods> getCheckGoodsCombination(Map paramMap);
/** * 获得人气组合商品详情 * * @param request * @param response * @param originalGoodsId * @param checkGoodsIds */ @RequestMapping("/combination") public void combination(HttpServletRequest request, HttpServletResponse response, @RequestParam(value = "originalGoodsId", required = true) String originalGoodsId, @RequestParam(value = "checkGoodsId", required = false) String checkGoodsIds) { try { ServiceMessage<List<Goods>> combinationResult = goodsDetailService.getCheckGoodsCombination(originalGoodsId, checkGoodsIds); if (combinationResult.getStatus() != MsgStatus.NORMAL) { this.setResultInfo(combinationResult.getStatus().getCode(), combinationResult.getMessage()); return; } List<Goods> goodsList = combinationResult.getResult(); DecimalFormat df = new DecimalFormat("0.00"); BigDecimal sumMarktPrice = new BigDecimal(0); BigDecimal sumEcPrice = new BigDecimal(0); for (Goods g : goodsList) { // 如果是促销 if (g.getDiscountState().equals("enable")) { long beginTime = DateUtils.dateAllToLong(g.getBeginTime()); long endTime = DateUtils.dateAllToLong(g.getEndTime()); long current = System.currentTimeMillis(); if (beginTime > current || endTime < current) { g.setDiscountState("none"); }else{ g.setEcPrice(g.getDiscountPrice()); } sumEcPrice = sumEcPrice.add(g.getEcPrice()); } else { sumEcPrice = sumEcPrice.add(g.getEcPrice()); } sumMarktPrice = sumMarktPrice.add(g.getMarketPrice()); // 转化为小数点两位 g.setEcPrice(new BigDecimal(df.format(g.getEcPrice()))); } // 优惠价=网售价-市场价 BigDecimal promotePrice = sumEcPrice.subtract(sumMarktPrice); // _result.put("originalGoodsId", originalGoodsId); // 优惠的价 _result.put("promotePrice", df.format(promotePrice)); // 组合售价之和 _result.put("combinationPrice", df.format(sumEcPrice)); // 组合结果集 _result.put("combinationResult", combinationResult.getResult()); _result.setMsg(combinationResult.getMessage()); _result.setStatus(combinationResult.getStatus().getCode()); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { write(request, response); } }
/** * 获得人气组合商品详情 * * @param originalGoodsId 原goodsId * @param checkGoodsIds 选中的组合goodsId * @return */ @Override public ServiceMessage<List<Goods>> getCheckGoodsCombination(String originalGoodsId, String checkGoodsIds) { try { List<String> list = new ArrayList<String>(); String combinationType = ""; if (!"".equals(checkGoodsIds) && checkGoodsIds != null) { if (checkGoodsIds.equals("0")) { combinationType = "original"; } else { combinationType = "combination"; checkGoodsIds = URLDecoder.decode(checkGoodsIds, "utf-8"); String[] checkArr = checkGoodsIds.split(","); for (int i = 0; i < checkArr.length; i++) { list.add(checkArr[i]); } } } else { list = null; combinationType = "all"; //return super.returnParamsError("人气组合选中的组合checkGoodsIds为空"); } if (originalGoodsId == null || "".equals(originalGoodsId)) { return super.returnParamsError("人气组合原goodsId为空"); } Map<String, Object> map = new HashMap<String, Object>(); map.put("originalGoodsId", originalGoodsId); map.put("checkGoodsIds", list); map.put("combinationType", combinationType); List<Goods> combinationList = goodsMapper.getCheckGoodsCombination(map); if (combinationList == null || combinationList.size() < 1) { return super.returnException("查找不到人气组合商品"); } return super.returnCorrectResult(combinationList); } catch (Throwable e) { logger.error(e); return super.returnException("查询人气组合商品出错"); } }
mybatis 之 parameterType="HashMap"参数包含list的更多相关文章
- MyBatis的parameterType传入参数类型
在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的 ...
- mybatis mapper文件sql语句传入hashmap参数
1.怎样在mybatis mapper文件sql语句传入hashmap参数? 答:直接这样写map就可以 <select id="selectTeacher" paramet ...
- Mybatis学习笔记——输入参数parameterType、Mybatis调用存储过程
输入参数:parameterType(两种取值符号) 1.类型为简单类型 区别: (1) #{可以为任意值} ${vaue}--->标识符只能是value (2) ...
- MyBatis传入多个参数的问题
一.单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList&q ...
- mybatis传入多个参数
一.单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList&q ...
- [转]MyBatis传入多个参数的问题 - mingyue1818
原文 http://www.cnblogs.com/mingyue1818/p/3714162.html 一.单个参数: public List<XXBean> getXXBeanLis ...
- (转载)MyBatis传入多个参数的问题
原文地址:https://www.cnblogs.com/mingyue1818/p/3714162.html 一.单个参数: public List<XXBean> getXXBeanL ...
- mybatis 传入多个参数
一.单个参数: public List<XXBean> getXXBeanList(@param("id")String id); <select id=&quo ...
- MyBatis传入多个参数的问题(转)
一.单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList&q ...
随机推荐
- QTcpSocket的连续发送数据和连续接收数据
关于这个问题折腾了我好久,以前做些小练习的时候,用QTcpSocket的write()一数据,然后接收方只要emit一个readyread()信号然后就用QTcpSocket的read()去读.本以为 ...
- Ogre2.1 结合OpenGL3+高效渲染
在DX10与OpenGL3+之前,二者都是固定管线与可编程管线的混合,其中对应Ogre1.x的版本,也是结合固定与可编程管线设计.转眼到了OpenGL3+与DX10后,固定管线都被移除了,相对应着色器 ...
- C++多线程中调用python api函数
错误场景:一直等待全局锁. 解决方法: 一.首先定义一个封装类,主要是保证PyGILState_Ensure, PyGILState_Release配对使用,而且这个类是可以嵌套使用的. #inclu ...
- ggplot2 提取stat计算出来的数据
使用ggplot2 绘图时,我们只需要提供原始数据就可以了,ggplot2 内置了许多的计算函数,来帮助我们计算对应的数值. 最典型的的,当使用geom_boxplot 绘制箱线图时,我们只提供原始数 ...
- VS 附加进程调试 Web项目
一.新建IIS站点物理路径要指定项目开发Web路径(不可以发布), 二.Host文件网站域名要指定127.0.0.1 三.打开项目目录找到.vs\config\applicationhost.conf ...
- 令人惊叹的HTML5动画及源码分析下载
HTML5非常酷,利用HTML5制作动画简直让我们忘记了这世界上还有flash的存在.今天我们要分享的一些HTML5动画都还不错,有些动画设计还是挺别出心裁的.另外,每一款HTML5动画都提供源代码下 ...
- Python入门学习:网络刷博器爬虫
1.比较有趣,可以不断刷新指定的网址 2.源码: #!/usr/bin/env python3 # -*- coding: utf-8 -*- import webbrowser as web imp ...
- HDU 5414 CRB and String (2015年多校比赛第10场)
1.题目描写叙述:点击打开链接 2.解题思路:本题要求推断字符串s是否能通过加入若干个字符得到字符串t. 首先,能够知道,s必须是t的一个子串(注意:不是连续子串). 第二.因为插入的新字符和它前面的 ...
- [转]jmeter实战
[转]http://blog.csdn.net/ultrani/article/details/8309932 本文主要介绍性能测试中的常用工具jmeter的使用方式,以方便开发人员在自测过程中就能自 ...
- 【DL】物体识别与定位
https://cloud.tencent.com/community/article/414833