测试订单详情时发现页面缺失了配送地址和订单备注,顾客名字和电话号码也没有隐藏,我们依次来解决他们
添加配送地址
首先没有显示配送地址的原因是用户下单功能没有将配送地址添加到数据库中,而查看订单详情却要求显示配送地址,导致小程序获取到的数据为null,添加如下代码解决:
首先在OrderServiceImpl中定义私有方法获取订单配送地址
//获取订单配送地址
private String getAddrass(Long addressBookId){
AddressBook addressBook = addressBookMapper.getById(addressBookId);
String address = addressBook.getProvinceName() + addressBook.getCityName() +
addressBook.getDistrictName() + addressBook.getDetail();
return address;
}
然后在查询订单详情方法(即details方法)中调用该方法并给订单对象的配送地址属性赋值
//设置配送地址
Long addressBookId = orders.getAddressBookId();
String addrass = getAddrass(addressBookId);
orders.setAddress(addrass);
成功解决
添加订单备注
首先这个问题是因为小程序代码缺失造成的,打开小程序源码以下文件
ctrl+f搜索餐具,在支付方式和餐具数量中间添加如下代码
<view class="data-v-54d3589c"><view class="data-v-54d3589c">订单备注</view>
<view class="data-v-54d3589c">{{orderDetailsData.remark}}</view></view>
再次运行程序成功解决
隐藏顾客名字和电话号码中间四位
这个我用了最笨的方法:用substring方法截取字符串
在OrderServiceImpl中定义两个私有方法
//隐藏顾客名字
private String toHiddenConsignee(String consignee){
String name = consignee.substring(0,1) + "**";
return name;
}
//隐藏电话号码中间四位
private String toHiddenPhone(String phone){
String p = phone.substring(0, 3) + "****" + phone.substring(7);
return p;
}
details方法中调用
//隐藏用户隐私
orders.setConsignee(toHiddenConsignee(orders.getConsignee()));
orders.setPhone(toHiddenPhone(orders.getPhone()));
成功解决