7b766f7842c9d02b403dbe8b942088387eddca4e
这个变量用来干啥子
//短信发送内容,需调用三方发送短信接口
String str = "您的取票码为:" + pt.getTicketCode() + "," + "验证码为:" + pt.getVerifyCode();
字符串SQL语句常亮没有定义好
private final String UPDATE_TOUR = "UPDATE_TOUR";
改成
private static final String UPDATE_TOUR = "UPDATE_TOUR";
idea支持快捷键: prsf 和 psf
[TOC]
命名空间不正确
com.pangding.web.order
改成
com.pangding.web.order
Demo相关类需要删除
- DemoDaoImpl
- DemoDao
- DemoLogFeign
- DemoService
- DemoServiceImpl
- DemoController
- DemoVo
包名建议最好不要包含同样类型的定义
vo.pdvo
vo.requestvo
vo.responsevo
改成
vo.pd
vo.request
vo.response
类注释方法注释不够全,最好采用标准注释(参照 todo:)(已修改)
/**
* @Description pd_a_capital_flow数据库操作类
* @author xxx
* @date 2019年04月22日 15:48:37
*/
@Component
public class PdACapitalFlowDaoImpl extends BaseDaoImpl implements PdACapitalFlowDao {
protected void init(){
register(PdACapitalFlowVo.class);
Table.add(DaoConst.Query, "SELECT * FROM pd_capital_flow");
}
public PageSizeData<PdACapitalFlowVo> query(PageSizeReqVo req) {
return this.queryPage(PdACapitalFlowVo.class, req, DaoConst.Query, req);
}
}
改成
/**
* todo: 资金流水数据库操作类
* @author todo: 牟佳利
* @date 2019年04月22日 15:48:37
*/
@Component
public class PdACapitalFlowDaoImpl extends BaseDaoImpl implements PdACapitalFlowDao {
/**
* todo: 这里最好编写注释
*/
protected void init(){
register(PdACapitalFlowVo.class);
Table.add(DaoConst.Query, "SELECT * FROM pd_capital_flow");
}
/**
* todo: 这里最好编写注释
*/
public PageSizeData<PdACapitalFlowVo> query(PageSizeReqVo req) {
return this.queryPage(PdACapitalFlowVo.class, req, DaoConst.Query, req);
}
}
查询条件存在时间盲区 (已修改)
如:第一次查询:2018-1-5 到 2018-1-8 ,第二次查询:2018-1-8 到2018-1-9。 这时因为只存在于>时间,假如存在一条数据2018-1-8 00:00:00,你会发现这条数据查询不到。 需要将时间改成 >= 和 < 组合,而不是 > 和 < 组合.
table.add(QUERY_CAPITAL_FLOW_LIST, "SELECT \n" +
"f.id,f.time,\n" +
"f.company_name productCompanyName,\n" +
"f.order_id orderId,\n" +
"f.category,\n" +
"f.money,\n" +
"f.handling_fee handlingFee,\n" +
"f.arrival_money arrivalMoney,\n" +
"f.status\n" +
"FROM pd_capital_flow f where 1=1")
.add("orderBeginTime", "and f.time>?")
.add("orderEndTime", "and f.time<?")
.add("orderId", "and f.order_id = ?")
.add("orderType", "and f.category=?");
#SQL语句条件降价规范,如空格全部写在SQL语句的前面(已修改)
table.add(QUERY_VERIFICATION_LIST, "select \n" +
" t.id,\n" +
"\t\t\t\t\t o.order_time orderTime,\n" +
" t.order_id orderId,\n" +
" o.product_name productName,\n" +
" o.order_type orderType,\n" +
" o.order_num orderNum,\n" +
" o.total_money totalMoney\n" +
"\t\t\t\t\t t.ticket_status ticketStatus,\n" +
"\t\t\t\t\t t.time \n" +
" from\n" +
" pd_order_ticket_detail t\n" +
" left join pd_order o on t.order_id = o.id where 1=1")
.add("productName", "and o.product_name like concat('%',?,'%')")
.add("orderId", " and t.order_id = ?")
.add("orderType", " and o.order_type=?")
.add("orderBeginTime", "and o.order_time>?")
.add("orderEndTime", "and o.order_time <?");
改成条件空格结尾:
.add("productName", "and o.product_name like concat('%',?,'%') ")
.add("orderId", "and t.order_id = ? ")
.add("orderType", "and o.order_type=? ")
.add("orderBeginTime","and o.order_time>? ")
.add("orderEndTime", "and o.order_time <? ");
另外: like 建议不要在前面增加 '%' 符号,这样可以利用索引
状态不要使用中文
o.setRefundStatus("退款中");
退票逻辑不正确(已修改)
@Override
public void refundTicket(PdRefundTicket req) {
req.setId(StringHelper.getNewID());
req.setRefundDate(DateHelper.getNow());
refundTicketDao.create(req);
// 这里最好增加一行注释用于描述要干什么
PdOrderTicketDetail pt = new PdOrderTicketDetail();
pt.setOrderId(req.getOrderId());
// todo: 下面的状态不正确
pt.setTicketStatus(0);
orderDetailTicketDao.updateTicket(pt);
}
建议数据库int、String、decimal型字段不允许为空
- 防止统计、查询时影响性能
- 防止获取值去进行累加时出现null,null去加是容易出错的,所以干脆在写入时进行限制
- 注意,写入时需要写入默认值0,空字符串等
存在 returnTicket 和 refundOrder 这两个函数(已修改)
- 通过备注详细描述,退单和退票的区别
ReservationServiceImpl、OrderService订单创建不在该模块中,需要描述这些功能在哪个项目中
- 该类中不存在餐饮创建函数
- control中也缺少调用函数
- 请问订单创建函数在哪里
- 所有的创建逻辑在哪里
-----------------------------------2019-5-15日------------------
如下代码逻辑不合理(已修改)
//更新第三方订单号
if (null != req.getThirdOrderId()) {
//注意:更新的都需要load一下再更新
PdOrderRequest from = orderStatusDao.load(req, PdOrderRequest.class);
ObjectHelper.writeWithFrom(from, req);
// todo: 这里应该是from
orderStatusDao.updateThirdOrder(req);
}
//电话不为空 则需要更新订单游客表的信息
if (null != req.getTelephone()) {
// todo : 这里是通过orderId进行更新,需要注意的是 orderId和thirdOrderID中只有一个参数是必传
orderTourDao.updateTour(req);
}
退款、退票根据类型需要调用第三方接口
订单PdOrderDaoImpl查询语句需要整合成一条SQL语句
分布式程序中不能用 Scheduled,需要采用消息队列发送
@Scheduled(cron = "0 0 12 * * ?")
Description