谷神后端$vs.proc.invoke.stock.loadMap

loadMap
// 调用
@loadMap($src, $field, $strTableName, $key, $target, $other, $systemId)/*** loadMap* 加载map。** @param $src:list:列表。* @param $field:string:参数域。* @param $strTableName:string:表名。* @param $key:string:键。* @param $target:string:落地属性。* @param $other:map:其它条件。* @param $systemId:string:系统id。** @return list:加载数据后的列表。**/
#function loadMap($src, $field, $strTableName, $key, $target, $other, $systemId)// 参数处理#set($where = $vs.util.newMap())#if ($vs.util.isMap($other))$where.putAll($other)#end// 数据收集#set($fields = @collectSet($src, $field))// 查询条件$where.put($key, $fields)// 列表数据#set($list = $vs.util.newList())#if ($vs.util.isString($systemId))#set($list = @remoteList($systemId, $strTableName, '*', $where))#else#set($list = $vs.dbTools.select($strTableName, $where))#end// 列表分组#set($map = @list2map($list, $key, null))// 数据组装@listPut($src, $map, $field, $target)// 初始化默认值#foreach ($row in $src)#if (!$vs.util.isMap($row.get($target)))$row.put($target, $vs.util.newMap())#end#end// 返回return $src
#end/*** collectSet* 集合数据收集list实现:判空、去重。** @param $list:list:列表。* @param $field:string:字段。** @return list**/
#function collectSet($list, $field)#if ($vs.util.isList($list))#set($result = $vs.util.newList())#set($set = $vs.util.newList())#foreach($row in $list)#set($value = $row)#if ($vs.util.isNotNull($field))#set($value = $row.get($field))#end#if ($vs.util.isNotNull($value) and !$set.contains($value))$result.add($value)$set.add($value)#end#endreturn $result#endreturn null
#end/*** remoteList* 远程列表。** @param $systemId:string:系统id。* @param $strTableName:string:表。* @param $strColumns:string:字段。* @param $where:map:条件。** @return list:列表。**/
#function remoteList($systemId, $strTableName, $strColumns, $where)#if ($vs.util.isBlankOne($strTableName, $systemId))return null#end#if ($vs.util.isNull($strColumns))#set($strColumns = ' * ')#end#set($strSql = `select${$strColumns}from${strTableName}where 1 = 1`)#set($strSql = $strSql + @andWhere($where))return $vs.dbTools.remoteList($systemId, $strSql ,$where)
#end/*** andWhere* 条件。* * @param $where:map:条件** @return string:sql。**/
#function andWhere($where)#set($sql = '')#if ($vs.util.isMap($where))#foreach ($key in $vs.util.getMapKeys($where))#set($value = $where.get($key))#if ($vs.util.isList($value))#set($sql = $sql + " and " + $vs.sqlHelper.listIn($value, $key))#else#set($sql = $sql + $vs.sqlHelper.and($where, $key))#end#end#endreturn $sql
#end/*** list2map* list转map:支持全量映射、单字段映射。* * @param $list:list:列表。* @param $key:string:键字段域。* @param $field:string:值字段域。** @return map**/ 
#function list2map($list, $key, $field)#if ($vs.util.isList($list))#set($map = $vs.util.newMap())#foreach($row in $list)#set($value = $row)#if (!$vs.util.isNull($field))#set($value = $row.get($field))#end$map.put($row.get($key), $value)#endreturn $map#endreturn null
#end/*** listPut* 数据组装。** @param $list:list:列表。* @param $map:map:映射。* @param $key:string:键。* @param $field:string:域。** @return null**/ 
#function listPut($list, $map, $key, $field)#if ($vs.util.isList($list) and $vs.util.isMap($map) and $vs.util.isString($key))#if ($vs.util.isNull($field))#set($field = 'data')#end#foreach($item in $list)#set($itemKey = $item.get($key))#set($data = $map.get($itemKey))$item.put($field, $data)#end#endreturn null
#end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/53979.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

心觉:运用吸引力法则和开发潜意识的核心中的核心是什么?

吸引力法则的核心在于 思想的力量 和 频率的匹配。你所思考和感受的会吸引与你频率相匹配的事物和经历到你的生活中。具体来说: 明确意图和目标:清晰地知道你想要什么,并且用详细的方式描述它。这可以是通过写下目标、制作愿景板(…

分享国产RISC-V单片机通用

开源已经成为构建新技术生态的主流趋势。基于开源指令集 RISC-V 的软硬件生态正在飞速扩增,并且已经迅速扩展至个人 PC、服务器和人工智能等领域。RISC-V 的灵活性和可扩展性使其能够在应用处理器和AI加速领域迅速发展。 RAMSUN提供的RISC-V单片机,开源…

MySQL_视图

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :&#x1…

鸿蒙harmonyos next flutter通信之MethodChannel获取设备信息

本文将通过MethodChannel获取设备信息,以此来演练MethodChannel用法。 建立channel flutter代码: MethodChannel methodChannel MethodChannel("com.xmg.test"); ohos代码: private channel: MethodChannel | null nullthis.c…

PostgreSQL数据库与PostGIS在Windows中的部署与运行

本文介绍在Windows电脑中,下载、安装、部署并运行PostgreSQL与PostGIS数据库服务的方法。 PostgreSQL是一种功能强大的开源关系型数据库管理系统(RDBMS),以其稳定性、可靠性和丰富的功能而闻名;其支持多种高级特性&…

新能源汽车储充机器人:能源高效与智能调度

新能源汽车储充机器人:开启能源高效利用与智能调度的未来之门 随着全球能源危机的日益加剧和环境污染问题的不断恶化,新能源汽车成为了未来交通领域的重要发展方向。然而,新能源汽车的普及不仅需要解决电池技术的瓶颈,还需要构建一…

V2X 中用到的DSRC技术和ETC中用到DSRC技术是一种技术

‌V2X用到的DSRC与ETC用的DSRC是一种技术。‌ DSRC(专用短程通信技术)是一种基于IEEE802.11p标准开发的无线通信技术,它使得汽车间能相互通信,同时汽车也能与周围的智能交通基础设施进行通信。这种技术专门将车与车、车与道路基础…

【预备理论知识——1】深度学习:概率论概述

简单地说,机器学习就是做出预测。 概率论 掷骰子 假设我们掷骰子,想知道看到1的几率有多大,而不是看到另一个数字。 如果骰子是公平的,那么所有六个结果{1,…, 6}都有相同的可能发生, 因此我们可以说 1 发生的概率为1…

全球55%的开发者都在用的分布式云到底怎么样?

各种云计算平台和丰富的云服务发展到现在已经很成熟了,全世界范围内被绝大部分企业所接受。然而今天,Akamai想要跟大家讨论一个不太一样的话题:分布式云计算。 简单来说,分布式云计算是指将云资源和服务分散到离数据源或用户更近…

计算机历史的传奇演进:从巴贝奇到人工智能的未来

计算机的传奇演进:从洞察到未来 计算机的历史不仅仅是冷冰冰的技术发展,它更是一段充满创意、意外与惊喜的旅程。让我们穿越时光,走进那些引领计算机革命的传奇人物和事件,细细品味每一段令人惊叹的故事。 起源的奇思妙想&#…

基于开源WQ装备知识图谱的智能问答优化2

基于笔者之前写的博客基础上:https://blog.csdn.net/zhanghan11366/article/details/142139488【基于开源WQ装备知识图谱的智能问答全流程构建】进行优化。新增处理基于特定格式下的WQ文档,抽取文档的WQ属性和关系,并抽取对应WQt图片存储至mi…

AIGC教程:如何用Stable Diffusion+ControlNet做角色设计?

前言 对于生成型AI的画图能力,尤其是AI画美女的能力,相信同行们已经有了充分的了解。然而,对于游戏开发者而言,仅仅是漂亮的二维图片实际上很难直接用于角色设计,因为,除了设计风格之外,角色设…

大数据开发--1.2 Linux介绍及虚拟机网络配置

目录 一. 计算机入门知识介绍 软件和硬件的概述 硬件 软件 操作系统概述 简单介绍 常见的系统操作 学习Linux系统 二. Linux系统介绍 简单介绍 发行版介绍 常用的发行版 三. Linux系统的安装和体验 Linux系统的安装 介绍 虚拟机原理 常见的虚拟机软件 体验Li…

C语言编写一个五子棋游戏-代码实例讲解与分析

编写一个完整的五子棋游戏(Gomoku 或 Gobang)在C语言中是一个相对复杂的任务,因为它涉及到用户界面的处理、游戏逻辑的维护以及可能的AI对手设计。在这里,我将提供一个简化的版本,这个版本将使用控制台来接收用户输入&…

RocketMQ消息发送之广播模式

前言 在前面的文章中我们回顾了RocketMQ的顺序消息和乱序消息,以及里面包含的乱序消息和全局消息,RocketMQ支持多种消息类型和消费模式 今天这篇文章主要介绍RocketMQ的广播消息。希望文章能为正在学习RocketMQ相关知识的大佬们提供帮助! 广…

万博智云CEO王嘉在华为全联接大会:以创新云应用场景,把握增长机遇

一、大会背景 2024年9月19-21日,第九届华为全联接大会将在上海世博展览馆和上海世博中心举办。作为华为的旗舰盛会,本次大会以“共赢行业智能化”为主题邀请了众多思想领袖、商业精英、技术专家、合作伙伴、开发者等业界同仁,从战略、产业、…

【Y004】基于springboot+vue实现的图书管理系统

主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路,关注作者有好处 项目描述 (1) 图书信息的管理,包括图书信息的条件查询、录入、修改和删除。 (2) 图书类…

《MATLAB项目实战》,专栏目录和介绍

文章目录 前言专栏介绍🎓一、 项目实战篇和GUI界面篇🎓二、 项目基础篇总结 前言 MATLAB 是一款强大且广泛应用的数值计算和数据可视化软件工具,它提供了一个高效、简洁的编程环境,使用户能够进行从简单的矩阵运算到复杂的多维数…

理解Python闭包概念

闭包并不只是一个python中的概念,在函数式编程语言中应用较为广泛。理解python中的闭包一方面是能够正确的使用闭包,另一方面可以好好体会和思考闭包的设计思想。 1.概念介绍 首先看一下维基上对闭包的解释: 在计算机科学中,闭包…

OJ在线评测系统 后端 判题机模块预开发 架构分析 使用工厂模式搭建

判题机模块预开发(架构师)(工厂模式) 判题机模块 是为了把代码交个代码沙箱去处理 得到结果返回 代码沙箱 梳理判题模块和代码沙箱的关系 判题模块:调用代码沙箱 把代码和输入交给代码沙箱去执行 代码沙箱:只负责接受代码和输入 返回编译的结果 不负…