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,17 +1,11 @@
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;
/** /**
@ -22,145 +16,173 @@ import java.util.Date;
* @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中存不下(变成不准确的值) //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决 //所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class) @JsonSerialize(using = LongToStringSerializer.class)
private Long id; private Long id;
//保留 //保留
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决 //所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class) @JsonSerialize(using = LongToStringSerializer.class)
private Long outTradeNo; private Long outTradeNo;
//订单号 //订单号
private String tradeNo; private String tradeNo;
//保留 //保留
private Integer payChannel; private Integer payChannel;
//交易香蕉币 //交易香蕉币
private Integer totalAmount; private Integer totalAmount;
//支付用户ID //支付用户ID
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决 //所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class) @JsonSerialize(using = LongToStringSerializer.class)
private Long userId; private Long userId;
//支付状态0支付失败1支付成功2待支付 //支付状态0支付失败1支付成功2待支付
private Integer payStatus; private Integer payStatus;
//创建时间 //创建时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime; private Date createTime;
//更新时间 //更新时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime; private Date updateTime;
/** private String userName;
* 设置主键
*/ public String getUserName() {
public void setId(Long id) { return userName;
this.id = id; }
}
/** public void setUserName(String userName) {
* 获取主键 this.userName = userName;
*/ }
public Long getId() {
return id; /**
} * 设置主键
/** */
* 设置保留 public void setId(Long id) {
*/ this.id = id;
public void setOutTradeNo(Long outTradeNo) { }
this.outTradeNo = outTradeNo;
} /**
/** * 获取主键
* 获取保留 */
*/ public Long getId() {
public Long getOutTradeNo() { return id;
return outTradeNo; }
}
/** /**
* 设置订单号 * 设置保留
*/ */
public void setTradeNo(String tradeNo) { public void setOutTradeNo(Long outTradeNo) {
this.tradeNo = tradeNo; this.outTradeNo = outTradeNo;
} }
/**
* 获取订单号 /**
*/ * 获取保留
public String getTradeNo() { */
return tradeNo; public Long getOutTradeNo() {
} return outTradeNo;
/** }
* 设置保留
*/ /**
public void setPayChannel(Integer payChannel) { * 设置订单号
this.payChannel = payChannel; */
} public void setTradeNo(String tradeNo) {
/** this.tradeNo = tradeNo;
* 获取保留 }
*/
public Integer getPayChannel() { /**
return payChannel; * 获取订单号
} */
/** public String getTradeNo() {
* 设置交易香蕉币 return tradeNo;
*/ }
public void setTotalAmount(Integer totalAmount) {
this.totalAmount = totalAmount; /**
} * 设置保留
/** */
* 获取交易香蕉币 public void setPayChannel(Integer payChannel) {
*/ this.payChannel = payChannel;
public Integer getTotalAmount() { }
return totalAmount;
} /**
/** * 获取保留
* 设置支付用户ID */
*/ public Integer getPayChannel() {
public void setUserId(Long userId) { return payChannel;
this.userId = userId; }
}
/** /**
* 获取支付用户ID * 设置交易香蕉币
*/ */
public Long getUserId() { public void setTotalAmount(Integer totalAmount) {
return userId; this.totalAmount = totalAmount;
} }
/**
* 设置支付状态0支付失败1支付成功2待支付 /**
*/ * 获取交易香蕉币
public void setPayStatus(Integer payStatus) { */
this.payStatus = payStatus; public Integer getTotalAmount() {
} return totalAmount;
/** }
* 获取支付状态0支付失败1支付成功2待支付
*/ /**
public Integer getPayStatus() { * 设置支付用户ID
return payStatus; */
} public void setUserId(Long userId) {
/** this.userId = userId;
* 设置创建时间 }
*/
public void setCreateTime(Date createTime) { /**
this.createTime = createTime; * 获取支付用户ID
} */
/** public Long getUserId() {
* 获取创建时间 return userId;
*/ }
public Date getCreateTime() {
return createTime; /**
} * 设置支付状态0支付失败1支付成功2待支付
/** */
* 设置更新时间 public void setPayStatus(Integer payStatus) {
*/ this.payStatus = payStatus;
public void setUpdateTime(Date updateTime) { }
this.updateTime = updateTime;
} /**
/** * 获取支付状态0支付失败1支付成功2待支付
* 获取更新时间 */
*/ public Integer getPayStatus() {
public Date getUpdateTime() { return payStatus;
return updateTime; }
}
/**
* 设置创建时间
*/
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 @Autowired
public PayDO get(Long id){ private PayDao payDao;
return payDao.get(id); @Autowired
} private UserDao userDao;
@Override @Override
public List<PayDO> list(Map<String, Object> map){ public PayDO get(Long id) {
return payDao.list(map); return payDao.get(id);
} }
@Override @Override
public int count(Map<String, Object> map){ public List<PayDO> list(Map<String, Object> map) {
return payDao.count(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 @Override
public int save(PayDO pay){ public int count(Map<String, Object> map) {
return payDao.save(pay); return payDao.count(map);
} }
@Override @Override
public int update(PayDO pay){ public int save(PayDO pay) {
return payDao.update(pay); return payDao.save(pay);
} }
@Override @Override
public int remove(Long id){ public int update(PayDO pay) {
return payDao.remove(id); return payDao.update(pay);
} }
@Override @Override
public int batchRemove(Long[] ids){ public int remove(Long id) {
return payDao.batchRemove(ids); return payDao.remove(id);
} }
@Override @Override
public Map<Object, Object> tableSta(Date minDate) { public int batchRemove(Long[] ids) {
List<Map<Object, Object>> maps = payDao.tableSta(minDate); return payDao.batchRemove(ids);
}
return maps.stream().collect(Collectors.toMap(x -> x.get("staDate"), x -> x.get("orderCount"))); @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: '充值用户'
}, },
{ {