perf: 后台订单管理

This commit is contained in:
xiongxiaoyang 2023-04-14 23:22:23 +08:00
parent 3ffa75dc10
commit c71eadef82
3 changed files with 230 additions and 197 deletions

View File

@ -1,166 +1,188 @@
package com.java2nb.novel.domain; package com.java2nb.novel.domain;
import java.io.Serializable;
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.java2nb.common.jsonserializer.LongToStringSerializer; import com.java2nb.common.jsonserializer.LongToStringSerializer;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.io.Serializable;
import java.util.Date;
/** /**
* 充值订单 * 充值订单
* *
* @author xiongxy * @author xiongxy
* @email 1179705413@qq.com * @email 1179705413@qq.com
* @date 2020-12-01 03:49:57 * @date 2020-12-01 03:49:57
*/ */
public class PayDO implements Serializable { public class PayDO implements Serializable {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
//主键
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long id;
//保留
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long outTradeNo;
//订单号
private String tradeNo;
//保留
private Integer payChannel;
//交易香蕉币
private Integer totalAmount;
//支付用户ID
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long userId;
//支付状态0支付失败1支付成功2待支付
private Integer payStatus;
//创建时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//更新时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 设置主键 //主键
*/ //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
public void setId(Long id) { //所以通过序列化成字符串来解决
this.id = id; @JsonSerialize(using = LongToStringSerializer.class)
} private Long id;
/** //保留
* 获取主键 //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
*/ //所以通过序列化成字符串来解决
public Long getId() { @JsonSerialize(using = LongToStringSerializer.class)
return id; private Long outTradeNo;
} //订单号
/** private String tradeNo;
* 设置保留 //保留
*/ private Integer payChannel;
public void setOutTradeNo(Long outTradeNo) { //交易香蕉币
this.outTradeNo = outTradeNo; private Integer totalAmount;
} //支付用户ID
/** //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
* 获取保留 //所以通过序列化成字符串来解决
*/ @JsonSerialize(using = LongToStringSerializer.class)
public Long getOutTradeNo() { private Long userId;
return outTradeNo; //支付状态0支付失败1支付成功2待支付
} private Integer payStatus;
/** //创建时间
* 设置订单号 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
*/ private Date createTime;
public void setTradeNo(String tradeNo) { //更新时间
this.tradeNo = tradeNo; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
} private Date updateTime;
/**
* 获取订单号 private String userName;
*/
public String getTradeNo() { public String getUserName() {
return tradeNo; return userName;
} }
/**
* 设置保留 public void setUserName(String userName) {
*/ this.userName = userName;
public void setPayChannel(Integer payChannel) { }
this.payChannel = payChannel;
} /**
/** * 设置主键
* 获取保留 */
*/ public void setId(Long id) {
public Integer getPayChannel() { this.id = id;
return payChannel; }
}
/** /**
* 设置交易香蕉币 * 获取主键
*/ */
public void setTotalAmount(Integer totalAmount) { public Long getId() {
this.totalAmount = totalAmount; return id;
} }
/**
* 获取交易香蕉币 /**
*/ * 设置保留
public Integer getTotalAmount() { */
return totalAmount; public void setOutTradeNo(Long outTradeNo) {
} this.outTradeNo = outTradeNo;
/** }
* 设置支付用户ID
*/ /**
public void setUserId(Long userId) { * 获取保留
this.userId = userId; */
} public Long getOutTradeNo() {
/** return outTradeNo;
* 获取支付用户ID }
*/
public Long getUserId() { /**
return userId; * 设置订单号
} */
/** public void setTradeNo(String tradeNo) {
* 设置支付状态0支付失败1支付成功2待支付 this.tradeNo = tradeNo;
*/ }
public void setPayStatus(Integer payStatus) {
this.payStatus = payStatus; /**
} * 获取订单号
/** */
* 获取支付状态0支付失败1支付成功2待支付 public String getTradeNo() {
*/ return tradeNo;
public Integer getPayStatus() { }
return payStatus;
} /**
/** * 设置保留
* 设置创建时间 */
*/ public void setPayChannel(Integer payChannel) {
public void setCreateTime(Date createTime) { this.payChannel = payChannel;
this.createTime = createTime; }
}
/** /**
* 获取创建时间 * 获取保留
*/ */
public Date getCreateTime() { public Integer getPayChannel() {
return createTime; return payChannel;
} }
/**
* 设置更新时间 /**
*/ * 设置交易香蕉币
public void setUpdateTime(Date updateTime) { */
this.updateTime = updateTime; public void setTotalAmount(Integer totalAmount) {
} this.totalAmount = totalAmount;
/** }
* 获取更新时间
*/ /**
public Date getUpdateTime() { * 获取交易香蕉币
return updateTime; */
} public Integer getTotalAmount() {
return totalAmount;
}
/**
* 设置支付用户ID
*/
public void setUserId(Long userId) {
this.userId = userId;
}
/**
* 获取支付用户ID
*/
public Long getUserId() {
return userId;
}
/**
* 设置支付状态0支付失败1支付成功2待支付
*/
public void setPayStatus(Integer payStatus) {
this.payStatus = payStatus;
}
/**
* 获取支付状态0支付失败1支付成功2待支付
*/
public Integer getPayStatus() {
return payStatus;
}
/**
* 设置创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 设置更新时间
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
/**
* 获取更新时间
*/
public Date getUpdateTime() {
return updateTime;
}
} }

View File

@ -1,66 +1,77 @@
package com.java2nb.novel.service.impl; package com.java2nb.novel.service.impl;
import com.java2nb.novel.dao.PayDao;
import com.java2nb.novel.dao.UserDao;
import com.java2nb.novel.domain.PayDO;
import com.java2nb.novel.domain.UserDO;
import com.java2nb.novel.service.PayService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.java2nb.novel.dao.PayDao;
import com.java2nb.novel.domain.PayDO;
import com.java2nb.novel.service.PayService;
@Service @Service
public class PayServiceImpl implements PayService { public class PayServiceImpl implements PayService {
@Autowired
private PayDao payDao;
@Override
public PayDO get(Long id){
return payDao.get(id);
}
@Override
public List<PayDO> list(Map<String, Object> map){
return payDao.list(map);
}
@Override
public int count(Map<String, Object> map){
return payDao.count(map);
}
@Override
public int save(PayDO pay){
return payDao.save(pay);
}
@Override
public int update(PayDO pay){
return payDao.update(pay);
}
@Override
public int remove(Long id){
return payDao.remove(id);
}
@Override
public int batchRemove(Long[] ids){
return payDao.batchRemove(ids);
}
@Override @Autowired
public Map<Object, Object> tableSta(Date minDate) { private PayDao payDao;
List<Map<Object, Object>> maps = payDao.tableSta(minDate); @Autowired
private UserDao userDao;
return maps.stream().collect(Collectors.toMap(x -> x.get("staDate"), x -> x.get("orderCount"))); @Override
public PayDO get(Long id) {
return payDao.get(id);
}
@Override
public List<PayDO> list(Map<String, Object> map) {
List<PayDO> list = payDao.list(map);
if (!CollectionUtils.isEmpty(list)) {
List<Long> userIds = list.stream().map(PayDO::getUserId).collect(Collectors.toList());
Map<Long, String> userNameMap = userDao.batchGet(userIds).stream()
.collect(Collectors.toMap(UserDO::getId, UserDO::getUsername));
list.forEach(v -> v.setUserName(userNameMap.get(v.getUserId())));
}
return list;
}
@Override
public int count(Map<String, Object> map) {
return payDao.count(map);
}
@Override
public int save(PayDO pay) {
return payDao.save(pay);
}
@Override
public int update(PayDO pay) {
return payDao.update(pay);
}
@Override
public int remove(Long id) {
return payDao.remove(id);
}
@Override
public int batchRemove(Long[] ids) {
return payDao.batchRemove(ids);
}
@Override
public Map<Object, Object> tableSta(Date minDate) {
List<Map<Object, Object>> maps = payDao.tableSta(minDate);
return maps.stream().collect(Collectors.toMap(x -> x.get("staDate"), x -> x.get("orderCount")));
} }
} }

View File

@ -76,8 +76,8 @@ function load() {
{ {
field: 'userId', field: 'userName',
title: '充值用户ID' title: '充值用户'
}, },
{ {