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.setShopCount(shopApplicationService.countAllRecord());
|
||||
statsDTO.setGoodsCount(goodsApplicationService.countAllRecord());
|
||||
statsDTO.setGoodsTotalAmount(goodsApplicationService.calculateTotalAmount());
|
||||
statsDTO.setOrderCount(orderApplicationService.countAllRecord());
|
||||
statsDTO.setOrderAmountSum(orderApplicationService.sumTotalAmount());
|
||||
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.userQySys.db.SysUserQyUserEntity;
|
||||
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.SysUserService;
|
||||
import com.agileboot.domain.system.user.dto.UserDTO;
|
||||
|
@ -33,6 +35,7 @@ public class QyUserApplicationService {
|
|||
private final QyUserModelFactory qyUserModelFactory;
|
||||
private final SysUserQyUserService sysUserQyUserService;
|
||||
private final SysUserService sysUserService;
|
||||
private final SysRoleService sysRoleService;
|
||||
|
||||
public PageDTO<QyUserDTO> getUserList(SearchQyUserQuery<QyUserEntity> query) {
|
||||
Page<QyUserEntity> page = userService.getUserList(query);
|
||||
|
@ -48,7 +51,11 @@ public class QyUserApplicationService {
|
|||
SysUserQyUserEntity sysUserQyUser = sysUserQyUserService.getByQyUserId(id.intValue());
|
||||
if (sysUserQyUser != null) {
|
||||
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;
|
||||
}
|
||||
|
@ -67,6 +74,15 @@ public class QyUserApplicationService {
|
|||
UserModel model = qyUserModelFactory.loadById(command.getId());
|
||||
model.loadUpdateCommand(command);
|
||||
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) {
|
||||
|
|
|
@ -12,4 +12,7 @@ public class UpdateQyUserCommand extends AddQyUserCommand {
|
|||
@NotNull
|
||||
@PositiveOrZero
|
||||
private Integer id;
|
||||
|
||||
|
||||
private Long roleId;
|
||||
}
|
|
@ -34,9 +34,6 @@ public class QyUserDTO {
|
|||
}
|
||||
}
|
||||
|
||||
// 系统用户
|
||||
private UserDTO sysUser;
|
||||
|
||||
@ExcelColumn(name = "用户ID")
|
||||
private Integer id;
|
||||
|
||||
|
@ -108,4 +105,10 @@ public class QyUserDTO {
|
|||
|
||||
@ExcelColumn(name = "用户余额")
|
||||
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.query.SearchShopGoodsQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
@ -73,4 +75,8 @@ public class GoodsApplicationService {
|
|||
public Long 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.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
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")
|
||||
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.service.IService;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -24,4 +25,6 @@ public interface ShopGoodsService extends IService<ShopGoodsEntity> {
|
|||
SearchGoodsDO getGoodsInfo(Long goodsId);
|
||||
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -50,4 +52,9 @@ public class ShopGoodsServiceImpl extends ServiceImpl<ShopGoodsMapper, ShopGoods
|
|||
public Long countAllRecord() {
|
||||
return baseMapper.countAllRecord();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal calculateTotalAmount() {
|
||||
return baseMapper.calculateTotalAmount();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,9 @@ public class StatsDTO {
|
|||
@ExcelColumn(name = "商品数量")
|
||||
private Long goodsCount;
|
||||
|
||||
@ExcelColumn(name = "商品总金额")
|
||||
private BigDecimal goodsTotalAmount;
|
||||
|
||||
@ExcelColumn(name = "订单数量")
|
||||
private Long orderCount;
|
||||
|
||||
|
|
Loading…
Reference in New Issue