帝可得 - 策略管理
一. 需求说明
策略管理主要涉及到二个功能模块,业务流程如下:
-
新增策略: 允许管理员定义新的策略,包括策略的具体内容和参数(如折扣率)
-
策略分配: 将策略分配给一个或多个售货机。
graph TD A[登录系统] A --> B[新增策略] B --> C[策略分配]
对于策略和其他管理数据,下面是示意图:
-
关系字段:policy_id
二. 生成基础代码
2.1 创建目录菜单
2.2 配置代码生成信息
2.3 下载代码并导入项目
-
执行sql脚本
-
前端代码
-
后端代码
效果:
三. 策略管理改造
3.1 需求
参考页面原型,完成基础布局展示改造和策略详情改造(查看详情,展示策略名称和该策略下的设备列表)
3.2 代码实现
在policy/index.vue视图组件中修改基础布局
{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
修改
删除
在policy/index.vue视图组件中修改策略详情
查看详情
效果👇
四. 设备策略分配
4.1 需求
在设备管理页面中点击策略,对设备设置一个固定折扣,用于营销作用
4.2 实现
有以下几步
-
定义策略按钮以及方法
-
import引入js获取策略列表的请求方法,向前端发送请求接收响应
-
根据产品原型编写对话框组件
-
点击确定/取消按钮时关闭策略管理对话框
在vm/index.vue视图组件中修改前端
策略
在VendingMachineServiceImpl中修改后端逻辑
/**
* 修改设备管理
*
* @param vendingMachine 设备管理
* @return 结果
*/
@Override
public int updateVendingMachine(VendingMachine vendingMachine)
{
if (vendingMachine.getNodeId()!=null) {
// 查询点位表,补充:区域、点位、合作商等信息
Node node = nodeService.selectNodeById(vendingMachine.getNodeId());
BeanUtil.copyProperties(node,vendingMachine,"id");// 商圈类型、区域、合作商
vendingMachine.setAddr(node.getAddress());// 设备地址
}
vendingMachine.setUpdateTime(DateUtils.getNowDate());// 更新时间
return vendingMachineMapper.updateVendingMachine(vendingMachine);
}
效果👇