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;
import java.io.Serializable;
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.java2nb.common.jsonserializer.LongToStringSerializer;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.io.Serializable;
import java.util.Date;
/**
* 充值订单
*
*
* @author xiongxy
* @email 1179705413@qq.com
* @date 2020-12-01 03:49:57
*/
public class PayDO implements Serializable {
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;
private static final long serialVersionUID = 1L;
/**
* 设置主键
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取主键
*/
public Long getId() {
return id;
}
/**
* 设置保留
*/
public void setOutTradeNo(Long outTradeNo) {
this.outTradeNo = outTradeNo;
}
/**
* 获取保留
*/
public Long getOutTradeNo() {
return outTradeNo;
}
/**
* 设置订单号
*/
public void setTradeNo(String tradeNo) {
this.tradeNo = tradeNo;
}
/**
* 获取订单号
*/
public String getTradeNo() {
return tradeNo;
}
/**
* 设置保留
*/
public void setPayChannel(Integer payChannel) {
this.payChannel = payChannel;
}
/**
* 获取保留
*/
public Integer getPayChannel() {
return payChannel;
}
/**
* 设置交易香蕉币
*/
public void setTotalAmount(Integer totalAmount) {
this.totalAmount = totalAmount;
}
/**
* 获取交易香蕉币
*/
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;
}
//主键
//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;
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
/**
* 设置主键
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取主键
*/
public Long getId() {
return id;
}
/**
* 设置保留
*/
public void setOutTradeNo(Long outTradeNo) {
this.outTradeNo = outTradeNo;
}
/**
* 获取保留
*/
public Long getOutTradeNo() {
return outTradeNo;
}
/**
* 设置订单号
*/
public void setTradeNo(String tradeNo) {
this.tradeNo = tradeNo;
}
/**
* 获取订单号
*/
public String getTradeNo() {
return tradeNo;
}
/**
* 设置保留
*/
public void setPayChannel(Integer payChannel) {
this.payChannel = payChannel;
}
/**
* 获取保留
*/
public Integer getPayChannel() {
return payChannel;
}
/**
* 设置交易香蕉币
*/
public void setTotalAmount(Integer totalAmount) {
this.totalAmount = totalAmount;
}
/**
* 获取交易香蕉币
*/
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;
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.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.java2nb.novel.dao.PayDao;
import com.java2nb.novel.domain.PayDO;
import com.java2nb.novel.service.PayService;
@Service
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
public Map<Object, Object> tableSta(Date minDate) {
List<Map<Object, Object>> maps = payDao.tableSta(minDate);
@Autowired
private PayDao payDao;
@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',
title: '充值用户ID'
field: 'userName',
title: '充值用户'
},
{