我的Java开发生涯记(4)

2019.6.19著

今天也是充满希望的一天。

 

早上经理就给了我一个问题,商品售后换货,商家审核前后,用户能否取消售后单?

经过测试得到的逻辑是,用户生成售后换货单,商家没有审核时,可以取消售后单,商家审核通过了,售后单无法取消。这是正常逻辑。

 

接下来说一下我的心得,我们来缕一缕关于商品售后的逻辑。

正常流程是:

1.当商家未发货时,用户生成售后单,在这期间用户可以取消售后单

2.商家审核通过,用户无法取消售后单

3.这时用户需要确认收货之后,才能申请售后。

4.在用户申请售后之后,用户发货有一个定时任务,时间期效以内需发货,不然售后单自动取消

5.用户发货之后,商家没有确认收货时,用户无法取消售后

6.商家确认收货,并重新发货。

7.用户确认收货,完成售后操作。



分支状态:当商家发货之后,用户需确认收货才可申请售后。

 

今天下午有学了个在页面比较时间戳大小的方法,给大家分享分享:

//当前时间戳与主非部件失效时间对比
if(new Date(obj.mainEndTime).getTime() < new Date().getTime() && new Date(obj.notMainEndTime).getTime() < new Date().getTime()){
    sReturn = "无效";
}else {
    sReturn = "有效";
}

 

还有一个bug是在页面导入第三方订单,可以导入重复订单,经过查询发现有校验的方法。

RetDTO billDto = thirdpartyOrderBill4WebApi.getAll();
List<ThirdpartyOrderBillDTO> thirdpartyOrderBilList = JSON.parseArray(billDto.getRetData(),ThirdpartyOrderBillDTO.class);
if (thirdpartyOrderBilList != null && thirdpartyOrderBilList.size() > 0) {
 	Map<String,List<ThirdpartyOrderBillDTO>> thirdpartyOrderBilMap = thirdpartyOrderBilList.stream().collect(Collectors.groupingBy(ThirdpartyOrderBillDTO::getChannelOrderId));
 	List<ThirdpartyOrderBillDTO> flagList = thirdpartyOrderBilMap.get(thirdpartyOrderBill.getChannelOrderId());
 	if (flagList != null && flagList.size() >0) {
 		errorMassage +="第"+(i+1)+"行渠道订单号已经对过账;"; 
 			continue;
 		}
 	}
}

通过api.getAll()方法也可以查询出数据来。

 

 

总结:当然这只是我自己总结的,市面上的售后流程也特别多,各有特色吧。最合理的还是,货物在运输的路上不允许用户操作售后申请,以免出现货丢,钱退的情况。代码的写法其实因人所亦,但是最后的结果却是一样的,实现功能才是第一步。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值