7.2 实战训练(积分发放)

前言

当我们碰到一个全新的场景,除了写代码以外也可以通过设计器来完成,大致步骤如下:

  1. 分析业务场景,规划对应的模型并通过模型设计器进行配置

  2. 通过界面设计器,设计出必要管理页面

  3. 通过流程设计器,设计对应业务流程

  4. 通过数据可视化,设计相应的数据看板

场景说明

本节通过例子完成一个积分成本分摊的业务场景

积分支出:谁受益谁支出原则+导购手动确认原则,通过门店应用的积分规则,来实现自动化+手动积分形式实现

案例背景

某家具企业经营多种家具类型,不同系列不同品类分事业部经营。

注:

独立门店:只能售卖本事业部下的商品;

融合门店:可以售卖多事业部下的商品;

需求:需要建立一套积分规则,遵循谁受益谁支出原则+导购手动确认原则;通过门店应用的积分规则,来实现自动化+手动积分。

7.2 实战训练(积分发放)

场景一

导购a邀请老客户c通过裂变分享新客户x在独立门店1下单。系统根据独立门店1的积分规则,自动发放积分给老客户c和新客户x,积分由国一事业部承担。

7.2 实战训练(积分发放)

场景二

融合门店1导购b邀请老客户d裂变分享新客户y在融合门店下单。该订单可能涉及多个事业部,由导购b手动选择最大量值的积分规则进行发放

7.2 实战训练(积分发放)

场景三

独立门店1的导购a邀请老客户c裂变分享新客户z在独立门店2下单。系统根据独立门店2的积分规则,来计算积分值,自动发放老客户c和新客户z的积分,积分由国二事业部

7.2 实战训练(积分发放)

实战训练

Step1 分析业务场景规划对应模型

本场景下涉及基础对象模型包括:事业部、门店、导购、会员等

  1. 事业部:它是积分成本的载体

  2. 门店:类型分为独立门店和融合门店,独立门店必须隶属于一个事业部,同时配置默认积分发放规则,融合门店可能属于多个事业部当发生积分发放时,需要店员手工选择成本事业部和积分发放规则

  3. 导购员:导购员必须隶属于一个门店等

  4. 会员:消费者需要记录它隶属导购员,以及是由哪个会员推荐过来的等

涉及业务对象模型包括:积分发放规则,积分发放记录,邀请下单记录

  1. 积分发放规则:会员积分发放规则,对应邀请老客的积分发放规则等

  2. 积分发放记录:本次发放积分、本次发放积分规则、发放对象(会员)、成本事业部、关联门店、关联导购、关联老客(可空)、关联下单记录编码等

  3. 邀请下单记录:导购、下单会员、下单门店、商品信息、下单金额等

对应模型如下:

7.2 实战训练(积分发放)

模型 设计器呈现 自定义字段列表 关系字段说明 说明
事业部 7.2 实战训练(积分发放) 事业部负责人(文本)
门店列表(o2m)
与门店建立o2m绑定关系,绑定时选择双向绑定,双向绑定意思是在事业部这边建立o2m到门店的关系字段,在门店那边建立m2o的关系字段 关系字段需要在有对方模型的情况下再建,比如事业部中的门店列表则是再后面追加新增的
门店 7.2 实战训练(积分发放)
7.2 实战训练(积分发放)
导购列表(o2m)
事业部(m2o)
默认积分发规则(m2o)
门店类型(枚举)
分别与事业部、导购、积分发放规则建立m2o、o2m、m2o关系 门店类型:需要先建对应的数据字典
导购 7.2 实战训练(积分发放) 绑定用户(m2o)
门店(m2o)
是否离职(布尔型)
与门店建立m2o关系 1. 绑定用户,用于后续业务流程设计中的填写规则
2. 打马赛克的忽略,其他场景测试用
会员 7.2 实战训练(积分发放) 会员累计积分(浮点数)
推荐客户(m2o)
所属于导购员(m2o)
是否为新客(布尔型)
与导购、会员建立m2o关系 1. 会员m2o的字段是自关联用于存储推荐会员
2. 打马赛克的忽略,其他场景测试用
积分发放规则 7.2 实战训练(积分发放) 推荐客户发放比例(浮点数)
发放倍数(整数)
积分发放记录 7.2 实战训练(积分发放) 最终发放积分(浮点数)
关联积分规则(m2o)
事件编码(文本)
推荐导购员(m2o)
推荐会员(m2o)
关系门店(m2o)
成本事业部(m2o)
会员(m2o)
成本事业部名称(文本)
会员名称(文本)
与积分发放规则、导购员、会员、门店、事业部建立m2o关系 1. 会员有两个m2o,分别用户记录发放会员和发放会员的推荐会员也就是老客
2. 事件编码用户维护触发本次积分发放记录产生的源头单据编码如:邀请下单记录的编码
邀请下单记录 7.2 实战训练(积分发放) 成本事业部(m2o)
选择积分发放规则(m2o)
下单门店(m2o)
购买商品(文本)
下单金额(整数)
会员(m2o)
导购(m2o)
与成本事业部、积分发放规则、下单门店、会员、导购等建立m2o的关系 1. 会员、下单门店、导购属于必要信息
2. 成本事业部、积分发放规则是业务流程中自动计算回填的数据

Step3 利用界面设计器,设计出必要的管理页面

以事业部为例,构建管理页面。其他模型依次按例子建立管理页面

  1. 进入界面设计器,应用选择全员营销,模型选择事业部,点击添加页面下的直接创建

7.2 实战训练(积分发放)

  1. 设置页面标题、模型(自动带上可切换)、业务类型(运营管理后续会扩展其他类型)、视图类型(表单)后点击确认按钮进入事业部表单设计页面

7.2 实战训练(积分发放)

  1. 进入页面设计器,对事业部表单页面进行设计(更多细节介绍,请参考界面设计产品使用手册)

    a. 左侧为物料区:分为组件、模型。

    ⅰ. 【组件】选项卡下为通用物料区,我们可以为页面增加对应布局、字段(如同在模型设计器增加字段)、动作、数据、多媒体等等

    ⅱ. 【模型】选项卡下为页面对应模型的自定义字段、系统字段、以及模型已有动作

    b. 中间是设计区域

    c. 右侧为属性面板,在设计区域选择中组件会显示对应组件的可配置参数

7.2 实战训练(积分发放)

  1. 在左侧【组件】选项卡下,拖入布局组件【分组】,并设置组件【标题属性】为基础信息

7.2 实战训练(积分发放)

  1. 在左侧【组件】选项卡下,再次拖入布局组件【分组】,并设置组件【标题属性】为门店列表

7.2 实战训练(积分发放)

  1. 在左侧【模型】选项卡下,分别把自定义字段中的【事业部负责人】和系统字段中的【名称】拖入【基础信息】分组,把自定义字段中的【门店列表】字段拖入门店列表分组

7.2 实战训练(积分发放)

  1. 在设计区域切换【门店列表】展示组件为【表格】

7.2 实战训练(积分发放)

  1. 此时【门店列表】展示形式变成了表格形式,选中【门店列表】组件,会发现左侧【模型】选项卡下的当前模型切换成了【门店】,同时我们在右属性面板区置空其【标题属性】

7.2 实战训练(积分发放)

  1. 设计区选中【门店列表】的表格组件,分别把自定义字段中的【默认积分发规则】、【门店类型】、【导购列表】和系统字段中的【名称】拖入【门店列表】表格组件的表格字段设计区

7.2 实战训练(积分发放)

  1. 设计区选中【门店列表】的表格组件的【创建】按钮,点击【打开弹窗】设计关系字段【门店】的新增页面

7.2 实战训练(积分发放)

11.分别把自定义字段中的【默认积分发规则】、【门店类型】和系统字段中的【名称】拖入门店的新增页面设计区

7.2 实战训练(积分发放)

  1. 选中弹出框中【取消】取消按钮,设置其【按钮样式】属性为【次要按钮】

7.2 实战训练(积分发放)

  1. 关闭弹出框,回到主设计区

7.2 实战训练(积分发放)

  1. 设计区选中【门店列表】的表格组件的【删除】按钮,设置其【按钮样式】属性为【次要按钮】,【二次确认】属性打开

7.2 实战训练(积分发放)

  1. 设计区选中【门店列表】的表格组件中操作列的【编辑】按钮,点击【打开弹窗】设计关系字段【门店】的编辑页面,

    a. 分别把自定义字段中的【默认积分发规则】、【门店类型】和系统字段中的【名称】拖入门店的新增页面设计区。

    b. 选中弹出框中【取消】取消按钮,设置其【按钮样式】属性为【次要按钮】

    c. 把门店类型展示组件切换为【单选框】

    d. 关闭弹出框

7.2 实战训练(积分发放)

  1. 设计区选择非【门店列表】组件如基础信息,模型切换为主模型【事业部】,在左侧【模型】选项卡下,把动作分类下的提交类型【创建】动作拖入中间设计区的动作区

7.2 实战训练(积分发放)

  1. 选择中展示名为【确定】的创建动作按钮,在右侧属性面板中设置:是否隐藏属性为【条件隐藏】,隐藏条件为【id非空】

7.2 实战训练(积分发放)

  1. 在左侧【模型】选项卡下,把动作分类下的提交类型【更新】动作拖入中间设计区的动作区

7.2 实战训练(积分发放)

  1. 选择中展示名为【确定】的更新动作按钮,在右侧属性面板中设置:是否隐藏属性为【条件隐藏】,隐藏条件为【id为空】。之所以同时拖入【创建】和【更新】动作并都命名为确认,是期望这个页面同时可以做为新增页面也可以做为编辑页面,只不过要通过条件隐藏来设置按钮的出现规则

7.2 实战训练(积分发放)

  1. 在左侧【组件】选项卡下,把动作分类下的【客户端动作】拖入中间设计区的动作区

7.2 实战训练(积分发放)

  1. 选择设计区【客户端动作】,在右侧属性面板中设置:动作名称为【返回】,客户端行为为【返回上一个页面】并点击保存

7.2 实战训练(积分发放)

  1. 选择设计区【返回】动作,在右侧属性面板中设置:按钮样式为【返回】,【二次确认】属性打开并设置提示文字为【返回页面操作将不被保存】,可以点击预览二次确认看效果

7.2 实战训练(积分发放)

  1. 点击【发布】按钮,页面成功发布,每发布一次会有一个例子版本,可以通过历史版本进行恢复

7.2 实战训练(积分发放)

  1. 点击右上角历史版本图标,进入历史版本查看页面

7.2 实战训练(积分发放)

  1. 在历史版本页面可以选择对应历史版本记录,并通过【恢复此版本】来完成页面的历史版本切换

7.2 实战训练(积分发放)

  1. 接下来我们为事业部模型创建表格管理页面,入口同编辑页面。设置页面标题、模型(自动带上可切换)、业务类型(运营管理后续会扩展其他类型)、视图类型(表格)后点击确认按钮进入事业部表格设计页面

7.2 实战训练(积分发放)

  1. 进入页面设计器,对事业部表格页面进行设计(更多细节介绍,请参考界面设计产品使用手册)

7.2 实战训练(积分发放)

  1. 在左侧【模型】选项卡下,分别把自定义字段中的【事业部负责人】和系统字段中的【名称】拖入表格组件的表格字段设计区

7.2 实战训练(积分发放)

  1. 在左侧【组件】选项卡下,把动作分类下的【跳转动作】拖入中间设计区的动作区,并在右侧属性面板中设置动作名称为【新增】,数据控制类型为【不进行数据处理】,打开方式为【当前窗口打开】,动作跳转页面为【事业部编辑】页面,并点击保存

7.2 实战训练(积分发放)

  1. 在左侧【组件】选项卡下,把动作分类下的【跳转动作】拖入中间设计区的行内动作区,并在右侧属性面板中设置动作名称为【编辑】,数据控制类型为【处理单条数据】,打开方式为【当前窗口打开】,动作跳转页面为【事业部编辑】页面,并点击保存

7.2 实战训练(积分发放)

  1. 在左侧【模型】选项卡下,把动作分类下的【删除】拖入中间设计区的动作区,并在右侧属性面板中设置动作名称为【删除】,按钮样式为【次要按钮】,【二次确认】属性打开

7.2 实战训练(积分发放)

  1. 点击右上角【显示母版】进入页面最终展示形式,点击添加菜单项,并在输入框中输入【事业部管理】

7.2 实战训练(积分发放)

  1. 点击菜单右侧设置图标,选择【绑定已有页面】,进行菜单与页面的绑定操作

7.2 实战训练(积分发放)

  1. 在绑定页面中,模型选择【事业部】,视图选择【事业部管理】,点击确认按钮提交

7.2 实战训练(积分发放)

  1. 拖动【事业部管理】菜单到【积分管理】父菜单下

7.2 实战训练(积分发放)

  1. 最后别忘了点击右上角【发布】按钮对【事业部管理】表格页面进行发布,回到界面设计器首页查看刚刚建好的两个页面

7.2 实战训练(积分发放)

  1. 以事业部为例分别对门店、导购、会员、积分发放规则、积分发放记录、邀请下单记录等模型进行页面设计,这里不再累赘,请按照自身学习需要,尝试进行界面设计

Step4 通过流程设计器,设计对应业务流程

我们先来整理下核心流程即:邀请下单流程

7.2 实战训练(积分发放)

Step4.1 创建导购邀请下单记录触发流程

  1. 进入流程设计器,点击【创建】按钮

注意:流程中需要获取关系类型的字段(如:O2O、O2M、M2O或M2M),这种类型都是复杂的对象字段,除关联字段(一般为ID)以外的字段,需要通过【数据获取】节点单独获取【关系字段】的对象数据。所以在流程设计中经常会用到【数据获取】节点

7.2 实战训练(积分发放)

  1. 左上角编辑流程名称为【导购邀请下单触发流程】,点击第一个【触发】节点,触发方式选择模型触发,模型选择【导购邀请下单】,触发场景选择【新增数据时】,点击该节点的【保存】按钮

7.2 实战训练(积分发放)

  1. 点击流程图节点间的【+】图标选择增加【获取数据】节点,或者拖动左侧物料区【获取数据】到特定的【+】图标

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 点击【获取数据】,在右侧属性面板中设置【获取数据条数】为单条,选择模型为【导购】,点击【筛选条件】的【{X}】图标,进行数据获取的条件设置

7.2 实战训练(积分发放)

  1. 选择条件字段为【ID】条件操作符为【等于】,条件为变量的导购字段的ID。当上下文只有一个变量时默认不需要选择,这里默认的是【触发[导购邀请下单记录]】,设置好以后点击确认,回到属性面板设置【未获取到数据时执行方式】为【终止流程】,并点击节点【保持】按钮

7.2 实战训练(积分发放)

  1. 再增加一个【获取数据】节点,在右侧属性面板中设置

    a. 【获取数据条数】为单条,选择模型为【会员】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【导购邀请下单记录】的会员关系字段的ID字段。因为上下文中存在多个变量时需要选择对应变量,跟获取导购数据有点区别,在获取导购数据时,上下文中只有此次【导购邀请下单记录】所以不需要选择对应变量,设置好以后点击【确认】按钮

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 新增【条件分支】,分别对分支1和分支2进行条件设置,条件为:【获取数据[会员]】的关系字段【所属导购员】的【ID】字段一个设置【为空】,一个设置【非空】

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[会员]】的关系字段【所属导购员】的【ID】字段【为空】的分支流程中,增加【更新数据】节点,在右侧属性面板中

    a. 【更新模型】选择【获取数据[会员]】

    b. 【字段列表】点击【创建】按钮

    ⅰ. 字段选择 更新【所属导购员】的【ID】

    ⅱ. 表达式设置为:【获取数据[导购]】的【ID】,点击【确认】按钮。

最终完成对【获取数据[会员]】的关系字段【所属导购员】的【ID】字段等于【获取数据[导购]】的【ID】字段的设置,最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 再增加一个【获取数据】节点,在右侧属性面板中设置

    a. 【获取数据条数】为单条,选择模型为【门店】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【导购邀请下单记录】的关系字段【下单门店】的【ID】字段。设置好以后点击【确认】按钮

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 新增【条件分支】,分别对分支1和分支2进行条件设置,条件为:【获取数据[门店]】的【门店类型】字段一个设置为【独立门店】,一个设置【融合门店】。这里条件值没有选择上下文变量,而是选择了选项。选项即字段对应的枚举值,在这个例子中【门店类型】字段类型为数据字典

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[门店]】的【门店类型】字段等于【独立门店】的分支流程中,增加【更新数据】节点,在右侧属性面板中

    a. 【更新模型】选择【触发[导购邀请下单]】

    b. 【字段列表】点击【创建】按钮

    ⅰ. 字段选择 更新【成本事业部】的【ID】

    ⅱ. 表达式设置为:【获取数据[门店]】的关系字段【事业部】的【ID】字段,点击【确认】按钮。

    c. 【字段列表】点击【创建】按钮

    ⅰ. 字段选择 更新【选择积分发放规则】的【ID】

    ⅱ. 表达式设置为:【获取数据[门店]】的关系字段【默认积分发放规则】的【ID】字段,点击【确认】按钮。

最终完成的【触发[导购邀请下单]】更新设置

a. 【触发[导购邀请下单]】的关系字段【成本事业部】的【ID】字段等于【获取数据[门店]】的关系字段【事业部】的【ID】字段

b. 【触发[导购邀请下单]】的关系字段【选择积分发放规则】的【ID】字段等于【获取数据[门店]】的关系字段【默认积分发放规则】的【ID】字段

c. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[门店]】的【门店类型】字段等于【融合门店】的分支流程中,增加【填写】节点,在右侧属性面板中

    a. 【填写模型】选择模型为【触发[导购邀请下单]】

    b. 【选择视图】选择【流程中邀请下单】,这里需要专门为流程增加一个表单页面,因为正常的【导购邀请下单】的表单不需要填写积分发放规则和成本部门

    c. 填写人,选择导购的【绑定用户】,同时加上角色为【超级管理员】方便测试

    d. 数据权限除了【积分发放规则】和【成本部门】需要编辑外,其他都为查看

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 再增加一个【获取数据】节点,在右侧属性面板中设置

    a. 【获取数据条数】为单条,选择模型为【积分发放规则】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【触发[导购邀请下单]】的关系字段【选择积分发放规则】的【ID】字段。设置好以后点击【确认】按钮

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

  2. 再增加一个【获取数据】节点,在右侧属性面板中设置

a. 【获取数据条数】为单条,选择模型为【事业部】

b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【触发[导购邀请下单]】的关系字段【成本事业部】的【ID】字段。设置好以后点击【确认】按钮

c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

d. 最后点击节点【保持】按钮。

  1. 增加【新增数据】节点,在右侧属性面板中设置

    a. 【新增模型】选择模型为【积分发放记录】

    b. 【新增数据的节点】设置为【节点执行完即时增加业务数据】

    c. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择【最终发放积分】

    ⅱ. 表达式设置为:【触发[导购邀请下单]】的【下单金额】字段【乘以】【获取数据[积分发放规则]】的【发放倍数】字段,点击【确认】按钮。

    d. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【积分发放规则】的【ID】

    ⅱ. 表达式设置为:【获取数据[积分发放规则]】的【ID】字段,点击【确认】按钮。

    e. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择【事件编码】

    ⅱ. 表达式设置为:【触发[导购邀请下单]】的【编码】字段,点击【确认】按钮。

    f. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【推荐导购员】的【ID】

    ⅱ. 表达式设置为:【获取数据[导购]】的【ID】字段,点击【确认】按钮。

    g. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【推荐会员】的【ID】

    ⅱ. 表达式设置为:【获取数据[会员]】的关系字段【推荐客户】的【ID】字段,点击【确认】按钮。

    h. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【关系门店】的【ID】

    ⅱ. 表达式设置为:【获取数据[门店]】的【ID】字段,点击【确认】按钮。

    i. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【成本事业部】的【ID】

    ⅱ. 表达式设置为:【触发[导购邀请下单]】的关系字段【成本事业部】的【ID】字段,点击【确认】按钮。

    j. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【会员】的【ID】

    ⅱ. 表达式设置为:【获取数据[会员]】的【ID】字段,点击【确认】按钮。

    k. 【新增数据】点击【创建】按钮 -- 为数据分析预留字段

    ⅰ. 字段选择【成本事业部名称】

    ⅱ. 表达式设置为:【获取数据[事业部]】的【名称】字段,点击【确认】按钮。

    l. 【新增数据】点击【创建】按钮 -- 为数据分析预留字段

    ⅰ. 字段选择【会员名称】

    ⅱ. 表达式设置为:【获取数据[会员]】的【名称】字段,点击【确认】按钮。

    m. 最终完成的【新增数据[积分发放记录]】新增设置,最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 新增【子流程节点】,这里之所以设置为子流程,就跟上面我们业务流程图中画的一样,【导购邀请下单触发流程】已经完成,会员积分累加从业务上来说是独立的,不影响【导购邀请下单触发流程】。我们在右侧属性面板中设置

    a. 【选择模型】设置为【新增数据[积分发放记录]】

    b. 【选择子流程】设置为【创建新的子流程】,并设置子流程名称为【会员积分累加子流程】

    c. 【子流程执行方式】设置为【子流程和后续节点同时进行】

    d. 最后点击节点【保持】按钮

    7.2 实战训练(积分发放)

Step4.2 创建积分发放记录子流程:积分累积子流程

  1. 点击子流程的跳转图标,跳转到子流程的设计页面。子流程的触发模型由主流程指定,无法更改

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 新增【条件分支】,分别对分支1和分支2进行条件设置,条件为:【触发[积分发放记录]】的【最终发放积分】字段一个设置为小于等于100,一个设置大于100。这里条件值没有选择上下文变量,而是选择了数值,因为【最终发放积分】字段为数字的普通类型,所以可以直接填数字

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 在【条件分支】的【触发[积分发放记录]】的【最终发放积分】字段一个设置为大于100的分支流程中,增加【审批】节点,在右侧属性面板中

    a. 【审批模型】选择模型为【触发[积分发放记录]】

    b. 【审批人】选择角色为【超级管理员】

    c. 【数据】权限全部设置为【查看】

    d. 其他配置项默认,需要了解更多请查看产品使用手册

    e. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 再增加一个【获取数据】节点,在右侧属性面板中设置

    a. 【获取数据条数】为单条,选择模型为【会员】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量的关系字段【会员】的【ID】字段。设置好以后点击【确认】按钮。当上下文只有一个变量时默认不需要选择,这里默认的是【触发[积分发放记录]】

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 增加【更新数据】节点,在右侧属性面板中

    a. 【更新模型】选择【获取数据[会员]】

    b. 【字段列表】点击【创建】按钮

    ⅰ. 字段选择 更新【会员累计积分】字段

    ⅱ. 表达式设置为:【获取数据[会员]】的【会员累计积分】字段【加上】【触发[积分发放记录]】的【最终发放积分】字段,点击【确认】按钮。

最终完成的【触发[导购邀请下单]】更新设置

a. 【获取数据[会员]】的【会员累计积分】字段等于自身【加上】【触发[积分发放记录]】的【最终发放积分】字段

b. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 新增【条件分支】,分别对分支1和分支2进行条件设置,条件为:【获取数据[会员]】的关系字段【推荐客户】的【ID】字段一个设置为【为空】,一个设置为【非空】。

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[会员]】的关系字段【推荐客户】的【ID】字段非空,增加【获取数据】节点,在右侧属性面板中

    a. 【获取数据条数】为单条,选择模型为【积分发放规则】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【触发[积分发放记录]】的关系字段【关联积分规则】的【ID】字段。设置好以后点击【确认】按钮。

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[会员]】的关系字段【推荐客户】的【ID】字段非空,增加【获取数据】节点,在右侧属性面板中

    a. 【获取数据条数】为单条,选择模型为【会员】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【获取数据[会员]】的关系字段【推荐客户】的【ID】字段。设置好以后点击【确认】按钮。

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

    e. 编辑节点名字为【推荐客户】

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[会员]】的关系字段【推荐客户】的【ID】字段非空,增加【新增数据】节点,在右侧属性面板中

    a. 【新增模型】选择模型为【积分发放记录】

    b. 【新增数据的节点】设置为【节点执行完即时增加业务数据】

    c. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择【最终发放积分】

    ⅱ. 表达式设置为:【触发[积分发放记录]】的【最终发放积分】字段【乘以】【获取数据[积分发放规则]】的【推荐客户发放比例】字段,点击【确认】按钮。

    d. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【积分发放规则】的【ID】

    ⅱ. 表达式设置为:【获取数据[积分发放规则]】的【ID】字段,点击【确认】按钮。

    e. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择【事件编码】

    ⅱ. 表达式设置为:【触发[积分发放记录]】的【事件编码】字段,点击【确认】按钮。

    f. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【推荐导购员】的【ID】

    ⅱ. 表达式设置为:【触发[积分发放记录]】关系字段【推荐导购员】的【ID】,点击【确认】按钮。

    g. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【关系门店】的【ID】

    ⅱ. 表达式设置为:【触发[积分发放记录]】的关系字段【关系门店】的【ID】,点击【确认】按钮。

    h. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【成本事业部】的【ID】

    ⅱ. 表达式设置为:【触发[积分发放记录]】的关系字段【成本事业部】的【ID】字段,点击【确认】按钮。

    i. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【会员】的【ID】

    ⅱ. 表达式设置为:【推荐客户[会员]】的【ID】字段,点击【确认】按钮。

    j. 【新增数据】点击【创建】按钮 -- 为数据分析预留字段

    ⅰ. 字段选择【成本事业部名称】

    ⅱ. 表达式设置为:【触发[积分发放记录]】的【成本事业部名称】字段,点击【确认】按钮。

    k. 【新增数据】点击【创建】按钮 -- 为数据分析预留字段

    ⅰ. 字段选择【会员名称】

    ⅱ. 表达式设置为:【推荐客户[会员]】的【名称】字段,点击【确认】按钮。

    l. 最终完成的【新增数据[积分发放记录]】新增设置,最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 增加【更新数据】节点,在右侧属性面板中

    a. 【更新模型】选择【推荐客户[会员]】

    b. 【字段列表】点击【创建】按钮

    ⅰ. 字段选择 更新【会员累计积分】字段

    ⅱ. 表达式设置为:【推荐客户[会员]】的【会员累计积分】字段【加上】【新增[积分发放记录]】的【最终发放积分】字段,点击【确认】按钮。

最终完成的【触发[导购邀请下单]】更新设置

a. 【推荐客户[会员]】的【会员累计积分】字段等于自身【加上】【新增[积分发放记录]】的【最终发放积分】字段

b. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

Step4.3 两个流程确保都保持并发布过

流程列表页查看流程状态图标

7.2 实战训练(积分发放)

Step5 基础数据管理

流程前提:基础数据通过管理页面已经建好,后面看实战效果的基础数据为:

  1. 事业部:国一事业部、国二事业部

  2. 门店:国一独立门店01(绑定:国一事业部,积分发放规则:正常发放)、国二独立门店01(绑定:国二事业部,积分发放规则:双倍发放)、融合门店01

  3. 导购员:国一独立门店导购-cpc(绑定:国一独立门店01)、国二独立门店导购-温振(绑定:国二独立门店01)、融合门店导购-梦瑶(绑定:融合门店01)

  4. 会员:会员1001(导购绑定:融合门店导购-梦瑶)、会员1002(导购绑定:国二独立门店导购-温振、推荐会员绑定:会员1001)、会员1003(导购绑定:未绑定、推荐会员绑定:会员1001)、

  5. 积分发放规则:双倍发放(发放倍数:2、推荐客户发放比例:0.5)、正常发放(发放倍数:1、推荐客户发放比例:0.2)

Step6 走业务流程,看效果

Step6.1 用例设计1

新建【导购邀请下单记录】如下:

  1. 门店选择:国一独立门店01

  2. 导购选择:国一独立门店导购-cpc

  3. 会员选择:会员1003

  4. 商品填写:测试商品1001

  5. 下单金额:12

  6. 事件编码:O1001

期望结果:

  1. 【会员1003】的【所属于导购员】字段更新为:【国一独立门店导购-cpc】

  2. 【会员1003】的【会员累计积分】字段在原有值上增加【12】

  3. 【会员1001】的【会员累计积分】字段在原有值上增加【2.4】

  4. 新增两条【积分发放记录】

会员 关系门店 最终发放积分 关联积分规则 事件编码 推荐导购员 成本事业部 推荐会员
会员1003 国一独立门店01 12 正常发放 O1001 国一独立门店导购-cpc 国一事业部 会员1001
会员1001 国一独立门店01 2.4 正常发放 O1001 国一独立门店导购-cpc 国一事业部

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

Step6.2 用例设计2

新建【导购邀请下单记录】如下:

  1. 门店选择:融合门店01

  2. 导购选择:融合门店导购-梦瑶

  3. 会员选择:会员1001

  4. 商品填写:测试商品1002

  5. 下单金额:12

  6. 事件编码:O1002

期望结果:

  1. 出现填写节点,【选择积分发放规则】:双倍发放,【成本事业部】:国二事业部

  2. 【会员1001】的【会员累计积分】字段在原有值上增加【24】

  3. 新增一条【积分发放记录】

会员 关系门店 最终发放积分 关联积分规则 事件编码 推荐导购员 成本事业部 推荐会员
会员1001 融合门店01 24 双倍发放 O1002 融合门店导购-梦瑶 国二事业部

7.2 实战训练(积分发放)

Step6.3 用例设计3

新建【导购邀请下单记录】如下:

  1. 门店选择:国二独立门店01

  2. 导购选择:国二独立门店导购-温振

  3. 会员选择:会员1002

  4. 商品填写:测试商品1003

  5. 下单金额:60

  6. 事件编码:O1003

期望结果:

  1. 出现审批,审批通过

  2. 【会员1002】的【会员累计积分】字段在原有值上增加【120】

  3. 【会员1001】的【会员累计积分】字段在原有值上增加【60】

  4. 新增两条【积分发放记录】

会员 关系门店 最终发放积分 关联积分规则 事件编码 推荐导购员 成本事业部 推荐会员
会员1002 国二独立门店01 120 双倍发放 O1003 国二独立门店导购-温振 国二事业部 会员1001
会员1001 国二独立门店01 60 双倍发放 O1003 国二独立门店导购-温振 国二事业部

7.2 实战训练(积分发放)

Step6.4 用例设计4

新建【导购邀请下单记录】如下:

  1. 门店选择:国一独立门店01

  2. 导购选择:国二独立门店导购-温振

  3. 会员选择:会员1002

  4. 商品填写:测试商品1003

  5. 下单金额:60

  6. 事件编码:O1004

期望结果:

  1. 【会员1002】的【会员累计积分】字段在原有值上增加【60】

  2. 【会员1001】的【会员累计积分】字段在原有值上增加【12】

  3. 新增两条【积分发放记录】

会员 关系门店 最终发放积分 关联积分规则 事件编码 推荐导购员 成本事业部 推荐会员
会员1002 国一独立门店01 60 正常发放 O1004 国二独立门店导购-温振 国一事业部 会员1001
会员1001 国一独立门店01 12 正常发放 O1004 国二独立门店导购-温振 国一事业部

7.2 实战训练(积分发放)

Step7 通过数据可视化,设计相应的数据看板

Step7.1 事业部积分发放分析

  1. 进入数据可视化【图表】设计页,点击创建一级分组,在分组栏中会多出一行,并填入积分发放综合分析

7.2 实战训练(积分发放)

  1. 鼠标放到一级分组上会出现增加二级分组和删除入口,点击图标“+”,创建两个二级分组分别为:积分发放分析和订单下单分析

7.2 实战训练(积分发放)

  1. 选中二级分组【积分发放分析】出现【添加图标】操作入口,点击添加图表

7.2 实战训练(积分发放)

  1. 在创建图表弹出框中

    a. 【图表标题】填入【事业部积分成本分析】

    b. 【模型】选择【积分发放记录】

    c. 【方法】选择【根据条件分页查询记录列表和总数】

    d. 最后点击节点【确定】按钮

7.2 实战训练(积分发放)

  1. 上一步点击【确定】按钮后自动进入【事业部积分成本分析】图表设计页面。

    a. 【维度】选择【成本事业部名称】

    b. 【数值】选择【最终发放积分】

    c. 点击右上角【保存】,并点击左上角【< 事业部积分成本分析】返回图表管理入口

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 点击右上角【发布】按钮,即完成一个图表的开发。更多图表设计细节请查阅对应的产品使用手册
    7.2 实战训练(积分发放)

  2. 当有业务数据的时候展示

7.2 实战训练(积分发放)

Step7.2 会员积分分析

  1. 选中二级分组【积分发放分析】出现【添加图标】操作入口,点击添加图表。在创建图表弹出框中

    a. 【图表标题】填入【会员累计获取积分分析】

    b. 【模型】选择【积分发放记录】

    c. 【方法】选择【根据条件分页查询记录列表和总数】

    d. 最后点击节点【确定】按钮

7.2 实战训练(积分发放)

  1. 进入【会员累计获取积分分析】图表设计页面。

    a. 【维度】选择【会员名称】

    b. 【数值】选择【最终发放积分】

    c. 【对比】选择【成本事业部名称】

    d. 点击右上角【保存】,并点击左上角【< 会员累计获取积分分析】返回图表管理入口

7.2 实战训练(积分发放)

  1. 点击右上角【发布】按钮,即完成该图表的开发

7.2 实战训练(积分发放)

Step7.3 商品下单金额分析

  1. 选中二级分组【订单下单分析】出现【添加图标】操作入口,点击添加图表。在创建图表弹出框中

    a. 【图表标题】填入【商品购买金额分析】

    b. 【模型】选择【导购邀请下单】

    c. 【方法】选择【根据条件分页查询记录列表和总数】

    d. 最后点击节点【确定】按钮

7.2 实战训练(积分发放)

  1. 进入【商品购买金额分析】图表设计页面。

    a. 图表形式切换为【饼图】

    b. 【维度】选择【购买商品】

    c. 【数值】选择【下单金额】

    d. 右侧属性面板设置

    ⅰ. 【展示标签】为【开启】

    1. 勾选【购买商品】

    ⅱ. 【展示图例】为【开启】

    1. 勾选【购买商品】

    2. 勾选【数值】

    e. 点击右上角【保存】,并点击左上角【< 会员累计获取积分分析】返回图表管理入口

7.2 实战训练(积分发放)

  1. 点击右上角【发布】按钮,即完成该图表的开发

7.2 实战训练(积分发放)

Step7.4 设计综合分析报表

  1. 进入数据可视化【报表】设计页,点击创建一、二级分组,分别为【积分分析报表】、【积分综合报表】,选中二级分组【积分综合报表】出现【添加图标】操作入口,在分组栏中会多出一行,并填入积分发放综合分析

7.2 实战训练(积分发放)

  1. 选中二级分组【积分发放综合分析】,点击右上角【选择图表】,把上面建的三张图表都选上

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 选完图表后,拖动图表大小和所在位置即完成了报表的设计,最后别完了点击【发布】按钮

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

Step7.5 把报表挂载到页面上并邦上菜单

简单描述:新建名为【积分综合分析页】的页面,选择模型【积分发放记录】,页面类型设置为【详情】,并在左侧【组件】选项卡下找到【报表】组件,拖入到设计器区并在其属性面板中选择展示报表。新建菜单【积分数据分析】并绑定已有页面【积分综合分析页】,最后点击【发布】按钮

这里新建页面不过多赘诉,更多细节可参阅产品操作手册

7.2 实战训练(积分发放)

Oinone社区 作者:史, 昂原创文章,如若转载,请注明出处:https://doc.oinone.top/oio4/9334.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(0)
史, 昂的头像史, 昂数式管理员
上一篇 2024年5月23日
下一篇 2024年5月23日

相关推荐

  • 集成平台

    1. 集成介绍 集成是指平台应用与外部系统之间的集成,平台内部应用之间直接内部服务调用。 在讲解集成设计之前先了解以下概念: 集成资源:在实际业务场景中需要将多个系统打通,针对单一的一方,我们称之为集成资源。集成资源可以是具体的数据服务合集,例如系统应用、数据库、FTP服务、域控服务等。 连接器:连接具体集成资源,以供后续实际集成时使用的connector。 数据流程:通过流程编排的方式,让集成也可以可视化的处理,提升集成作业效率。 集成平台通过连接器、数据流程的编排实现与外部系统的数据互通,包括:连接器、数据流程、流程日志三部分功能。 集成操作整体流程: 2. 连接器 支持集成应用、数据库两大类型的资源。 页面操作包括:新增、编辑、查看引用、删除,点击卡片进入API列表管理接口。 2.1 连接器之应用 2.1.1 新增应用 操作入口:在连接器、应用Tab页面——新增应用资源。 2.1.2 编辑应用 编辑应用同新增页面信息,不做赘述。 2.1.3 删除应用 允许删除未被引用的应用,已被引用的不允许删除。 2.1.4 应用详情 点击应用卡片进入应用详情,查看应用基础信息、集成的接口清单。 2.1.5 API接口 操作入口:新增资源后,点击连接器卡片,进入API管理页面。 页面操作:新增、删除、编辑、详情、返回连接器。 2.1.5.1 新增API 输入基础信息、请求参数、定义响应结果; API URL支持: 协议类型:HTTP/HTTPS Verb:GET、POST、PUT、DELETE 参数类型支持:Long、Double、String、Boolean、Integer、Date、Void、Object。 2.1.5.2 新增WebService 输入基础信息、请求参数、定义响应结果; API URL支持: 协议类型:HTTP/HTTPS Verb:POST 参数类型支持:Long、Double、String、Boolean、Integer、Date、Void、Object。 2.1.5.3 编辑 编辑同新增页面信息,不做赘述。 2.1.5.4 删除 删除API接口后不能继续使用,请慎重。 2.1.6 查看引用 查看引用应用资源的接口。 2.2 连接器之资源 2.2.1 新增数据库资源 操作入口:在连接器页面,切换到数据库页面——新增DB资源。 2.2.2 编辑应用 编辑应用同新增页面信息,不做赘述。 2.2.3 删除应用 允许删除未被引用的应用,已被引用的不允许删除。 2.2.4 查看引用 查看引用数据库的接口。 2.2.5 数据库详情 点击应用卡片进入数据库连接器详情,查看应用基础信息、集成的接口清单,新增API。 2.2.6 API接口 2.2.6.1 新增API 输入基础信息、请求参数、数据库操作、定义响应结果。 2.2.6.2 编辑 编辑同新增页面信息,不做赘述。 2.2.6.3 删除 删除API接口后不能继续使用,请慎重。 3. 数据流程 3.1.1 数据流程介绍 数据流程:通过流程编排的手段,可视化的配置、处理集成的数据流程,提升集成作业效率。 主要包含基本操作和流程设计两个部分。前者包含了流程的新增、删除、复制、停用/启用、设计/编辑、搜索。后者包含单一流程的基础信息修改、流程设计、参数配置、保存、发布。 3.1.2 流程的基本操作 3.1.2.1 新增流程 新增流程,点击后进入流程设计页面,流程名默认为“未命名流程”,可自行修改。 3.1.2.2 设计/编辑 点击编辑进入该流程的设计页面。 3.1.2.3 停用/启用 流程需要更新或暂时不用时可以使用停用功能。流程停用后将不会执行流程,正在执行中的流程不受停用影响。 针对停用流程,点击启用按钮,流程恢复启用状态,可正常触发。 3.1.2.4 复制 遇到流程节点动作相似度较高的情况可以使用复制流程的功能,点击按钮后生成一个“原流程名-复制”的流程,并且进入新流程的流程设计界面。 3.1.2.5 删除 遇到流程创建有误,没有使用过且将来也不会使用该流程,可以删除流程。需要注意的是,删除流程的前提是该流程已停用,并且该流程从未执行过。 3.1.3 流程设计 通过新增、编辑/设计动作进入流程设计页后,可以进行流程名称、流程说明的编辑,可以进行流程设计,流程参数配置,保存和发布。 3.1.3.1 流程配置 点击进入流程配置页面,若需要配置一些参数供流程使用,可在此添加和删除。删除流程参数时,若该参数已在流程中被使用则无法删除。参数支持文本、数值、日期、布尔四种类型。 3.1.3.2 保存 点击后流程设计进行存档,流程设计不完整也支持保存,下次进入流程设计回到保存的页面。 3.1.3.3 发布 第一次发布时右上角发布显示文字为发布流程,后续发布按钮显示文字为更新发布。发布后流程才会按照设计触发,首次发布和更新发布的逻辑一致,若流程中有未解决的错误则无法发布不成功,发布成功后页面跳转到显示全部流程的页面,流程状态为已启用、已更新。 3.1.4 流程触发 新增的流程设计页面默认包含两个节点,一个是流程的触发节点:确定流程开始的条件;另一个是流程结束的节点。 流程触发方式有定时触发、消息触发两种方式,未设置流程触发方式时无法继续添加后续流程节点,同时无法进行流程发布,如左下图。触发方式设置完成后,可从左侧菜单栏拖入或流程箭头中的加号点击添加节点动作,如下图。 3.1.4.1 定时触发 定时触发适用于周期性调用流程的场景,设置流程第一次执行的时间,配置循环的周期间隔。 3.1.4.2 消息触发 消息触发方式下,识别消息任务的唯一标识,标识可复用。在发送消息时,必须匹配定义的消息标识。 3.1.5节点动作 3.1.5.1 集成服务 集成服务API,选择集成的应用、此应用下的API,配置相应的参数。 3.1.5.2 数据处理 【新增数据】节点:同流程设计器; 【更新数据】节点:同流程设计器; 【获取数据】节点:同流程设计器; 【删除数据】节点:同流程设计器; 【更新流程参数】节点:同流程设计器; 【引用逻辑】节点:同流程设计器; 3.1.5.3 构建 【延时】节点:同流程设计器; 【条件分支】节点:同流程设计器; 【子流程】节点:同流程设计器; 【循环】节点 循环模式:次数循环、列表循环; 次数循环:需配置循环开始值、循环结束值、循环步长; 列表循环:配置需要循环的列表; 均使用表达式配置相应字段, 3.1.5.4 通知消息 【站内信】节点:同流程设计器; 【邮件】节点:同流程设计器; 【短信】节点:同流程设计器; 4. 流程日志 查看流程执行的情况,包括执行状态、执行时间、执行时长,针对异常流程,可以重试。 详情:查看流程日志、日志详情。

    2024年6月20日
    1.3K00
  • 4.1 后端高级特性

    了解oinone的基础入门基本上可以胜任业务代码的开发,但对于构建一个完善的应用,作为技术专家或者架构需要考虑的方面还有很多,这章期望能给到您解答构建应用的所有所需知识,让您能成为那个可以带领小伙伴飞的人

  • 6.1 文件与导入导出(改)

    导入导出在一定程度上是企业级软件和效率工具(office工具)的桥梁 文件的上传下载以及业务数据的导入导出是企业级软件一个比较常规的需求,甚至是巨量的需求。业务有管理需要一般都伴随有导入导出需求,导入导出在一定程度上是企业级软件和效率工具(office工具)的桥梁。oinone的文件模块就提供了通用的导入导出实现方案,以简单、一致、可扩展为目标,简单是快速入门,一致是用户操作感知一致、可扩展是满足用户最大化的自定义需求。 下图为文件导入导出的实现示意图,大家可以做一个整体了解 图6-1-1 文件导入导出实现示意图 一、基础能力 准备工作 pamirs-demo-api的pom文件中引入pamirs-file2-api包依赖 <dependency> <groupId>pro.shushi.pamirs.core</groupId> <artifactId>pamirs-file2-api</artifactId> </dependency> 图6-1-2 引入pamirs-file2-api包依赖 DemoModule增加对FileModule的依赖 @Module(dependencies = {FileModule.MODULE_MODULE}) 图6-1-3 DemoModule增加对FileModule的依赖 pamirs-demo-boot的pom文件中引入pamirs-file2-core包依赖 <dependency> <groupId>pro.shushi.pamirs.core</groupId> <artifactId>pamirs-file2-core</artifactId> </dependency> 图6-1-4 启动工程引入pamirs-file2-core包依赖 pamirs-demo-boot的application-dev.yml文件中增加配置pamirs.boot.modules增加file,即在启动模块中增加file模块 pamirs: boot: modules: – file 图6-1-5 pamirs-demo-boot的application-dev.yml文件中增加配置 pamirs-demo-boot的application-dev.yml文件中增加oss的配置。更多有关文件相关配置详见4.1.1【模块之yml文件结构详解】一文 cdn: oss: name: 阿里云 type: OSS bucket: demo uploadUrl: #换成自己的oss上传服务地址 downUrl: #换成自己的oss下载服务地址 accessKeyId: #阿里云oss的accessKeyId accessKeySecret: #阿里云oss的accessKeySecret mairDir: upload/demo #换成自己的目录 validTime: 360000 timeout: 60000 active: true referer: www.shushi.pro 图6-1-6 application-dev.yml文件中增加oss的配置 其他文件系统支持 a. 文件系统类型 类型 服务 OSS 阿里云 UPYUN 又拍云 MINIO Minio HUAWEI_OBS 华为云 LOCAL 本地文件存储 表6-1-1 支持的文件系统类型 b. OSS配置示例 ⅰ. 华为云OBS cdn: oss: name: 华为云 type: HUAWEI_OBS bucket: pamirs #(根据实际情况修改) uploadUrl: obs.cn-east-2.myhuaweicloud.com downloadUrl: obs.cn-east-2.myhuaweicloud.com accessKeyId: 你的accessKeyId accessKeySecret: 你的accessKeySecret # 根据实际情况修改 mainDir: upload/ validTime: 3600000 timeout: 600000 active: true allowedOrigin: http://192.168.95.31:8888,https://xxxx.xxxxx.com referer: 图6-1-7 OBS的配置说明 ⅱ. MINIO cdn: oss: name: minio type: MINIO bucket: pamirs #(根据实际情况修改) uploadUrl: http://192.168.243.6:32190 #(根据实际情况修改) downloadUrl: http://192.168.243.6:9000 #(根据实际情况修改) accessKeyId: 你的accessKeyId accessKeySecret: 你的accessKeySecret # 根据实际情况修改 mainDir: upload/ validTime: 3600000 timeout: 600000 active: true referer: localFolderUrl: 图6-1-8 MINIO的配置说明 ⅲ. 又拍云 cdn: oss: name: 又拍云 type: UPYUN bucket: pamirs #(根据实际情况修改) uploadUrl: v0.api.upyun.com downloadUrl: v0.api.upyun.com accessKeyId: 你的accessKeyId accessKeySecret: 你的accessKeySecret # 根据实际情况修改 mainDir: upload/ validTime: 3600000 timeout: 600000…

    2024年5月23日
    77400
  • 5.6 商业支撑之商品域

    一、基础介绍 当业务在线化后,用于内部管理的产品主数据,叠加一堆销售属性变成了商品被推倒了前台,成为导购链路中最最重要的信息载体。看似最基础和最简单的商品模块也有很多门道。主要集中在以下几个方面: 商品的属性如何管理、呈现、参与导购(类目、搜索的过滤条件) 如何解决固定不变的内部管理需求与基于销售特性长期变化的运营需求之间的矛盾 在多渠道情况渠道商品,如何映射到实际sku进行履约 二、模型介绍 图5-6-1 模型介绍 类目属性,解决“商品的属性如何管理、呈现、参与导购(类目、搜索的过滤条件)” 前后台类目设计,解决“如何解决固定不变的内部管理需求与基于销售特性长期变化的运营需求之间的矛盾” 销售Sku和库存Sku设计,解决“在多渠道情况渠道商品,如何映射到实际sku进行履约” 要把这些问题搞清楚,得先把名词统一下: 领域 名称 oinone的定义 说明 举例 平台运营视角 Spu Product –>Spu2.1.9 –> 3.0.0 SPU(Standard Product Unit):标准化产品单元。SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性 iPhone X可以确定一个产品 后台类目 后台类目(Category) 商品分类分级管理,以及规范该类目下公共属性可以分为普通属性、销售属性 比如类目:3c数码/手机销售属性:内存大小、颜色等普通属性:分辨率 前台类目 前台类目(FrontCategory) 平台导购类目 通过前台类目关联后台类目或后台类目属性,用于满足运营需求 大体上SPU处于最上层、Item属于下一级,而SKU属于最低一层。SPU是平台层面,Item是商家层面,SKU是商家的Item确定销售属性SPU非必须,在平台类交易中,平台方为了规范商家发布商品信息,进行统一运营时需要 商家销售视角 Item 渠道商品(Item) 简单来说是:SPU加上归属商家、以及商家自有的价格与描述 商家A的iPhone X Sku 销售Sku(SaleSku) SKU=Stock Keeping Unit(库存保有单位)。是对每一个产品和服务的唯一标示符,该系统的使用SKU的值根于数据管理,使公司能够跟踪系统,如仓库和零售商店或产品的库存情况。 iPhone X 64G 银色 则是一个SKU。 店铺类目 ShopCategory 商家店铺导购类目 在平台类电商,商家都会有自己独立的店铺主页,商家类目跟前台类目作用类似,只是局限影响范围为商家店铺内 销售SKU中会有一个InvSkuCode来关联InventorySku,比如:品牌上在不同渠道(淘宝、京东、自建电商)中会有不同的销售SKU,在从渠道同步销售SKU会根据外部code 商家管理视角 产品或库存Sku InventorySku 跟销售领域的sku的定义类似,但销售领域是为了规范购买行为,这里规范企业内部管理。 iPhone X 64G 银色 组合Sku InventorySkuComposition 空调有内外机组合而成,这就是一个组合sku 产品分类 ProductKind 企业内部管理划分 商品系列 ItemSeries 指互相关联或相似的产品,是按照一定的分类标准对企业生产经营的全部产品进行划分的结果。一个产品系列内往往包括多个产品项目。产品系列的划分标准有产品功能、消费上的连带性、面向的顾客群、分销渠道、价格范围等 存货类别 StorageKind 为了反映存货的组成内容,正确计算产品的生产成本以及销售成本,会计上必须对存货进行科学地分类,按存货的不同类别进行核算 表5-6-1 各领域名称说明

    2024年5月23日
    77800
  • 4.1.13 Action之校验

    在3.5.3【Action的类型】一文中有涉及到“ServerAction之校验”部分,本文介绍一个特殊的写法,当内置函数和表达式不够用的时候,怎么扩展。还是拿PetShopProxyAction举例,修改如下: package pro.shushi.pamirs.demo.core.action; ……引依赖类 @Model.model(PetShopProxy.MODEL_MODEL) @Component public class PetShopProxyAction extends DataStatusBehavior<PetShopProxy> { ……其他代码 // @Validation(ruleWithTips = { // @Validation.Rule(value = "!IS_BLANK(data.code)", error = "编码为必填项"), // @Validation.Rule(value = "LEN(data.shopName) < 128", error = "名称过长,不能超过128位"), // }) @Validation(check = "checkName") @Action(displayName = "启用") @Action.Advanced(rule="activeRecord.code !== undefined && !IS_BLANK(activeRecord.code)") public PetShopProxy dataStatusEnable(PetShopProxy data){ data = super.dataStatusEnable(data); data.updateById(); return data; } @Function public Boolean checkName(PetShopProxy data) { String field = "name"; String name = data.getShopName(); boolean success = true; if (StringUtils.isBlank(name)) { PamirsSession.getMessageHub() .msg(Message.init() .setLevel(InformationLevelEnum.ERROR) .setField(field) .setMessage("名称为必填项")); success = false; } if (name.length() > 128) { PamirsSession.getMessageHub() .msg(Message.init() .setLevel(InformationLevelEnum.ERROR) .setField(field) .setMessage("名称过长,不能超过128位")); success = false; } return success; } ……其他代码 } 图4-1-13-1 PetShopProxyAction扩展配置 注: check属性指定了校验函数名称,命名空间必须与服务器动作一致。 校验函数的入参必须与服务器动作一致 使用PamirsSession#getMessageHub方法可通知前端错误的属性及需要展示的提示信息,允许多个。

Leave a Reply

登录后才能评论