自学内容网 自学内容网

帝可得-运营管理App

运营管理App

Android模拟器

本项目的App客户端部分已经由前端团队进行开发完成,并且以apk的方式提供出来,供我们测试使用,如果要运行apk,需要先安装安卓的模拟器。

可以选择国内的安卓模拟器产品,比如:网易mumu、雷电、夜神等。课程中使用网易mumu模拟器,官网地址:http://mumu.172.com/。百度网盘中提供了mumu安装包,大家安装到非中文路径即可。

在这里插入图片描述

资料中提供了运营管理App端安装包

在这里插入图片描述

需要让模拟器中的App能够连接我们自己本地代码,需要修改下URL地址:本地环境就是搭建的后端dkd-app,运行端口就是9007。需要通过安卓访问windows环境,所以不能写localhost,访问这个环境mumu模拟器有固定的ip10.0.0.2

在这里插入图片描述

Java后端

本项目运营管理App的java后端已开发完成,在资料中已提供源码,导入idea中即可

在这里插入图片描述

本项目连接的也是dkd数据库,如果密码不是root可以进行修改

在这里插入图片描述

app端和后端的联调测试

选择一个运营或运维人员手机号进行登录,验证码默认为12345。

在这里插入图片描述

功能测试

投放工单

帝可得管理端,创建新设备

在这里插入图片描述

在这里插入图片描述

帝可得管理端,创建投放工单

在这里插入图片描述

在这里插入图片描述

运营管理App端登录负责此工单员工,即可查看待办工单,可以选择拒绝、接受

在这里插入图片描述
在这里插入图片描述

如果点击接受,帝可得管理端工单状态改为进行

在这里插入图片描述

在进行工单界面,可以点击查看详情,选择取消、完成

在这里插入图片描述
在这里插入图片描述

如果点击完成工单,帝可得管理端工单状态改为完成

在这里插入图片描述

帝可得管理端设备状态改为运营,表示设备投放成功

在这里插入图片描述

补货工单

帝可得管理端,货道关联商品。

在这里插入图片描述

帝可得管理端,创建补货工单

在这里插入图片描述

在这里插入图片描述

运营管理App端登录负责此工单员工,即可查看待办工单,可以选择拒绝、接受

在这里插入图片描述
在这里插入图片描述

如果点击接受,帝可得管理端工单状态改为进行

在这里插入图片描述

在进行工单界面,可以点击查看详情,选择取消、完成

在这里插入图片描述

在这里插入图片描述

如果点击完成工单,帝可得管理端工单状态改为完成

在这里插入图片描述

数据库货道表的库存已同步更新

在这里插入图片描述

源码介绍

运营管理App的java后端技术栈:SpringBoot+MybatisPlus+阿里云短信

在这里插入图片描述

SpringBoot做为后端得框架,MybatisPlus做为数据访问层的工具简化Mybatis的编写,阿里云短信服务用于发送短信通知。

项目分为三个核心模板:员工管理、工单管理和工单详情管理。

在这里插入图片描述

员工管理

发送短信验证码

接收app端传送的手机号。当用户在app输入手机号点击获取验证码的按钮,它就会向后台发送请求来执行此方法。通过路径参数拿到手机号,调用service实现发送短信的功能。

在这里插入图片描述

在service方法中使用RandomUtil生成5位随机的验证码,由于是开发环境,这里暂时将验证码写死位12345。但是在产品上线之前,需要将代码打开。生成完毕之后需要调用阿里云短信的工具类,实现发送短信的功能。短信发送完之后需要往redis中存储生成的验证码,设置有效时间位5分钟,在5分钟内做登录的话,就可以从redis中获取正确的验证码,与app端输入的验证码进行比对。
在这里插入图片描述

短信工具类的模板:commom/util/SmsTemplate.java

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

//短信发送工具类
@Data
@Component
@ConfigurationProperties(prefix = "dkd.sms")
public class SmsTemplate {

    // 拿到配置文件读取的参数
    private String key;
    private String secret;
    private String signName;
    private String templateCode;

    // 调用阿里云平台发送短信
    public void sendSms(String phoneNumbers, String code) {
        //设置超时时间
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");

        try {
            //初始化acsClient,暂不支持region化
            IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", key, secret);
            DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Dysmsapi", "dysmsapi.aliyuncs.com");
            IAcsClient acsClient = new DefaultAcsClient(profile);

            //组装请求对象-具体描述见控制台-文档部分内容
            SendSmsRequest request = new SendSmsRequest();
            request.setPhoneNumbers(phoneNumbers);//手机号
            request.setSignName(signName);//短信前面
            request.setTemplateCode(templateCode);//短信模板
            request.setTemplateParam("{\"code\":\"" + code + "\"}");//验证码

            SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

配置文件中指定短信的配置信息

有key和secret密钥对,sign-name短信签名和template-code短信模板编码,可以自行注册阿里云短信,输入自己的密钥对。

在这里插入图片描述

员工登录:

员工登录会设计一个接收参数,调用service。

在这里插入图片描述
在service中比对验证码、手机号,再返回一个登录的LoginVo结果,设置登录的员工参数,然后制定token令牌。最后判断维修员还是运营人员。

在这里插入图片描述

查询员工基本信息

在这里插入图片描述

上面显示的员工基本信息,对应的后端接口如下。前端会根据当前登录的员工id,查询员工的基本信息。调用的是MybatisPlus通用service功能getById(id)。拿到员工对象之后需要封装返回结果,需要把实体类转换成前端需要的Vo对象。

在这里插入图片描述

工单管理

工单查询

搜索工单对应app端的三个界面:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

全部工单有时间范围,也支持条件搜索,所以该方法的接收参数非常多。支持分页查询、设备编号、用户id、工单编号、工单状态、是否为运维工单以及时间范围。

在这里插入图片描述

在service方法中首先封装了MybatisPlus的分页查询对象,再通过LambdaQueryWrapper来构件动态sql,支持各种条件查询。最终进行分页,再根据工单类型和工单状态文字说明,返回分页结果即可。也就是一个方法支持了各种分页查询。

在这里插入图片描述

接受工单

前端会传递一个工单id,但是需要获取当前登录人的id,以这两个条件调用service完成接受。

在这里插入图片描述

service实现,首先根据工单id判断工单是否存在。判断工单的状态是否为待处理,工单状态已经为进行中、已完成、已取消就不能接受了。登录人是否有权接受工单就是登录人必须与工单的分配人保持一致。以上条件都满足的话就可以修改工单状态为进行中,调用MybatisPlus中通用service的updateById方法实现数据库的更新操作,Mapper层就可以省略不写了。

在这里插入图片描述

取消/拒绝工单

可以拿到前端的工单Id拒绝/取消的理由,再获取当前登录人的id,这三个参数调用service完成取消。

在这里插入图片描述

在这里插入图片描述

完成工单

在这里插入图片描述

工单状态更新成功以后,还需要更新设备的状态。如果是投放工单,就需要把设备状态改为运营状态。如果工单类型为撤机工单,就需要把设备状态改为撤机。如果是补货工单,就需要查询工单的明细,也就是补货工单,将明细中的数据更新到数据库的库存中。

在这里插入图片描述

工单详情管理

根据工单id查询补货列表

拿到工单id调用service。

在这里插入图片描述

通过MybatisPLus实现条件封装,执行条件查询,直接将结果返回,不需要编写mapper层。

在这里插入图片描述


原文地址:https://blog.csdn.net/m0_45253972/article/details/144346265

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!