diff --git a/hiver-core/src/main/java/cc/hiver/core/common/constant/LogiticsCompanyConstant.java b/hiver-core/src/main/java/cc/hiver/core/common/constant/LogiticsCompanyConstant.java
new file mode 100644
index 00000000..3bda91c4
--- /dev/null
+++ b/hiver-core/src/main/java/cc/hiver/core/common/constant/LogiticsCompanyConstant.java
@@ -0,0 +1,15 @@
+package cc.hiver.core.common.constant;
+
+/**
+ * 订单常量类
+ * @author 王富康
+ * @date 2023/10/21
+ */
+public interface LogiticsCompanyConstant {
+ /**
+ 1:物流
+ 2:快递
+ 3:送车
+ */
+ String[] SIGN_COMPANY = {"0", "1", "2", "3"};
+}
diff --git a/hiver-core/src/main/java/cc/hiver/core/common/constant/SaleConstant.java b/hiver-core/src/main/java/cc/hiver/core/common/constant/SaleConstant.java
index 9de9f9fa..a0dd4c82 100644
--- a/hiver-core/src/main/java/cc/hiver/core/common/constant/SaleConstant.java
+++ b/hiver-core/src/main/java/cc/hiver/core/common/constant/SaleConstant.java
@@ -31,4 +31,9 @@ public interface SaleConstant {
* 物流类别 0-物流 1-快递 2-自提 3-拼单 4-送车
*/
String[] TRANSPORT_TYPE = {"0","1","2","3","4"};
+
+ /**
+ * 收款状态 0-未收款 1-已收款 2-部分收款
+ */
+ String[] PAY_STATUS = {"0","1","2"};
}
diff --git a/hiver-core/src/main/java/cc/hiver/core/common/utils/SecurityUtil.java b/hiver-core/src/main/java/cc/hiver/core/common/utils/SecurityUtil.java
index 93ad45a4..c03e89e7 100644
--- a/hiver-core/src/main/java/cc/hiver/core/common/utils/SecurityUtil.java
+++ b/hiver-core/src/main/java/cc/hiver/core/common/utils/SecurityUtil.java
@@ -1,9 +1,6 @@
package cc.hiver.core.common.utils;
-import cc.hiver.core.common.constant.CommonConstant;
-import cc.hiver.core.common.constant.SecurityConstant;
-import cc.hiver.core.common.constant.UserConstant;
-import cc.hiver.core.common.constant.WorkerConstant;
+import cc.hiver.core.common.constant.*;
import cc.hiver.core.common.exception.HiverException;
import cc.hiver.core.common.redis.RedisTemplateHelper;
import cc.hiver.core.common.vo.TokenCompany;
@@ -22,6 +19,7 @@ import cc.hiver.core.vo.RoleDTO;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.IdUtil;
import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
@@ -95,7 +93,8 @@ public class SecurityUtil {
}
final User user = userToDTO(userDao.findByUsername(username));
// 缓存
- redisTemplate.set(key, new Gson().toJson(user), 15L, TimeUnit.DAYS);
+ Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd hh:mm:ss").create();
+ redisTemplate.set(key, gson.toJson(user), 15L, TimeUnit.DAYS);
return user;
}
@@ -134,7 +133,8 @@ public class SecurityUtil {
}
public LogiticsCompany findCompanyByMobile(String mobile) {
- return logiticsCompanyDao.findByMobile(mobile);
+ // 现在只有物流公司登录,暂时写死
+ return logiticsCompanyDao.findByMobileAndSignCompany(mobile, LogiticsCompanyConstant.SIGN_COMPANY[1]);
}
public User findUserByEmail(String email) {
@@ -271,6 +271,10 @@ public class SecurityUtil {
// 缓存
redisTemplate.set(userTypeKey, user.getType(), tokenProperties.getTokenExpireTime(), TimeUnit.MINUTES);
}
+ // 更新当前登录人的角色
+ final String key = "username::" + user.getUsername();
+ Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd hh:mm:ss").create();
+ redisTemplate.set(key, gson.toJson(user), 15L, TimeUnit.DAYS);
} else {
// JWT 不缓存权限 避免JWT长度过长
tokenUser = new TokenUser(user, false, null);
diff --git a/hiver-core/src/main/java/cc/hiver/core/dao/LogiticsCompanyDao.java b/hiver-core/src/main/java/cc/hiver/core/dao/LogiticsCompanyDao.java
index ea35024a..9b520489 100644
--- a/hiver-core/src/main/java/cc/hiver/core/dao/LogiticsCompanyDao.java
+++ b/hiver-core/src/main/java/cc/hiver/core/dao/LogiticsCompanyDao.java
@@ -33,4 +33,13 @@ public interface LogiticsCompanyDao extends HiverBaseDao
list = purchaseService.list(queryWrapper);
@@ -129,15 +130,16 @@ public class PurchaseController {
/**
* 查询采购单列表
- * @author 王富康
- * @date 2023/11/20
+ *
* @param purchaseQueryVo
* @return Result
+ * @author 王富康
+ * @date 2023/11/20
*/
@RequestMapping(value = "/getPurchaseList", method = RequestMethod.POST)
@ApiOperation("查询采购单列表")
- public Result getPurchaseList(@RequestBody(required=false) PurchaseQueryVo purchaseQueryVo) {
- if(purchaseQueryVo == null ){
+ public Result getPurchaseList(@RequestBody(required = false) PurchaseQueryVo purchaseQueryVo) {
+ if (purchaseQueryVo == null) {
purchaseQueryVo = new PurchaseQueryVo();
}
// shopId从缓存中设置
@@ -187,15 +189,16 @@ public class PurchaseController {
/**
* 根据采购单id获取采购单详情
- * @author 王富康
- * @date 2023/11/6
+ *
* @param id 采购单id
* @return Result
+ * @author 王富康
+ * @date 2023/11/6
*/
@RequestMapping(value = "/getPurchaseAllData", method = RequestMethod.POST)
@ApiOperation("根据采购单id获取采购单及详细商品信息")
public Result getPurchaseAllData(String id) {
- if(StringUtils.isEmpty(id)){
+ if (StringUtils.isEmpty(id)) {
return ResultUtil.error("采购单id不能为空!");
}
final PurchaseVo purchaseVo = purchaseService.getPurchaseAllData(id);
@@ -213,7 +216,7 @@ public class PurchaseController {
*/
@RequestMapping(value = "/editPayPrice", method = RequestMethod.POST)
@ApiOperation("回款")
- public Result editPayPrice(String id, BigDecimal price,String dealingsWay) {
+ public Result editPayPrice(String id, BigDecimal price, String dealingsWay) {
if (StringUtils.isEmpty(id)) {
return ResultUtil.error("采购单id不能为空!");
}
@@ -221,4 +224,22 @@ public class PurchaseController {
return ResultUtil.success("回款成功!");
}
+ /**
+ * 获取待入库数量-首页
+ *
+ * @return Result
+ * @author 王富康
+ * @date 2023/11/22
+ */
+ @RequestMapping(value = "/getWaitPutInCount", method = RequestMethod.POST)
+ @ApiOperation("获取待入库数量-首页")
+ public Result getWaitPutInCount() {
+ // shopId从缓存中设置
+ final String shopId = securityUtil.getShopId();
+ final QueryWrapper querySaleWrapper = new QueryWrapper<>();
+ querySaleWrapper.eq("shop_id", shopId)
+ .eq("in_storage_status", StockConstant.IN_STORAGE_STATUS[0]);
+ final long waitReturnCount = purchaseService.count(querySaleWrapper);
+ return ResultUtil.data(waitReturnCount);
+ }
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ReturnSaleController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ReturnSaleController.java
index 52fa5a45..b328a352 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ReturnSaleController.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ReturnSaleController.java
@@ -190,7 +190,7 @@ public class ReturnSaleController {
}
}
- }else{
+ } else {
// 不需要平台取货,直接处理库存信息
final QueryWrapper queryReturnDetailWrapper = new QueryWrapper<>();
queryWrapper.eq("return_sale_id", returnSale.getSaleId());
@@ -213,7 +213,7 @@ public class ReturnSaleController {
* 1.确认退货的前提是如果存在拉包工,那么拉包工必须已完成送达才可以退,否则可以直接退货
* 2.确认退货后根据库存直接扣减入库明细
* */
- final ReturnSale returnSale = returnSaleService.getBySaleId(id);
+ final ReturnSale returnSale = returnSaleService.getById(id);
if (returnSale == null) {
return ResultUtil.error("查询退货单信息失败!");
}
@@ -225,7 +225,7 @@ public class ReturnSaleController {
// 订单id 不能为空
return ResultUtil.error("物流订单中订单信息有误!");
}
- if (!SaleConstant.SALE_STATUS[10].equals(orderXd.getOrderStatus())) {
+ if (!SaleConstant.SALE_STATUS[4].equals(orderXd.getOrderStatus())) {
return ResultUtil.error("当前退货订单还未送达,不能点击确认退货!");
}
//处理库存模块
@@ -264,9 +264,9 @@ public class ReturnSaleController {
final String remark = saleComVO.getRemark();
if (!StringUtils.isEmpty(remark)) {
if ("1".equals(remark)) {
- queryWrapper.ne("status", "5");
+ queryWrapper.eq("status", SaleConstant.SALE_STATUS[10]);
} else if ("2".equals(remark)) {
- queryWrapper.eq("status", "5");
+ queryWrapper.eq("status", SaleConstant.SALE_STATUS[4]);
}
} else {
return ResultUtil.error("退货标识参数缺失,请确认!");
@@ -307,16 +307,16 @@ public class ReturnSaleController {
if (!StringUtils.isEmpty(saleComVO.getSaleId())) {
queryWrapper.eq("sale_id", saleComVO.getSaleId());
}
- /*final String remark = saleComVO.getRemark();
+ final String remark = saleComVO.getRemark();
if (!StringUtils.isEmpty(remark)) {
if ("1".equals(remark)) {
- queryWrapper.ne("status", SaleConstant.SALE_STATUS[4]);
+ queryWrapper.eq("status", SaleConstant.SALE_STATUS[10]);
} else if ("2".equals(remark)) {
queryWrapper.eq("status", SaleConstant.SALE_STATUS[4]);
}
} else {
return ResultUtil.error("退货标识参数缺失,请确认!");
- }*/
+ }
final SearchDateVo searchDateVo = saleComVO.getSearchDateVo();
if (!ObjectUtils.isEmpty(searchDateVo) && !searchDateVo.isAnyFieldEmpty()) {
final Date endDate = searchDateVo.getEndDate();
@@ -353,4 +353,22 @@ public class ReturnSaleController {
return ResultUtil.error("修改失败");
}
+ /**
+ * 获取待退货数量-首页
+ *
+ * @return Result
+ * @author 王富康
+ * @date 2023/11/22
+ */
+ @RequestMapping(value = "/getWaitReturnCount", method = RequestMethod.POST)
+ @ApiOperation("获取待退货数量-首页")
+ public Result getWaitReturnCount() {
+ // shopId从缓存中设置
+ final String shopId = securityUtil.getShopId();
+ final QueryWrapper querySaleWrapper = new QueryWrapper<>();
+ querySaleWrapper.eq("shop_id", shopId)
+ .eq("status", SaleConstant.SALE_STATUS[10]);
+ long waitReturnCount = returnSaleService.count(querySaleWrapper);
+ return ResultUtil.data(waitReturnCount);
+ }
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java
index d733b3b6..6ced3a85 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java
@@ -8,10 +8,13 @@ import cc.hiver.core.common.utils.SecurityUtil;
import cc.hiver.core.common.utils.StringUtils;
import cc.hiver.core.common.vo.Result;
import cc.hiver.core.common.vo.SearchDateVo;
+import cc.hiver.core.entity.LogiticsCompany;
import cc.hiver.core.entity.User;
import cc.hiver.core.entity.Worker;
+import cc.hiver.core.service.LogiticsCompanyService;
import cc.hiver.core.service.WorkerService;
import cc.hiver.core.vo.WorkerQueryVO;
+import cc.hiver.mall.common.constant.StockConstant;
import cc.hiver.mall.entity.*;
import cc.hiver.mall.pojo.dto.*;
import cc.hiver.mall.pojo.vo.*;
@@ -79,6 +82,12 @@ public class SaleController {
@Autowired
private ProductService productService;
+ @Autowired
+ private PurchaseService purchaseService;
+
+ @Autowired
+ private LogiticsCompanyService logiticsCompanyService;
+
@RequestMapping(value = "/buy", method = RequestMethod.POST)
@ApiOperation("下单操作")
@Transactional
@@ -183,11 +192,11 @@ public class SaleController {
@RequestMapping(value = "/delById", method = RequestMethod.POST)
@ApiOperation("根据id删除订单")
- public Result delete(@RequestBody Sale sale) {
- final boolean result = saleService.removeById(sale);
+ public Result delete(String id) {
+ final boolean result = saleService.deleteById(id);
if (result) {
final QueryWrapper deleteWrapper = new QueryWrapper<>();
- deleteWrapper.eq("sale_id", sale.getId());
+ deleteWrapper.eq("sale_id", id);
final boolean removeBatchByIds = saleDetailService.remove(deleteWrapper);
if (removeBatchByIds) {
return ResultUtil.success("删除成功");
@@ -240,7 +249,7 @@ public class SaleController {
@ApiOperation("下游客户查询全部订单列表")
public Result querySRAll(@RequestBody SaleVO saleVO) {
final QueryWrapper queryWrapper = new QueryWrapper<>();
- User user = securityUtil.getCurrUser();
+ final User user = securityUtil.getCurrUser();
queryWrapper.eq("user_id", user.getId());
if (!ObjectUtils.isEmpty(saleVO)) {
if (!StringUtils.isEmpty(saleVO.getPayStatus())) {
@@ -444,7 +453,7 @@ public class SaleController {
saleDetailDTO.setDiscount(saleDetail.getDiscount());
saleDetailDTO.setDiscountAmount(saleDetail.getDiscountAmount());
saleDetailDTO.setRealPrice(saleDetail.getRealPrice());
-
+ saleDetailDTO.setProductPicture(saleDetail.getProductPicture());
final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO();
saleDetailQueryDTO.setAttributeList(saleDetail.getAttributeList());
saleDetailQueryDTO.setProductCount(saleDetail.getProductCount());
@@ -458,10 +467,20 @@ public class SaleController {
final String customerId = sale.getUserId();
final Customer customer = customerService.getById(customerId);
saleNewVO.setCustomer(customer);
-
+ // 增加物流公司信息
+ final String transCompanyId = sale.getTransCompany();
+ if(StringUtils.isNotEmpty(transCompanyId)){
+ final LogiticsCompany logiticsCompany = logiticsCompanyService.get(transCompanyId);
+ saleNewVO.setLogiticsCompany(logiticsCompany);
+ }
// 获取配送详情,主要是想要完成后的图片和备注信息
final OrderXd orderXd = orderService.findByOrderId(id);
saleNewVO.setOrderXd(orderXd);
+ // 拉包工,配送详情中取
+ // 添加店铺信息
+ final String shopId = sale.getShopId();
+ final Shop shop = shopService.get(shopId);
+ saleNewVO.setShop(shop);
return new ResultUtil().setData(saleNewVO);
}
@@ -698,8 +717,11 @@ public class SaleController {
@ApiOperation("分享页及挂单去开单操作")
@Transactional
public Result shareToBuyNew(@RequestBody SaleQueryDTO saleQueryDTO) {
+ if (StringUtils.isEmpty(saleQueryDTO.getOldSaleId())) {
+ return ResultUtil.error("订单id不能为空!");
+ }
// 删除之前的分享页下的单或者挂单
- delete(saleQueryDTO.getSale());
+ delete(saleQueryDTO.getOldSaleId());
// 下单
return buyNew(saleQueryDTO);
}
@@ -730,20 +752,75 @@ public class SaleController {
/**
* 回款
- * @author 王富康
- * @date 2023/11/15
- * @param id 销售单id
- * @param price 回款金额
+ *
+ * @param id 销售单id
+ * @param price 回款金额
* @param dealingsWay 交易方式/附言
* @return Result
+ * @author 王富康
+ * @date 2023/11/15
*/
@RequestMapping(value = "/editPayPrice", method = RequestMethod.POST)
@ApiOperation("回款")
- public Result editPayPrice(String id, BigDecimal price,String dealingsWay) {
+ public Result editPayPrice(String id, BigDecimal price, String dealingsWay) {
if (StringUtils.isEmpty(id)) {
return ResultUtil.error("销售单id不能为空!");
}
saleService.editPayPrice(id, price, dealingsWay);
return ResultUtil.success("回款成功!");
}
+
+ /**
+ * 获取配货数量-首页
+ *
+ * @return Result
+ * @author 王富康
+ * @date 2023/11/22
+ */
+ @RequestMapping(value = "/getWaitAddProductCount", method = RequestMethod.POST)
+ @ApiOperation("获取配货数量-首页")
+ public Result getWaitAddProductCount() {
+ // shopId从缓存中设置
+ final String shopId = securityUtil.getShopId();
+ final QueryWrapper querySaleWrapper = new QueryWrapper<>();
+ querySaleWrapper.eq("shop_id", shopId)
+ .eq("status", SaleConstant.SALE_STATUS[11]);
+ final long waitAddProductCount = saleService.count(querySaleWrapper);
+ return ResultUtil.data(waitAddProductCount);
+ }
+
+ /**
+ * 获取配货数量-首页
+ *
+ * @return Result
+ * @author 王富康
+ * @date 2023/11/22
+ */
+ @RequestMapping(value = "/getWaitCount", method = RequestMethod.POST)
+ @ApiOperation("获待配货、待入库、待入库数量-首页")
+ public Result getWaitCount() {
+ // shopId从缓存中设置
+ final String shopId = securityUtil.getShopId();
+ final QueryWrapper querySaleWrapper = new QueryWrapper<>();
+ querySaleWrapper.eq("shop_id", shopId)
+ .eq("status", SaleConstant.SALE_STATUS[11]);
+ final long waitAddProductCount = saleService.count(querySaleWrapper);
+
+ final QueryWrapper queryReturnSaleWrapper = new QueryWrapper<>();
+ queryReturnSaleWrapper.eq("shop_id", shopId)
+ .eq("status", SaleConstant.SALE_STATUS[10]);
+ final long waitReturnCount = returnSaleService.count(queryReturnSaleWrapper);
+
+ final QueryWrapper queryPurchaseWrapper = new QueryWrapper<>();
+ queryPurchaseWrapper.eq("shop_id", shopId)
+ .eq("in_storage_status", StockConstant.IN_STORAGE_STATUS[0]);
+ final long waitPurchaseCount = purchaseService.count(queryPurchaseWrapper);
+
+ final Map countMap = new HashMap<>();
+ countMap.put("waitAddProductCount", waitAddProductCount);
+ countMap.put("waitReturnCount", waitReturnCount);
+ countMap.put("waitPurchaseCount", waitPurchaseCount);
+ return ResultUtil.data(countMap);
+ }
+
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Purchase.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Purchase.java
index 52ce72ed..011a4334 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Purchase.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Purchase.java
@@ -26,6 +26,8 @@ public class Purchase implements Serializable {
private String createBy;
+ private String createByName;
+
private Date createTime;
private Integer delFlag;
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Sale.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Sale.java
index 4992a08a..15337d3a 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Sale.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Sale.java
@@ -112,7 +112,7 @@ public class Sale implements Serializable {
private String saleName;
@ApiModelProperty(value="其他费用")
- private String otherExpense;
+ private BigDecimal otherExpense;
@Transient
@TableField(exist = false)
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/SaleDetail.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/SaleDetail.java
index 313ff678..102dbff5 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/SaleDetail.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/SaleDetail.java
@@ -73,5 +73,8 @@ public class SaleDetail implements Serializable {
@ApiModelProperty(value = "实际价格")
private BigDecimal realPrice;
+ @ApiModelProperty(value = "商品图片")
+ private String productPicture;
+
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/controller/OperatingAreaController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/controller/OperatingAreaController.java
new file mode 100644
index 00000000..21b6e7e2
--- /dev/null
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/controller/OperatingAreaController.java
@@ -0,0 +1,158 @@
+package cc.hiver.mall.operatingarea.controller;
+
+import cc.hiver.core.common.utils.PoiUtil;
+import cc.hiver.core.common.utils.ResultUtil;
+import cc.hiver.core.common.vo.Result;
+import cc.hiver.mall.operatingarea.entity.OperatingArea;
+import cc.hiver.mall.operatingarea.pojo.OperatingAreaPageQuery;
+import cc.hiver.mall.operatingarea.service.OperatingAreaService;
+import cc.hiver.mall.operatingarea.vo.OperatingAreaPageVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * 运营区域 控制层
+ *
+ * @author 王富康
+ * @date 2023/12/16
+ */
+@Slf4j
+@RestController
+@Api(tags = "运营区域接口")
+@RequestMapping("/hiver/app/operatingArea/")
+@Transactional
+public class OperatingAreaController {
+
+ @Autowired
+ private OperatingAreaService operatingAreaService;
+
+ /**
+ * 新增或者修改运营区域信息
+ *
+ * @param operatingArea 实体对象
+ * @return Result
+ * @author 王富康
+ * @date 2023/12/17
+ */
+ @RequestMapping(value = "/saveOrUpdateOperatingArea", method = RequestMethod.POST)
+ @ApiOperation("新增或者修改运营区域信息")
+ public Result saveOrUpdateOperatingArea(OperatingArea operatingArea) {
+ final boolean b = operatingAreaService.saveOrUpdate(operatingArea);
+ if (b) {
+ return ResultUtil.success("保存成功!");
+ } else {
+ return ResultUtil.error("保存失败!");
+ }
+ }
+
+ /**
+ * 根据id查询运营区域信息
+ * @author 王富康
+ * @date 2023/12/18
+ * @param id
+ * @return Result
+ */
+ @RequestMapping(value = "/getOperatingAreaById", method = RequestMethod.POST)
+ @ApiOperation("根据id查询运营区域信息")
+ public Result getOperatingAreaById(String id) {
+ if (StringUtils.isEmpty(id)) {
+ return ResultUtil.error("主键id不能为空!");
+ }
+ OperatingArea operatingArea = operatingAreaService.getById(id);
+ if (operatingArea != null) {
+ return ResultUtil.data(operatingArea);
+ } else {
+ return ResultUtil.error("查询失败!");
+ }
+ }
+
+ /**
+ * 删除
+ *
+ * @param id 主键id
+ * @return Result
+ * @author 王富康
+ * @date 2023/12/17
+ */
+ @RequestMapping(value = "/deleteOperatingArea", method = RequestMethod.POST)
+ @ApiOperation("根据id删除运营区域信息")
+ public Result deleteOperatingArea(String id) {
+ final boolean b = operatingAreaService.deleteOperatingArea(id);
+ if (b) {
+ return ResultUtil.success("删除成功!");
+ } else {
+ return ResultUtil.error("删除失败!");
+ }
+ }
+
+ /**
+ * 导入excel
+ *
+ * @param file excel文件
+ * @param shippingType 类型:0:物流名称;1:快递名称;2:送车
+ * @return Result
+ * @author 王富康
+ * @date 2023/12/17
+ */
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ @ApiOperation("excel导入")
+ public Result importExcel(MultipartFile file, String shippingType) {
+ final List operatingAreas = PoiUtil.importExcel(file, 1, 1, OperatingArea.class);
+ final boolean b = operatingAreaService.saveBatch(operatingAreas);
+ if (b) {
+ return ResultUtil.success("导入成功!");
+ } else {
+ return ResultUtil.error("导入失败!");
+ }
+ }
+
+ /**
+ * 根据省市县获取物流/快递/送车信息
+ *
+ * @param province 省
+ * @param city 市
+ * @param area 县
+ * @param shippingType 类型
+ * @return Result
+ * @author 王富康
+ * @date 2023/12/17
+ */
+ @RequestMapping(value = "/getByArea", method = RequestMethod.POST)
+ @ApiOperation("根据省市县获取物流/快递/送车信息")
+ public Result getByArea(String province, String city, String area, String shippingType) {
+ if (StringUtils.isEmpty(province) || StringUtils.isEmpty(city) || StringUtils.isEmpty(area)) {
+ return ResultUtil.error("省市县不能为空!");
+ }
+ if (StringUtils.isEmpty(shippingType)) {
+ return ResultUtil.error("类型不能为空!");
+ }
+ final List operatingAreas = operatingAreaService.getByArea(province, city, area, shippingType);
+ return ResultUtil.data(operatingAreas);
+ }
+
+ /**
+ * 运营区域列表(分页)
+ * @author 王富康
+ * @date 2023/12/18
+ * @param operatingAreaPageQuery
+ * @return Result>
+ */
+ @RequestMapping(value = "/getOperatingAreaList", method = RequestMethod.POST)
+ @ApiOperation(value = "分页获取运营区域列表")
+ public Result> getOperatingAreaList(@RequestBody(required = false) OperatingAreaPageQuery operatingAreaPageQuery) {
+ final IPage result = operatingAreaService.getOperatingAreaList(operatingAreaPageQuery);
+ return new ResultUtil>().setData(result);
+ }
+}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/dao/OperatingAreaDao.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/dao/OperatingAreaDao.java
new file mode 100644
index 00000000..d157c2a7
--- /dev/null
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/dao/OperatingAreaDao.java
@@ -0,0 +1,4 @@
+package cc.hiver.mall.operatingarea.dao;
+
+public class OperatingAreaDao {
+}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/entity/OperatingArea.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/entity/OperatingArea.java
new file mode 100644
index 00000000..116c3696
--- /dev/null
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/entity/OperatingArea.java
@@ -0,0 +1,51 @@
+package cc.hiver.mall.operatingarea.entity;
+
+import cc.hiver.core.base.HiverBaseEntity;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 运营区域实体类
+ *
+ * @author 王富康
+ * @date 2023/12/16
+ */
+@Data
+@ApiModel(value = "运营区域表")
+@TableName(value = "t_operating_area", autoResultMap = true)
+@ExcelTarget("OperatingArea")
+public class OperatingArea extends HiverBaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @Excel(name="类型",needMerge = true)
+ @ApiModelProperty(value = "类型:0:物流名称;1:快递名称;2:送车")
+ private String shippingType;
+
+ @Excel(name="名称",needMerge = true)
+ @ApiModelProperty(value = "物流名称/快递名称/车牌号")
+ private String shippingMethod;
+
+ @ApiModelProperty(value = "物流公司id/快递公司id/车牌号id")
+ private String shippingMethodId;
+
+ @Excel(name="省")
+ @ApiModelProperty(value = "省")
+ private String province;
+
+ @Excel(name="市")
+ @ApiModelProperty(value = "市")
+ private String city;
+
+ @Excel(name="县")
+ @ApiModelProperty(value = "县")
+ private String area;
+
+ @Excel(name="收费标准")
+ @ApiModelProperty(value = "收费标准")
+ private String chargingStandard;
+}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/mapper/OperatingAreaMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/mapper/OperatingAreaMapper.java
new file mode 100644
index 00000000..686ff401
--- /dev/null
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/mapper/OperatingAreaMapper.java
@@ -0,0 +1,19 @@
+package cc.hiver.mall.operatingarea.mapper;
+
+import cc.hiver.mall.operatingarea.entity.OperatingArea;
+import cc.hiver.mall.operatingarea.pojo.OperatingAreaPageQuery;
+import cc.hiver.mall.operatingarea.vo.OperatingAreaPageVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface OperatingAreaMapper extends BaseMapper {
+
+ List getByArea(@Param("province") String province, @Param("city") String city, @Param("area") String area, @Param("shippingType") String shippingType);
+
+ List getOperatingAreaList(Page page, @Param("queryParams") OperatingAreaPageQuery operatingAreaPageQuery);
+}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/pojo/OperatingAreaPageQuery.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/pojo/OperatingAreaPageQuery.java
new file mode 100644
index 00000000..16424e97
--- /dev/null
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/pojo/OperatingAreaPageQuery.java
@@ -0,0 +1,61 @@
+/*
+Copyright [2022] [https://hiver.cc]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+ */
+package cc.hiver.mall.operatingarea.pojo;
+
+import cc.hiver.core.base.HiverBasePageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 商品分页查询对象
+ *
+ * @author 王富康
+ * @date 2023/10/14
+ */
+@ApiModel("运营区域分页查询对象")
+@Data
+public class OperatingAreaPageQuery extends HiverBasePageQuery {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("类型:0:物流名称;1:快递名称;2:送车")
+ private String shippingType;
+
+ @ApiModelProperty("物流名称/快递名称/车牌号")
+ private String shippingMethod;
+
+ @ApiModelProperty("物流公司id/快递公司id/车牌号id")
+ private String shippingMethodId;
+
+ @ApiModelProperty("省")
+ private String province;
+
+ @ApiModelProperty("市")
+ private String city;
+
+ @ApiModelProperty("县")
+ private String area;
+
+ @ApiModelProperty("收费标准")
+ private String chargingStandard;
+
+ @ApiModelProperty("排序字段名")
+ private String sortField;
+
+ @ApiModelProperty("排序规则(asc:升序;desc:降序)")
+ private String sort;
+
+}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/service/OperatingAreaService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/service/OperatingAreaService.java
new file mode 100644
index 00000000..31041bbb
--- /dev/null
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/service/OperatingAreaService.java
@@ -0,0 +1,23 @@
+package cc.hiver.mall.operatingarea.service;
+
+import cc.hiver.mall.operatingarea.entity.OperatingArea;
+import cc.hiver.mall.operatingarea.pojo.OperatingAreaPageQuery;
+import cc.hiver.mall.operatingarea.vo.OperatingAreaPageVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * 运营区域 接口层
+ * @author 王富康
+ * @date 2023/12/16
+ */
+public interface OperatingAreaService extends IService {
+
+ boolean deleteOperatingArea(String id);
+
+ List getByArea(String province, String city, String area,String shippingType);
+
+ IPage getOperatingAreaList(OperatingAreaPageQuery operatingAreaPageQuery);
+}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/service/impl/OperatingAreaServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/service/impl/OperatingAreaServiceImpl.java
new file mode 100644
index 00000000..1054d01d
--- /dev/null
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/service/impl/OperatingAreaServiceImpl.java
@@ -0,0 +1,47 @@
+package cc.hiver.mall.operatingarea.service.impl;
+
+import cc.hiver.mall.operatingarea.entity.OperatingArea;
+import cc.hiver.mall.operatingarea.mapper.OperatingAreaMapper;
+import cc.hiver.mall.operatingarea.pojo.OperatingAreaPageQuery;
+import cc.hiver.mall.operatingarea.service.OperatingAreaService;
+import cc.hiver.mall.operatingarea.vo.OperatingAreaPageVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 运营区域 实现层
+ * @author 王富康
+ * @date 2023/12/16
+ */
+@Slf4j
+@Service
+public class OperatingAreaServiceImpl extends ServiceImpl implements OperatingAreaService {
+
+ @Autowired
+ private OperatingAreaMapper operatingAreaMapper;
+
+ @Override
+ public boolean deleteOperatingArea(String id) {
+ final int i = operatingAreaMapper.deleteById(id);
+ return i > 0;
+ }
+
+ @Override
+ public List getByArea(String province, String city, String area, String shippingType) {
+ return operatingAreaMapper.getByArea(province, city, area, shippingType);
+ }
+
+ @Override
+ public IPage getOperatingAreaList(OperatingAreaPageQuery operatingAreaPageQuery) {
+ final Page page = new Page<>(operatingAreaPageQuery.getPageNum(), operatingAreaPageQuery.getPageSize());
+ final List list = operatingAreaMapper.getOperatingAreaList(page, operatingAreaPageQuery);
+ page.setRecords(list);
+ return page;
+ }
+}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/vo/OperatingAreaPageVO.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/vo/OperatingAreaPageVO.java
new file mode 100644
index 00000000..2c6a0bd4
--- /dev/null
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/operatingarea/vo/OperatingAreaPageVO.java
@@ -0,0 +1,53 @@
+/*
+Copyright [2022] [https://hiver.cc]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+ */
+package cc.hiver.mall.operatingarea.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 商品分页查询对应Vo
+ *
+ * @author 王富康
+ * @date 2023/10/14
+ */
+@Data
+@Accessors(chain = true)
+@TableName(autoResultMap = true)
+public class OperatingAreaPageVO {
+ @ApiModelProperty("类型:0:物流名称;1:快递名称;2:送车")
+ private String shippingType;
+
+ @ApiModelProperty("物流名称/快递名称/车牌号")
+ private String shippingMethod;
+
+ @ApiModelProperty("物流公司id/快递公司id/车牌号id")
+ private String shippingMethodId;
+
+ @ApiModelProperty("省")
+ private String province;
+
+ @ApiModelProperty("市")
+ private String city;
+
+ @ApiModelProperty("县")
+ private String area;
+
+ @ApiModelProperty("收费标准")
+ private String chargingStandard;
+}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/dto/SaleQueryDTO.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/dto/SaleQueryDTO.java
index 95f7a284..220fb467 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/dto/SaleQueryDTO.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/dto/SaleQueryDTO.java
@@ -1,7 +1,6 @@
package cc.hiver.mall.pojo.dto;
import cc.hiver.mall.entity.Sale;
-import cc.hiver.mall.entity.SaleDetail;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -31,4 +30,6 @@ public class SaleQueryDTO implements Serializable {
@ApiModelProperty(value = "客户名称")
private String username;
+ @ApiModelProperty(value = "挂单及分享单的id")
+ private String oldSaleId;
}
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/ProductPageQuery.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/ProductPageQuery.java
index 638851e6..79a453f5 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/ProductPageQuery.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/ProductPageQuery.java
@@ -60,4 +60,7 @@ public class ProductPageQuery extends HiverBasePageQuery {
@ApiModelProperty("排序规则(asc:升序;desc:降序)")
private String sort;
+
+ @ApiModelProperty("查询条件")
+ private String searchStr;
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/PurchaseVo.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/PurchaseVo.java
index f31abe4a..e4544017 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/PurchaseVo.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/PurchaseVo.java
@@ -1,6 +1,8 @@
package cc.hiver.mall.pojo.vo;
-import cc.hiver.mall.entity.*;
+import cc.hiver.mall.entity.Purchase;
+import cc.hiver.mall.entity.PurchaseDetail;
+import cc.hiver.mall.entity.Supplier;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -10,6 +12,10 @@ import java.util.List;
@Data
@Accessors(chain = true)
public class PurchaseVo {
+
+ @ApiModelProperty(value = "供应商信息")
+ private Supplier supplier;
+
@ApiModelProperty(value = "采购单主表")
private Purchase purchase;
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/SaleNewVO.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/SaleNewVO.java
index a183bd0f..83386ebf 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/SaleNewVO.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/SaleNewVO.java
@@ -1,8 +1,10 @@
package cc.hiver.mall.pojo.vo;
+import cc.hiver.core.entity.LogiticsCompany;
import cc.hiver.mall.entity.Customer;
import cc.hiver.mall.entity.OrderXd;
import cc.hiver.mall.entity.Sale;
+import cc.hiver.mall.entity.Shop;
import cc.hiver.mall.pojo.dto.SaleDetailDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -24,7 +26,13 @@ public class SaleNewVO implements Serializable {
@ApiModelProperty(value = "客户明细")
private Customer customer;
+ @ApiModelProperty(value = "物流公司信息")
+ private LogiticsCompany logiticsCompany;
+
@ApiModelProperty(value = "配送详情")
private OrderXd orderXd;
+ @ApiModelProperty(value = "店铺信息")
+ private Shop shop;
+
}
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java
index 59c11807..4442f9e2 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java
@@ -7,4 +7,6 @@ import java.math.BigDecimal;
public interface SaleService extends IService {
void editPayPrice(String id, BigDecimal price, String dealingsWay);
+
+ boolean deleteById(String id);
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesAndDetailsServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesAndDetailsServiceImpl.java
index a214f412..ecc66443 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesAndDetailsServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesAndDetailsServiceImpl.java
@@ -210,7 +210,7 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService {
Product product;
final List saleDetailList = saleDTO.getSaleDetailList();
- final List saleDetailList2 = new ArrayList();
+ final List saleDetailList2 = new ArrayList<>();
int productCount = 0;
@@ -225,6 +225,7 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService {
saleDetailDTO.setPrice(product.getPrice());
saleDetailDTO.setWholesalePrice(product.getWholesalePrice());
saleDetailDTO.setPurchasePrice(product.getPurchasePrice());
+ saleDetailDTO.setProductPicture(product.getProductPicture());
for(SaleDetailQueryDTO saleDetailQueryDTO : saleDetailDTO.getStockLogList1()){
final SaleDetail saleDetail = new SaleDetail();
saleDetailDTO.setAttributeList(saleDetailQueryDTO.getAttributeList());
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesCalculateServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesCalculateServiceImpl.java
index 138d4d33..6dd9d3c9 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesCalculateServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesCalculateServiceImpl.java
@@ -134,12 +134,14 @@ public class SalesCalculateServiceImpl implements SalesCalculateService {
//获取当日门店利润(当日总营收-当日总成本+(退货总营收-退货总成本))
final QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("shop_id", shopId)
+ // 只查销售单的,
+ .like("sale_id", "XD")
.between("create_time", startDate, endDate);
BigDecimal totalPurchasePrice = new BigDecimal("0.0");
final List list = saleDetailService.list(queryWrapper);
for (SaleDetail saleDetail : list) {
- final BigDecimal purchasePrice = saleDetail.getPurchasePrice();
- final int productCount = saleDetail.getProductCount();
+ final BigDecimal purchasePrice = saleDetail.getPurchasePrice() == null ? BigDecimal.valueOf(0) :saleDetail.getPurchasePrice();
+ final int productCount = saleDetail.getProductCount() == null ? 0 : saleDetail.getProductCount();
totalPurchasePrice = totalPurchasePrice.add(purchasePrice.multiply(new BigDecimal(productCount)));
}
/*final QueryWrapper returnDetailQueryWrapper = new QueryWrapper<>();
@@ -157,7 +159,7 @@ public class SalesCalculateServiceImpl implements SalesCalculateService {
//获取当日门店下单客户数
final QueryWrapper querySaleWrapper = new QueryWrapper<>();
- querySaleWrapper.select("count(user_id)")
+ querySaleWrapper.select("user_id")
.eq("shop_id", shopId)
.ne("status",SaleConstant.SALE_STATUS[2])
.ne("status",SaleConstant.SALE_STATUS[12])
@@ -166,13 +168,11 @@ public class SalesCalculateServiceImpl implements SalesCalculateService {
.groupBy("user_id");
final List