From fa668c325f2dac348fb9f80c0c6c679f9ce1e41b Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 10 三月 2026 18:28:17 +0800
Subject: [PATCH] 小程序 接口开发
---
server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java | 147 +++++++++++++++++++++++++++++++++---------------
1 files changed, 100 insertions(+), 47 deletions(-)
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
index c31ca94..94fa98b 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -4,7 +4,6 @@
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.Jwt.JwtPayLoad;
import com.doumee.config.Jwt.JwtTokenUtil;
-import com.doumee.config.listener.event.VisitEvent;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -147,6 +146,8 @@
shop.setIsrec(Constants.ONE);
shop.setOrigin(Constants.ONE);
shop.setSaleType(Constants.formatIntegerNum(shop.getSaleType()));
+ shop.setAmount(BigDecimal.ZERO);
+ shop.setTotalAmount(BigDecimal.ZERO);
String salt = RandomStringUtils.randomAlphabetic(6);
shop.setPassword(shop.getCode()+"@123456");
@@ -154,11 +155,22 @@
shop.setPassword(Utils.Secure.encryptPassword(shop.getPassword(), salt));
shop.setSalt(salt);
shopMapper.insert(shop);
+ //鍒嗕韩鐮�
String url = inviteRecordService.createShopMiniProgramCode(shop.getId());
if(StringUtils.isNotBlank(url)){
shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
.set(Shop::getProgramCode,url)
.eq(Shop::getId,shop.getId()));
+ }
+ if(StringUtils.isNotBlank(shop.getPosterImg())) {
+ //鍒嗕韩娴锋姤
+ String posterUrl = inviteRecordService.createShareImg(Constants.ONE, shop.getId(), shop.getPosterImg());
+ //鐢熸垚澶辫触浼氱敓鎴愬瓧绗︿覆 1
+ if (StringUtils.isNotBlank(posterUrl)&&!posterUrl.equals("1")) {
+ shopMapper.update(null, new UpdateWrapper<Shop>().lambda()
+ .set(Shop::getPosterImgCode, posterUrl)
+ .eq(Shop::getId, shop.getId()));
+ }
}
return shop.getId();
}
@@ -238,7 +250,7 @@
@Override
@Transactional
- public void updateById(Shop shop) {
+ public void updateById(Shop shop) throws Exception {
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
if(shop.getId()==null ){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage());
@@ -251,6 +263,19 @@
shop.setEditor(user.getId());
shop.setEditDate(new Date());
+ //鍒嗕韩鐮�
+ String url = inviteRecordService.createShopMiniProgramCode(shop.getId());
+ if(StringUtils.isNotBlank(url)){
+ shop.setProgramCode(url);
+ }
+ if(StringUtils.isNotBlank(shop.getPosterImg())){
+ //鍒嗕韩娴锋姤
+ String posterUrl = inviteRecordService.createShareImg(Constants.ONE,shop.getId(),shop.getPosterImg());
+ //鐢熸垚澶辫触浼氱敓鎴愬瓧绗︿覆 1
+ if (StringUtils.isNotBlank(posterUrl)&&!posterUrl.equals("1")) {
+ shop.setPosterImgCode(posterUrl);
+ }
+ }
shopMapper.updateById(shop);
if(shop.getSaleType() !=null && !Constants.equalsInteger(shop.getSaleType(),model.getSaleType())){
//濡傛灉閿�鍞ā寮忓彂鐢熺紪鐮侊紝璁板綍鍙樻洿璁板綍
@@ -261,8 +286,8 @@
shop.getEditDate(),
new String[]{user.getUsername(), DateUtil.getPlusTime2(shop.getEditDate())},
JSONObject.toJSONString(shop) ,
- Constants.equalsInteger(model.getSaleType(),Constants.ONE)?"鑷敱閲囪喘":"骞冲彴閾鸿揣",
- Constants.equalsInteger(shop.getSaleType(),Constants.ONE)?"鑷敱閲囪喘":"骞冲彴閾鸿揣");
+ Constants.equalsInteger(model.getSaleType(),Constants.ONE)?"鑷富閲囪喘":"骞冲彴閾鸿揣",
+ Constants.equalsInteger(shop.getSaleType(),Constants.ONE)?"鑷富閲囪喘":"骞冲彴閾鸿揣");
}
}
@@ -277,15 +302,15 @@
}
- @Override
- public void updateByIdInBatch(List<Shop> shops) {
- if (CollectionUtils.isEmpty(shops)) {
- return;
- }
- for (Shop shop: shops) {
- this.updateById(shop);
- }
- }
+// @Override
+// public void updateByIdInBatch(List<Shop> shops) {
+// if (CollectionUtils.isEmpty(shops)) {
+// return;
+// }
+// for (Shop shop: shops) {
+// this.updateById(shop);
+// }
+// }
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
@Override
@@ -402,7 +427,18 @@
queryWrapper.leftJoin(Member.class,Member::getId,Shop::getMemberId);
queryWrapper.leftJoin(Labels.class,Labels::getId,Shop::getBigAreaId);
-
+ if(pageWrap.getModel().getAreaId()!=null){
+ queryWrapper.eq( Shop::getAreaId, pageWrap.getModel().getAreaId());
+ }else if(pageWrap.getModel().getCityId()!=null){
+ queryWrapper.leftJoin("areas a1 on a1.id=t.area_id");
+ queryWrapper.leftJoin("areas a2 on a2.id=a1.parent_id");
+ queryWrapper.apply("a2.id ="+pageWrap.getModel().getCityId());
+ } else if (pageWrap.getModel().getProvinceId()!=null){
+ queryWrapper.leftJoin("areas a1 on a1.id=t.area_id");
+ queryWrapper.leftJoin("areas a2 on a2.id=a1.parent_id");
+ queryWrapper.leftJoin("areas a3 on a3.id=a2.parent_id");
+ queryWrapper.apply("a3.id ="+pageWrap.getModel().getProvinceId());
+ }
queryWrapper.eq(Shop::getIsdeleted, Constants.ZERO);
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()) ,Shop::getCode,pageWrap.getModel().getCode());
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getUsername()) ,Shop::getName,pageWrap.getModel().getUsername());
@@ -547,9 +583,6 @@
dto.setLabels(labels.stream().map(s->s.getName()).collect(Collectors.toList()));
List<ShopMenuDTO> shopMenuDTO = shopMenuService.findShopMenuDTO(shopId);
dto.setShopMenuDTOList(shopMenuDTO);
- //璁块棶鎿嶄綔
- VisitEvent<Shop> shopVisitEvent = new VisitEvent<>(this,shop);
- applicationEventPublisher.publishEvent(shopVisitEvent);
return dto;
}
@@ -679,21 +712,21 @@
&& StringUtils.isNotBlank(dto.getLgt())){
isArea = true;
}
-
- List<Shop> shopList = shopJoinMapper.selectList(new MPJLambdaWrapper<Shop>()
+ List<Shop> shopList = shopJoinMapper.selectJoinList(Shop.class,new MPJLambdaWrapper<Shop>()
.selectAll(Shop.class)
- .select(" CONVERT( ST_Distance_Sphere ( POINT ( LONGITUDE, LATITUDE ), POINT ( "+dto.getLgt()+", "+dto.getLat()+" )) /1000,DECIMAL(15,2))",Shop::getDistance)
- .leftJoin(Areas.class,Areas::getId,Shop::getAreaId)
- .eq(Objects.nonNull(dto.getCityId()),Areas::getParentId,dto.getCityId())
- .like(Objects.nonNull(dto.getShopName()),Shop::getName,dto.getShopName())
+ .select(" CONVERT( ST_Distance_Sphere ( POINT ( LONGITUDE, LATITUDE ), POINT ( '"+dto.getLgt()+"' , '"+dto.getLat()+"' )) /1000,DECIMAL(15,2))",Shop::getDistance)
+ .leftJoin(SystemUser.class,SystemUser::getId,Shop::getCreator)
+ .leftJoin("areas a1 on a1.id=t.area_id")
+ .leftJoin("areas a2 on a2.id=a1.parent_id")
+ .like(StringUtils.isNotBlank(dto.getCityName()),"a2.name",dto.getCityName())
+ .like(StringUtils.isNotBlank(dto.getShopName()),Shop::getName,dto.getShopName())
.orderByDesc(!isArea,Shop::getId)
- .orderByAsc(isArea,Shop::getDistance)
+ .orderByAsc(isArea," distance ")
);
String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+ systemDictDataBiz.queryByCode(Constants.OSS, Constants.SHOP_FILE).getCode();
for(Shop model:shopList){
- model.setImgFullUrl(path+model.getImgurl());
-
+ model.setImgFullUrl(StringUtils.isNotBlank(model.getImgurl())?path+model.getImgurl():null);
}
return shopList;
}
@@ -751,6 +784,7 @@
if(!pwd.equals(shop.getPassword())){
throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
}
+ shop.setOpenId(dto.getOpenid());
//鍒涘缓token
// JwtPayLoad payLoad = new JwtPayLoad(Constants.SHOP_PREFIX+shop.getId());
// String token = JwtTokenUtil.generateToken(payLoad);
@@ -861,34 +895,53 @@
//鑷畾涔夋棩鏈�
.apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getStartDate()), " t.CREATE_DATE >= '"+request.getStartDate()+" 00:00:00'")
.apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getEndDate()), " t.CREATE_DATE <= '"+request.getEndDate()+" 23:59:59'")
- .ne(Goodsorder::getStatus,Constants.OrderStatus.CLOSE.getKey())
+ .in(Goodsorder::getStatus,Constants.OrderStatus.PAY_DONE.getKey(),Constants.OrderStatus.WAIT_RECEIVE.getKey(),Constants.OrderStatus.DONE.getKey())
.orderByDesc(Goodsorder::getId)
);
if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(goodsorderList)) {
- saleReportResponse.setSaleTotal(goodsorderList.stream().map(i->i.getPrice().subtract(i.getMailPrice())).reduce(BigDecimal.ZERO, BigDecimal::add));
+ saleReportResponse.setSaleTotal(goodsorderList.stream().map(i->i.getTotalPrice().subtract(i.getMailPrice())).reduce(BigDecimal.ZERO, BigDecimal::add));
saleReportResponse.setOrderNum(goodsorderList.size());
}
- List<Integral> integralList = integralMapper.selectList(new QueryWrapper<Integral>().lambda()
- .eq(Integral::getIsdeleted,Constants.ZERO)
- .eq(Integral::getMemberId,shopId)
- .eq(Integral::getUserType,Constants.TWO)
- .eq(Integral::getType,Constants.ZERO)
- .eq(Integral::getObjType,Constants.IntegralObjType.ORDER_DONE_AMOUNT.getKey())
- //浠婃棩
- .apply(Constants.equalsInteger(request.getDateType(),Constants.ZERO), " DATE(CREATE_DATE) = DATE(NOW()) ")
- //褰撴湀
- .apply(Constants.equalsInteger(request.getDateType(),Constants.ONE), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')")
- //涓婃湀
- .apply(Constants.equalsInteger(request.getDateType(),Constants.TWO), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') ")
- //鍥哄畾鏈堜唤
- .apply(Constants.equalsInteger(request.getDateType(),Constants.THREE)&&StringUtils.isNotBlank(request.getStartDate()), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB('"+request.getStartDate()+"', INTERVAL 1 MONTH), '%Y-%m') ")
- //鑷畾涔夋棩鏈�
- .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getStartDate()), " CREATE_DATE >= '"+request.getStartDate()+" 00:00:00'")
- .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getEndDate()), " CREATE_DATE <= '"+request.getEndDate()+" 23:59:59'")
+// List<Integral> integralList = integralMapper.selectList(new QueryWrapper<Integral>().lambda()
+// .eq(Integral::getIsdeleted,Constants.ZERO)
+// .eq(Integral::getMemberId,shopId)
+// .eq(Integral::getUserType,Constants.TWO)
+// .eq(Integral::getType,Constants.ZERO)
+// .eq(Integral::getObjType,Constants.IntegralObjType.ORDER_DONE_AMOUNT.getKey())
+// //浠婃棩
+// .apply(Constants.equalsInteger(request.getDateType(),Constants.ZERO), " DATE(CREATE_DATE) = DATE(NOW()) ")
+// //褰撴湀
+// .apply(Constants.equalsInteger(request.getDateType(),Constants.ONE), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')")
+// //涓婃湀
+// .apply(Constants.equalsInteger(request.getDateType(),Constants.TWO), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') ")
+// //鍥哄畾鏈堜唤
+// .apply(Constants.equalsInteger(request.getDateType(),Constants.THREE)&&StringUtils.isNotBlank(request.getStartDate()), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB('"+request.getStartDate()+"', INTERVAL 1 MONTH), '%Y-%m') ")
+// //鑷畾涔夋棩鏈�
+// .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getStartDate()), " CREATE_DATE >= '"+request.getStartDate()+" 00:00:00'")
+// .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getEndDate()), " CREATE_DATE <= '"+request.getEndDate()+" 23:59:59'")
+// );
+ goodsorderList = goodsorderJoinMapper.selectJoinList(Goodsorder.class,
+ new MPJLambdaWrapper<Goodsorder>()
+ .selectAll(Goodsorder.class)
+ .eq(Goodsorder::getIsdeleted,Constants.ZERO)
+ .eq(Goodsorder::getDistributionShopId,shopId)
+ //浠婃棩
+ .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.ZERO), " DATE(t.DONE_DATE) = DATE(NOW()) ")
+ //褰撴湀
+ .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.ONE), " DATE_FORMAT(t.DONE_DATE, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')")
+ //涓婃湀
+ .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.TWO), " DATE_FORMAT(t.DONE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') ")
+ //鍥哄畾鏈堜唤
+ .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.THREE)&&StringUtils.isNotBlank(request.getStartDate()), " DATE_FORMAT(t.DONE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB('"+request.getStartDate()+"', INTERVAL 1 MONTH), '%Y-%m') ")
+ //鑷畾涔夋棩鏈�
+ .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getStartDate()), " t.DONE_DATE >= '"+request.getStartDate()+" 00:00:00'")
+ .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getEndDate()), " t.DONE_DATE <= '"+request.getEndDate()+" 23:59:59'")
+ .in(Goodsorder::getStatus,Constants.OrderStatus.DONE.getKey())
+ .orderByDesc(Goodsorder::getId)
);
- if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(integralList)) {
- saleReportResponse.setProfitTotal(integralList.stream().map(i->i.getNum()).reduce(BigDecimal.ZERO, BigDecimal::add));
+ if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(goodsorderList)) {
+ saleReportResponse.setProfitTotal(goodsorderList.stream().filter(i->Objects.nonNull(i.getShopSettlement())).map(i->i.getShopSettlement()).reduce(BigDecimal.ZERO, BigDecimal::add));
}
return saleReportResponse;
}
--
Gitblit v1.9.3