2024-09-13 朱宝民 优化获取交易明细记录,余额改为操作表余额,返回字段增加收银员姓名及分页参数
| | |
| | | */ |
| | | |
| | | @Data |
| | | @JsonPropertyOrder({"orderNumber", "clientName", "cardNum", "idCard", "clientNum", "phone", "operateType", "tradeAmount", "waterCost", "cardCost", "gift", "refundAmount", "money", "paymentName", "tradeTime", "cashierId", "cardState", "districtTitle", "villageId"}) |
| | | @JsonPropertyOrder({"orderNumber", "clientName", "cardNum", "idCard", "clientNum", "phone", "operateType", "tradeAmount", "waterCost", "cardCost", "gift", "refundAmount", "money", "paymentName", "tradeTime", "cashierId", "cashierName", "cardState", "districtTitle", "villageId"}) |
| | | @HeadRowHeight(30) |
| | | @ContentRowHeight(20) |
| | | public class VoTradeDetails implements BaseEntity { |
| | |
| | | private Long cashierId; |
| | | |
| | | /** |
| | | * 收银员姓名 |
| | | */ |
| | | @ColumnWidth(15) |
| | | private String cashierName; |
| | | |
| | | /** |
| | | * 卡片状态 |
| | | */ |
| | | @ColumnWidth(15) |
| | |
| | | driverClassName: com.mysql.cj.jdbc.Driver |
| | | # url: jdbc:mysql://192.168.40.166:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | # url: jdbc:mysql://8.130.130.233:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | #url: jdbc:mysql://8.140.179.55:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | url: jdbc:mysql://127.0.0.1:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | username: root |
| | | password: dysql,;.abc!@# |
| | |
| | | <select id="getTransactionRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> |
| | | SELECT |
| | | COUNT(*) AS recordCount |
| | | FROM v_trade_details |
| | | FROM se_card_operate ope |
| | | INNER JOIN se_client cli ON ope.client_id = cli.id |
| | | INNER JOIN se_client_card card ON card.id = ope.card_id |
| | | LEFT JOIN se_payment_method pay ON ope.payment_id = pay.id |
| | | INNER JOIN ba_user us ON ope.operator = us.id |
| | | <where> |
| | | AND ope.operate_type IN(1,2,3,5) |
| | | |
| | | <if test = "villageId != null and villageId > 0"> |
| | | AND villageId = #{villageId} |
| | | AND cli.villageId = #{villageId} |
| | | </if> |
| | | |
| | | <if test = "operateTimeStart != null and operateTimeStop != null"> |
| | | AND tradeTime BETWEEN #{operateTimeStart} AND #{operateTimeStop} |
| | | AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop} |
| | | </if> |
| | | |
| | | <if test = "cashierId != null and cashierId > 0"> |
| | | AND cashierId = #{cashierId} |
| | | AND us.id = #{cashierId} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | <!--根据指定条件获取交易记录--> |
| | | <select id="getTransactions" resultType="com.dy.pipIrrGlobal.voSe.VoTradeDetails"> |
| | | SELECT * FROM v_trade_details |
| | | SELECT |
| | | ope.id AS orderNumber, |
| | | cli.name AS clientName, |
| | | card.cardNum AS cardNum, |
| | | cli.idCard, |
| | | cli.clientNum, |
| | | cli.phone, |
| | | (CASE ope.operate_type |
| | | WHEN 1 THEN '开卡' |
| | | WHEN 2 THEN '充值' |
| | | WHEN 3 THEN '销卡' |
| | | WHEN 5 THEN '补扣' |
| | | END) AS operateType, |
| | | (IFNULL(ope.trade_amount,0.00) + IFNULL(ope.card_cost,0.00)) AS tradeAmount, |
| | | IFNULL(ope.trade_amount,0.00) AS waterCost, |
| | | IFNULL(ope.card_cost,0.00) AS cardCost, |
| | | IFNULL(ope.gift,0.00) AS gift, |
| | | IFNULL(ope.refund_amount,0.00) AS refundAmount, |
| | | ope.money, |
| | | pay.name AS paymentName, |
| | | ope.operate_dt as tradeTime, |
| | | us.id AS cashierId, |
| | | us.name AS cashierName, |
| | | (CASE card.state |
| | | WHEN 1 THEN '正常' |
| | | WHEN 2 THEN '已注销' |
| | | WHEN 3 THEN '已挂失' |
| | | END) AS cardState, |
| | | cli.districtTitle, |
| | | cli.villageId AS villageId |
| | | FROM se_card_operate ope |
| | | INNER JOIN se_client cli ON ope.client_id = cli.id |
| | | INNER JOIN se_client_card card ON card.id = ope.card_id |
| | | LEFT JOIN se_payment_method pay ON ope.payment_id = pay.id |
| | | INNER JOIN ba_user us ON ope.operator = us.id |
| | | <where> |
| | | AND ope.operate_type IN(1,2,3,5) |
| | | |
| | | <if test = "villageId != null and villageId > 0"> |
| | | AND villageId = #{villageId} |
| | | AND cli.villageId = #{villageId} |
| | | </if> |
| | | |
| | | <if test = "operateTimeStart != null and operateTimeStop != null"> |
| | | AND tradeTime BETWEEN #{operateTimeStart} AND #{operateTimeStop} |
| | | AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop} |
| | | </if> |
| | | |
| | | <if test = "cashierId != null and cashierId > 0"> |
| | | AND cashierId = #{cashierId} |
| | | AND us.id = #{cashierId} |
| | | </if> |
| | | </where> |
| | | ORDER BY tradeTime |
| | | ORDER BY ope.operate_dt |
| | | <trim prefix="limit "> |
| | | <if test="start != null and count != null"> |
| | | #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} |
| | |
| | | } |
| | | |
| | | /** |
| | | * 添加开卡记录,退还金额作为充值金额 |
| | | * 添加开卡操作记录,退还金额作为充值金额 |
| | | */ |
| | | SeCardOperate seCardOperate = new SeCardOperate(); |
| | | seCardOperate.setCardId(cardId); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 添加注销记录 |
| | | * 添加注销操作记录 |
| | | * 支付方式为现金 |
| | | */ |
| | | SeCardOperate seCardOperate = new SeCardOperate(); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 添加补扣记录 |
| | | * 添加补扣操作记录 |
| | | */ |
| | | SeCardOperate seCardOperate = new SeCardOperate(); |
| | | seCardOperate.setCardId(cardId); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 添加水卡操作记录 |
| | | * 添加水卡充值操作记录 |
| | | */ |
| | | SeCardOperate seCardOperate = new SeCardOperate(); |
| | | seCardOperate.setCardId(cardId); |
| | |
| | | // 获取符合条件的记录数 |
| | | Long itemTotal = Optional.ofNullable(seCardOperateMapper.getTransactionRecordCount(params)).orElse(0L); |
| | | |
| | | QueryResultVo rsVo = new QueryResultVo<>() ; |
| | | QueryResultVo<List<VoTradeDetails>> rsVo = new QueryResultVo<>() ; |
| | | rsVo.pageSize = vo.pageSize ; |
| | | rsVo.pageCurr = vo.pageCurr ; |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | |
| | | List<VoTradeDetails> list = seCardOperateMapper.getTransactions(params); |
| | | rsVo.obj = seCardOperateMapper.getTransactions(params); |
| | | List<VoTradeDetails> list = rsVo.obj; |
| | | if(list.size() == 0) { |
| | | return new HashMap(); |
| | | } |
| | |
| | | } |
| | | |
| | | Map map_record = new HashMap(); |
| | | map_record.put("itemTotal", itemTotal); |
| | | map_record.put("list", list); |
| | | map_record.put("list", rsVo); |
| | | |
| | | Map map_result = new HashMap(); |
| | | map_result.put("waterCost", df.format(totalWaterCost)); |
| | | map_result.put("cardCost", df.format(totalCardCost)); |
| | | map_result.put("gift", df.format(totalGift)); |
| | | map_result.put("refund", df.format(totalRefund)); |
| | | |
| | | |
| | | map_result.put("records", map_record); |
| | | |