领取卡券-60行的大方法胖的飞不起来

领取一张卡券需要做的判断

大概就是业务作用
检查用户的登录信息未登录直接返回
卡券不是平台卡券且领取卡券需要关注店铺查询卡券用户店铺表用户是否关注店铺
卡券剩余的张数要大于0get方法得到卡券剩余张数,小于0则直接返回
卡券展示的结束的时间要大于领取卡券时的时间这个我没想到,认为的是只要能展示的卡券都是可以领取的;没有考虑到有人打开了页面,然后跑去干别的,再回来领卡券,这个时候,卡券可能已经过了结束时间了。
卡券允许领取的次数小于卡券用户表传入userId和cardId,用聚集函数sum计算用户领取的这个卡券的张数,小于卡券允许领的张数
可以领取了更新卡券列表,插入卡券用户表,插入卡券操作历史表是一个事务。

领取卡券需要做的判断,约束条件,大概就是大佬们说的业务流程吧。

积累敲代码经验

  1. select查表返回的类对象,要做非空判断; null 不能调用equal方法,所以用 "1" 调用equal方法,防止空指针异常。
 if (null == tfFCardcoupons) {
   resultMap.put("resultCode", "fail");
   resultMap.put("resultMsg", "审核卡券失败,卡券信息不存在!");
    return resultMap;
    }
  if (!"1".equals(tfFCardcoupons.getCardStatus())) {
     resultMap.put("resultCode", "fail");
     resultMap.put("resultMsg", "审核卡券失败,非审核状态不能审核!");
     return resultMap;
   }
  1. 看起来多余又不多余的判断:
    我的理解:从页面上看到的卡券就是6状态的卡券,领取的卡券就一定是6状态的卡券
    辉哥说:改一改url或者在console里直接发送某个不是6状态的卡券,也可能跳过不需要关注店铺,有剩余,结束时间没过,从来没领过的限制条件直接进入更新领取表的步骤
    还有这种操作,见识了。遇到这种情况,表更新的操作(插入,删除,更新)还是多模拟一下场景好了。
  <update id="updateBycardId">
    UPDATE TF_F_CARDCOUPONS SET RENMAIND_CARD_NUM = RENMAIND_CARD_NUM - 1
    WHERE
    CARD_ID = #{cardId,jdbcType = DECIMAL}
    AND RENMAIND_CARD_NUM > 1
    AND CARD_STATUS = '6'
  </update>
  1. 60行的大方法减个肥
    这里写图片描述
    这里写图片描述
    变成一个24行一个33行的方法,无奈摊手,代码还是很丑,因为那些不同的返回提示信息。

总结:

  1. 电信业务就是增删改查的时候的限制和操作的流程,业务对我太广泛,我一直不理解到底什么是业务,我就理解是限制条件和操作流程好了;
  2. 接下来的任务是:ecop工程里的购机单品页的功能完善和购物车的开发。在分支上开发;
  3. 用到的需要研究一下的东西:
    • template.js <script> 里面写html模板,再注入数据;
    • mybatis拦截器来分页
    • shiro权限,不同的用户显示不同的按钮,如果gx的项目有shiro,之前的后台开发就可以比较方便了。
    • 分页滑动的iScroll5
      卡券结束。等待总的测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值