feat: 添加商品总金额统计和用户角色信息
- 在StatsDTO中添加goodsTotalAmount字段以统计商品总金额 - 在QyUserDTO中添加roleId和roleName字段以展示用户角色信息 - 在ShopGoodsService及相关实现中添加calculateTotalAmount方法 - 在QyUserApplicationService中处理用户角色信息的更新
This commit is contained in:
parent
32bf187134
commit
10329475f3
|
@ -52,6 +52,7 @@ public class ShopController extends BaseController {
|
||||||
StatsDTO statsDTO = new StatsDTO();
|
StatsDTO statsDTO = new StatsDTO();
|
||||||
statsDTO.setShopCount(shopApplicationService.countAllRecord());
|
statsDTO.setShopCount(shopApplicationService.countAllRecord());
|
||||||
statsDTO.setGoodsCount(goodsApplicationService.countAllRecord());
|
statsDTO.setGoodsCount(goodsApplicationService.countAllRecord());
|
||||||
|
statsDTO.setGoodsTotalAmount(goodsApplicationService.calculateTotalAmount());
|
||||||
statsDTO.setOrderCount(orderApplicationService.countAllRecord());
|
statsDTO.setOrderCount(orderApplicationService.countAllRecord());
|
||||||
statsDTO.setOrderAmountSum(orderApplicationService.sumTotalAmount());
|
statsDTO.setOrderAmountSum(orderApplicationService.sumTotalAmount());
|
||||||
statsDTO.setCabinetCount(smartCabinetApplicationService.countAllRecord());
|
statsDTO.setCabinetCount(smartCabinetApplicationService.countAllRecord());
|
||||||
|
|
|
@ -15,6 +15,8 @@ import com.agileboot.domain.qywx.user.model.QyUserModelFactory;
|
||||||
import com.agileboot.domain.qywx.user.query.SearchQyUserQuery;
|
import com.agileboot.domain.qywx.user.query.SearchQyUserQuery;
|
||||||
import com.agileboot.domain.qywx.userQySys.db.SysUserQyUserEntity;
|
import com.agileboot.domain.qywx.userQySys.db.SysUserQyUserEntity;
|
||||||
import com.agileboot.domain.qywx.userQySys.db.SysUserQyUserService;
|
import com.agileboot.domain.qywx.userQySys.db.SysUserQyUserService;
|
||||||
|
import com.agileboot.domain.system.role.db.SysRoleEntity;
|
||||||
|
import com.agileboot.domain.system.role.db.SysRoleService;
|
||||||
import com.agileboot.domain.system.user.db.SysUserEntity;
|
import com.agileboot.domain.system.user.db.SysUserEntity;
|
||||||
import com.agileboot.domain.system.user.db.SysUserService;
|
import com.agileboot.domain.system.user.db.SysUserService;
|
||||||
import com.agileboot.domain.system.user.dto.UserDTO;
|
import com.agileboot.domain.system.user.dto.UserDTO;
|
||||||
|
@ -33,6 +35,7 @@ public class QyUserApplicationService {
|
||||||
private final QyUserModelFactory qyUserModelFactory;
|
private final QyUserModelFactory qyUserModelFactory;
|
||||||
private final SysUserQyUserService sysUserQyUserService;
|
private final SysUserQyUserService sysUserQyUserService;
|
||||||
private final SysUserService sysUserService;
|
private final SysUserService sysUserService;
|
||||||
|
private final SysRoleService sysRoleService;
|
||||||
|
|
||||||
public PageDTO<QyUserDTO> getUserList(SearchQyUserQuery<QyUserEntity> query) {
|
public PageDTO<QyUserDTO> getUserList(SearchQyUserQuery<QyUserEntity> query) {
|
||||||
Page<QyUserEntity> page = userService.getUserList(query);
|
Page<QyUserEntity> page = userService.getUserList(query);
|
||||||
|
@ -48,7 +51,11 @@ public class QyUserApplicationService {
|
||||||
SysUserQyUserEntity sysUserQyUser = sysUserQyUserService.getByQyUserId(id.intValue());
|
SysUserQyUserEntity sysUserQyUser = sysUserQyUserService.getByQyUserId(id.intValue());
|
||||||
if (sysUserQyUser != null) {
|
if (sysUserQyUser != null) {
|
||||||
SysUserEntity sysUser = sysUserService.getById(sysUserQyUser.getSysUserId());
|
SysUserEntity sysUser = sysUserService.getById(sysUserQyUser.getSysUserId());
|
||||||
dto.setSysUser(new UserDTO(sysUser));
|
if (sysUser != null && sysUser.getRoleId()!= null) {
|
||||||
|
SysRoleEntity sysRole = sysRoleService.getById(sysUser.getRoleId());
|
||||||
|
dto.setRoleId(sysUser.getRoleId());
|
||||||
|
dto.setRoleName(sysRole.getRoleName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
|
@ -67,6 +74,15 @@ public class QyUserApplicationService {
|
||||||
UserModel model = qyUserModelFactory.loadById(command.getId());
|
UserModel model = qyUserModelFactory.loadById(command.getId());
|
||||||
model.loadUpdateCommand(command);
|
model.loadUpdateCommand(command);
|
||||||
model.updateById();
|
model.updateById();
|
||||||
|
|
||||||
|
if (command.getRoleId() == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
SysUserQyUserEntity sysUserQyUser = sysUserQyUserService.getByQyUserId(command.getId());
|
||||||
|
if (sysUserQyUser != null) {
|
||||||
|
SysUserEntity sysUser = sysUserService.getById(sysUserQyUser.getSysUserId());
|
||||||
|
sysUser.setRoleId(command.getRoleId() > 0 ? command.getRoleId() : null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteUser(BulkOperationCommand<Integer> command) {
|
public void deleteUser(BulkOperationCommand<Integer> command) {
|
||||||
|
|
|
@ -12,4 +12,7 @@ public class UpdateQyUserCommand extends AddQyUserCommand {
|
||||||
@NotNull
|
@NotNull
|
||||||
@PositiveOrZero
|
@PositiveOrZero
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
|
|
||||||
|
private Long roleId;
|
||||||
}
|
}
|
|
@ -34,9 +34,6 @@ public class QyUserDTO {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 系统用户
|
|
||||||
private UserDTO sysUser;
|
|
||||||
|
|
||||||
@ExcelColumn(name = "用户ID")
|
@ExcelColumn(name = "用户ID")
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
|
@ -108,4 +105,10 @@ public class QyUserDTO {
|
||||||
|
|
||||||
@ExcelColumn(name = "用户余额")
|
@ExcelColumn(name = "用户余额")
|
||||||
private BigDecimal balance;
|
private BigDecimal balance;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "角色ID")
|
||||||
|
private Long roleId;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "角色名称")
|
||||||
|
private String roleName;
|
||||||
}
|
}
|
|
@ -13,6 +13,8 @@ import com.agileboot.domain.shop.goods.model.GoodsModel;
|
||||||
import com.agileboot.domain.shop.goods.model.GoodsModelFactory;
|
import com.agileboot.domain.shop.goods.model.GoodsModelFactory;
|
||||||
import com.agileboot.domain.shop.goods.query.SearchShopGoodsQuery;
|
import com.agileboot.domain.shop.goods.query.SearchShopGoodsQuery;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
@ -73,4 +75,8 @@ public class GoodsApplicationService {
|
||||||
public Long countAllRecord() {
|
public Long countAllRecord() {
|
||||||
return shopGoodsService.countAllRecord();
|
return shopGoodsService.countAllRecord();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal calculateTotalAmount() {
|
||||||
|
return shopGoodsService.calculateTotalAmount();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
@ -94,4 +96,11 @@ public interface ShopGoodsMapper extends BaseMapper<ShopGoodsEntity> {
|
||||||
|
|
||||||
@Select("SELECT COUNT(1) FROM shop_goods WHERE deleted = 0")
|
@Select("SELECT COUNT(1) FROM shop_goods WHERE deleted = 0")
|
||||||
Long countAllRecord();
|
Long countAllRecord();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算所有未删除商品的总金额(price * stock)
|
||||||
|
* @return 商品总金额
|
||||||
|
*/
|
||||||
|
@Select("SELECT SUM(price * stock) FROM shop_goods WHERE deleted = 0")
|
||||||
|
BigDecimal calculateTotalAmount();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.agileboot.common.core.page.AbstractPageQuery;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -24,4 +25,6 @@ public interface ShopGoodsService extends IService<ShopGoodsEntity> {
|
||||||
SearchGoodsDO getGoodsInfo(Long goodsId);
|
SearchGoodsDO getGoodsInfo(Long goodsId);
|
||||||
|
|
||||||
Long countAllRecord();
|
Long countAllRecord();
|
||||||
|
|
||||||
|
BigDecimal calculateTotalAmount();
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -50,4 +52,9 @@ public class ShopGoodsServiceImpl extends ServiceImpl<ShopGoodsMapper, ShopGoods
|
||||||
public Long countAllRecord() {
|
public Long countAllRecord() {
|
||||||
return baseMapper.countAllRecord();
|
return baseMapper.countAllRecord();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BigDecimal calculateTotalAmount() {
|
||||||
|
return baseMapper.calculateTotalAmount();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,9 @@ public class StatsDTO {
|
||||||
@ExcelColumn(name = "商品数量")
|
@ExcelColumn(name = "商品数量")
|
||||||
private Long goodsCount;
|
private Long goodsCount;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "商品总金额")
|
||||||
|
private BigDecimal goodsTotalAmount;
|
||||||
|
|
||||||
@ExcelColumn(name = "订单数量")
|
@ExcelColumn(name = "订单数量")
|
||||||
private Long orderCount;
|
private Long orderCount;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue