拆分think模块包

This commit is contained in:
2024-08-13 17:51:18 +08:00
parent 9dc17cd63e
commit 09a752e12a
1547 changed files with 88305 additions and 10329 deletions
@@ -0,0 +1,115 @@
package com.gxwebsoft.shop.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.shop.entity.Cashier;
import com.gxwebsoft.shop.mapper.CashierMapper;
import com.gxwebsoft.shop.param.CashierParam;
import com.gxwebsoft.shop.service.CashierService;
import com.gxwebsoft.shop.vo.CashierVo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 收银Service实现
*
* @author 科技小王子
* @since 2024-08-04 11:51:43
*/
@Service
public class CashierServiceImpl extends ServiceImpl<CashierMapper, Cashier> implements CashierService {
@Override
public PageResult<Cashier> pageRel(CashierParam param) {
PageParam<Cashier, CashierParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
List<Cashier> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
@Transactional(rollbackFor = {Exception.class})
public CashierVo listRel(CashierParam param) {
List<Cashier> list = baseMapper.selectListRel(param);
// 排序
PageParam<Cashier, CashierParam> page = new PageParam<>();
page.setDefaultOrder("create_time desc");
final List<Cashier> cashiers = page.sortRecords(list);
// 整理数据
final CashierVo vo = new CashierVo();
// 计算单品总价
for (Cashier cashier : cashiers) {
cashier.setTotalPrice(cashier.getPrice().multiply(BigDecimal.valueOf(cashier.getCartNum())));
}
// 计算购物车金额
final Integer cartNum = cashiers.stream().map(Cashier::getCartNum).reduce(Integer::sum).orElse(0);
final Integer selectNums = cashiers.stream().filter(d -> d.getSelected().equals(true)).map(Cashier::getCartNum).reduce(Integer::sum).orElse(0);
final BigDecimal totalPrice = cashiers.stream().filter(d -> d.getSelected().equals(true)).map(Cashier::getTotalPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
// 封装数据
vo.setCashiers(cashiers);
vo.setTotalPrice(totalPrice);
vo.setTotalNums(Long.valueOf(cartNum));
vo.setSelectNums(Long.valueOf(selectNums));
return vo;
}
@Override
@Transactional(rollbackFor = {Exception.class})
public List<CashierVo> listRelByGroupId(CashierParam param) {
List<Cashier> list = baseMapper.selectListRel(param);
// 排序
PageParam<Cashier, CashierParam> page = new PageParam<>();
page.setDefaultOrder("create_time desc");
final List<Cashier> cashiers = page.sortRecords(list);
// 计算单品总价
cashiers.forEach(d->{
d.setTotalPrice(d.getPrice().multiply(BigDecimal.valueOf(d.getCartNum())));
});
final Map<Integer, List<Cashier>> collectByGroupId = cashiers.stream().collect(Collectors.groupingBy(Cashier::getGroupId));
// 整理数据
final ArrayList<CashierVo> cashierVos = new ArrayList<>();
for (Integer groupId : collectByGroupId.keySet()) {
final CashierVo vo = new CashierVo();
final List<Cashier> cashierList = collectByGroupId.get(groupId);
for (Cashier cashier : cashierList) {
if (cashier.getGroupId().equals(groupId)) {
// 计算购物车金额
final Integer cartNum = cashierList.stream().map(Cashier::getCartNum).reduce(Integer::sum).orElse(0);
final Integer selectNums = cashierList.stream().filter(d -> d.getSelected().equals(true)).map(Cashier::getCartNum).reduce(Integer::sum).orElse(0);
final BigDecimal totalPrice = cashierList.stream().filter(d -> d.getSelected().equals(true)).map(Cashier::getTotalPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
vo.setGroupId(Long.valueOf(groupId));
vo.setCashiers(cashierList);
vo.setTotalPrice(totalPrice);
vo.setTotalNums(Long.valueOf(cartNum));
vo.setSelectNums(Long.valueOf(selectNums));
vo.setComments("订单备注:");
}
}
cashierVos.add(vo);
}
return cashierVos;
}
@Override
public Cashier getByIdRel(Integer id) {
CashierParam param = new CashierParam();
param.setId(id);
return param.getOne(baseMapper.selectListRel(param));
}
}