欢迎光临散文网 会员登陆 & 注册

SpringBoot 3 + Flutter3 实战低代码运营管理-10章

2023-11-23 22:34 作者:bili_48219728313  | 我要投稿

参考资料1:https://pan.baidu.com/s/1sE93jgG-x3QwuVbbKtG_vQ 提取码:2nli 

参考资料2:https://pan.baidu.com/s/1xXEFkvYj_0ZX2l2zZShA7w 提取码:d2nw 


技术人员唯有多领域发展,才能具备抓住最佳机会和心仪Offer的实力。《SpringBoot 3 + Flutter3 实战低代码运营管理》将带你基于全栈技术(SpringBoot 3+Flutter3),全流程打造多端低代码运营管理平台,助你急速打通“全栈+跨端“综合技能,更快胜任多领域岗位,先人一步成为企业青睐的 “驾驭全局,深广兼备,打通端到端全技能” 的全能型人才。


从技术到业务,从思维到落地,打造深广兼备的全能型人才

App + Web + Server 打造技术开发的全面能力

测试 + 文档 构建完整的项目质量保障能力

容器部署 + 多类型数据库迁移 掌握复杂项目运维能力


原生低代码方案设计 积累热门业务综合实战经验

实践 Web 端和 APP 端兼顾可拖拽的,所见即所得的布局编辑器

落地" 需求理解->快速搭建原型->验证需求->迭代改进 "企业项目迭代模式

采用原生的低代码方案,保障性能要求和风格协调性


全局思维贯穿始终 提升全方位架构设计能力

多层次抽象封装,多端共享领域模型和组件,多维度打通大型项目的可

维护、可拓展设计思维

兼具前端、后端、安全、测试多领域视野,提高方案设计创造力和可落地性


工程化解决方案落地实践 掌握开发效率与质量保障硬技能

解锁测试驱动开发,自动化测试提高代码质量

实践代码重构改造的更优方案,提高可维护、可扩展性

掌握 “模块化-组件化“ 开发方案,降低耦合度,提高复用率


以下是开发流程:


在 com.example.his.api.mis.service.impl包UserServiceImpl.java类中,实现抽象方法。

@Service

public class UserServiceImpl implements UserService {

    @Resource

    private UserDao userDao;


    @Override

    public Integer login(Map param) {

        String username = MapUtil.getStr(param, "username");

        String password = MapUtil.getStr(param, "password");

        MD5 md5 = MD5.create();

        String temp = md5.digestHex(username);

        String tempStart = StrUtil.subWithLength(temp, 0, 6);

        String tempEnd = StrUtil.subSuf(temp, temp.length() - 3);

        password = md5.digestHex(tempStart + password + tempEnd).toUpperCase();

        param.replace("password", password);

        Integer userId = userDao.login(param);

        return userId;

    }

}

加载部门列表和角色列表

为了实现user.vue页面的部门列表和角色列表可以动态加载数据,我们必须编写TS代码利用Ajax请求获取数据,于是需要声明两个封装函数,分别用于加载角色列表和部门列表数据。

function loadRoleList() {

    proxy.$http('/mis/role/searchAllRole', 'GET', null, true, function (resp) {

        dataForm.roleList = resp.list;

    });

}

function loadDeptList() {

    proxy.$http('/mis/dept/searchAllDept', 'GET', null, true, function (resp) {

        dataForm.deptList = resp.list;

    });

}


//执行两个封装函数

loadRoleList();

loadDeptList();


加载用户分页数据

定义一个查询分页数据的封装函数,将来会多次用到。比如添加、修改和删除了用户记录之后,都需要重新加载分页记录,所以定义封装函数的目的就是将来调用更方便。

function loadDataList() {

    data.loading = true;

    let json = {

        page: data.pageIndex,

        length: data.pageSize,

        name: dataForm.name,

        sex: dataForm.sex,

        role: dataForm.role,

        deptId: dataForm.deptId,

        status: dataForm.status

    };

    proxy.$http('/mis/user/searchByPage', 'POST', json, true, function (resp) {

        let page = resp.page;

        let list = page.list;

        for (let one of list) {

            if (one.status == 1) {

                one.status = '在职';

            } else if (one.status == 2) {

                one.status = '离职';

            }

        }

        data.dataList = list;

        data.totalCount = page.totalCount;

        data.loading = false;

    });

}


//调用封装函数,加载分页记录

loadDataList();


编写持久层代码

在UserDao.xml文件中,声明两条SQL语句。其中desc字段是关键字,所以需要转义处理。

<select id="searchById" parameterType="int" resultType="HashMap">

    SELECT id,

           dept_name AS deptName,

           tel,

           email,

           `desc`

    FROM tb_dept

    WHERE id = #{id}

</select>


<update id="update" parameterType="com.example.his.api.db.pojo.DeptEntity">

    UPDATE tb_dept

    SET dept_name=#{deptName},

        tel=#{tel},

        email=#{email},

        `desc`=#{desc}

    WHERE id = #{id}

</update>

在com.example.his.api.mis.controller包DeptController.java类中,声明Web方法。

@RestController

@RequestMapping("/mis/dept")

public class DeptController {

    ……

    @PostMapping("/searchById")

    @SaCheckPermission(value = {"ROOT", "DEPT:SELECT"}, mode = SaMode.OR)

    public R searchById(@Valid @RequestBody SearchDeptByIdForm form) {

        HashMap map = deptService.searchById(form.getId());

        return R.ok().put("result", map);

    }


    @PostMapping("/update")

    @SaCheckPermission(value = {"ROOT", "DEPT:UPDATE"}, mode = SaMode.OR)

    public R update(@Valid @RequestBody UpdateDeptForm form) {

        DeptEntity dept = new DeptEntity();

        dept.setId(form.getId());

        dept.setDeptName(form.getDeptName());

        dept.setTel(form.getTel());

        dept.setEmail(form.getEmail());

        dept.setDesc(form.getDesc());

        int rows = deptService.update(dept);

        return R.ok().put("rows", rows);

    }

}

项目总结:本项目是一个多端低代码运营管理平台。在保障性能的前提下,帮助运营人员从容应对因为公司各种活动宣传,需要频繁发布新版应用的需求。希望大家会喜欢这个项目!


SpringBoot 3 + Flutter3 实战低代码运营管理-10章的评论 (共 条)

分享到微博请遵守国家法律