From 77a12468215a8a8a5b3a22544bdcc239efddf287 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 12 Aug 2022 14:26:51 +0800
Subject: [PATCH] 20220810
---
src/main/java/cc/mrbird/febs/mall/controller/AdminMallTeamLeaderController.java | 15 ++
src/main/resources/mapper/modules/MallTeamLeaderMapper.xml | 5
src/main/java/cc/mrbird/febs/mall/mapper/MallLeaderStockMapper.java | 7 +
src/main/java/cc/mrbird/febs/pay/service/IXcxPayService.java | 9 +
src/test/java/cc/mrbird/febs/ProfitTest.java | 2
src/main/java/cc/mrbird/febs/mall/controller/ViewMallTeamLeaderController.java | 11 +
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 62 ++++++++++
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java | 17 ++
pom.xml | 6 +
src/main/java/cc/mrbird/febs/mall/entity/MallLeaderStock.java | 29 ++++
src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java | 14 ++
src/main/java/cc/mrbird/febs/mall/service/IAdminMallTeamLeaderService.java | 3
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java | 1
src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java | 2
src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java | 51 ++++++++
src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java | 14 +-
src/main/resources/templates/febs/views/modules/leader/leaderList.html | 13 ++
src/main/resources/templates/febs/views/modules/leader/leaderGoodsUpdate.html | 54 +++++++++
src/main/java/cc/mrbird/febs/mall/mapper/MallTeamLeaderMapper.java | 3
19 files changed, 307 insertions(+), 11 deletions(-)
diff --git a/pom.xml b/pom.xml
index 782a844..8d3c8ec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,12 @@
</properties>
<dependencies>
+ <!--微信小程序三方sdk-->
+ <dependency>
+ <groupId>com.github.binarywang</groupId>
+ <artifactId>weixin-java-miniapp</artifactId>
+ <version>4.1.0</version>
+ </dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
index 8532909..936282e 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
@@ -5,6 +5,8 @@
@Getter
public enum DataDictionaryEnum {
+ //微信订阅模板ID,微信订单通知
+ WX_TEMPLATE_ID_ONE("WX_TEMPLATE", "WX_TEMPLATE_ID_ONE"),
//配送设置
HOME_DELIVERY_AMOUNT("DELIVERY_SETTING", "HOME_DELIVERY_AMOUNT"),
FRIST_COST_LEVEL("HOME_DELIVERY_SETTING", "FRIST_COST_LEVEL"),
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
index a3e1ece..f9c0364 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
@@ -5,6 +5,7 @@
import cc.mrbird.febs.common.entity.DeptTree;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum;
import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
import cc.mrbird.febs.common.exception.FebsException;
@@ -15,10 +16,7 @@
import cc.mrbird.febs.common.utils.excl.ResponseHeadUtil;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
-import cc.mrbird.febs.mall.mapper.MallMemberMapper;
-import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
-import cc.mrbird.febs.mall.mapper.MallOrderRefundOperationMapper;
-import cc.mrbird.febs.mall.mapper.MallTeamLeaderMapper;
+import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
import cc.mrbird.febs.mall.service.IAdminMallOrderService;
import cc.mrbird.febs.mall.vo.AdminAddAddressTreeVo;
@@ -62,6 +60,7 @@
private final IXcxPayService iXcxPayService;
private final MallTeamLeaderMapper mallTeamLeaderMapper;
private final MallMemberMapper mallMemberMapper;
+ private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
/**
* 订单列表
@@ -324,12 +323,15 @@
String productNames = getProductNames(mallOrderInfo.getMemberId(), mallOrderInfo.getId());
orderStateDto.setGoodsName(StrUtil.isEmpty(productNames)?"商品":productNames);
orderStateDto.setOrderState("已送达自提点");
+ orderStateDto.setTakeCode(mallOrderInfo.getTakeCode());
String takeUniqueCode = mallOrderInfo.getTakeUniqueCode();
MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode);
orderStateDto.setAddressArea(mallTeamLeader.getAddressArea());
orderStateDto.setOpenId(mallMemberMapper.selectById(mallOrderInfo.getMemberId()).getOpenId());
- orderStateDto.setTemplateId(WechatConfigure.WX_ORDER_STATEMSG_TEMPLATE_ID);
- iXcxPayService.pushOrderToAddress(orderStateDto);
+ DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getType(), DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getCode());
+ orderStateDto.setTemplateId(dataDictionaryCustom.getValue());
+// iXcxPayService.pushOrderToAddress(orderStateDto);
+ iXcxPayService.uniformMessageSend(orderStateDto);
}
return new FebsResponse().success();
}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallTeamLeaderController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallTeamLeaderController.java
index 1eeebc2..9a42352 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallTeamLeaderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallTeamLeaderController.java
@@ -6,6 +6,8 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.dto.AdminLeaderUpdateDto;
import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.entity.MallLeaderStock;
+import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallTeamLeader;
import cc.mrbird.febs.mall.service.IAdminMallTeamLeaderService;
import cc.mrbird.febs.mall.vo.AdminSelectListLeaderVo;
@@ -64,4 +66,17 @@
return iAdminMallTeamLeaderService.leaderCancel(id);
}
+ /**
+ * 团长信息-商品库存编辑
+ */
+ @GetMapping("/leaderGoodsUpdate")
+ public FebsResponse leaderGoodsUpdate(QueryRequest request, MallLeaderStock mallLeaderStock, Integer parentId) {
+ if (parentId == null) {
+ ViewMallTeamLeaderController.idLeaderGoodsUpdate = 0;
+ }
+ mallLeaderStock.setTeamLeaderId(ViewMallTeamLeaderController.idLeaderGoodsUpdate);
+ Map<String, Object> dataTable = getDataTable(iAdminMallTeamLeaderService.leaderGoodsUpdate(request, mallLeaderStock));
+ return new FebsResponse().success().data(dataTable);
+ }
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallTeamLeaderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallTeamLeaderController.java
index dcc8b26..fef6585 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallTeamLeaderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallTeamLeaderController.java
@@ -41,4 +41,15 @@
model.addAttribute("leaderInfo", data);
return FebsUtil.view("modules/leader/leaderUpdate");
}
+
+
+ public static long idLeaderGoodsUpdate;
+ /**
+ * 团长信息-商品库存编辑
+ */
+ @GetMapping("leaderGoodsUpdate/{id}")
+ public String leaderGoodsUpdate(@PathVariable long id, Model model) {
+ idLeaderGoodsUpdate = id;
+ return FebsUtil.view("modules/leader/leaderGoodsUpdate");
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallLeaderStock.java b/src/main/java/cc/mrbird/febs/mall/entity/MallLeaderStock.java
new file mode 100644
index 0000000..9d778c6
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallLeaderStock.java
@@ -0,0 +1,29 @@
+package cc.mrbird.febs.mall.entity;
+
+import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * 团长商品库存表
+ */
+@Data
+@TableName("mall_leader_stock")
+public class MallLeaderStock extends BaseEntity {
+
+ //团长ID
+ private Long teamLeaderId;
+
+ //商品ID
+ private Long goodsId;
+
+ //商品名称
+ private String goodsName;
+
+ //库存
+ private Integer goodsStock;
+
+ //销售数量
+ private Integer goodsVolume;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallLeaderStockMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallLeaderStockMapper.java
new file mode 100644
index 0000000..87d44c6
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallLeaderStockMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.mall.mapper;
+
+import cc.mrbird.febs.mall.entity.MallLeaderStock;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface MallLeaderStockMapper extends BaseMapper<MallLeaderStock> {
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallTeamLeaderMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallTeamLeaderMapper.java
index 30978b4..a3b7955 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallTeamLeaderMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallTeamLeaderMapper.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.mall.dto.ApiLeaderListDto;
import cc.mrbird.febs.mall.dto.ApiLeaderOrderListDto;
+import cc.mrbird.febs.mall.entity.MallLeaderStock;
import cc.mrbird.febs.mall.entity.MallOrderInfo;
import cc.mrbird.febs.mall.entity.MallTeamLeader;
import cc.mrbird.febs.mall.vo.AdminMallTeamLeaderVo;
@@ -27,4 +28,6 @@
MallTeamLeader selectLeaderByUniqueCode(@Param("uniqueCode")String uniqueCode);
MallTeamLeader selectLeaderByLonAndLat(@Param("longitude")Double longitude, @Param("latitude")Double latitude);
+
+ IPage<MallLeaderStock> selectleaderGoodsStockListInPage(Page<MallLeaderStock> page, @Param("record")MallLeaderStock mallLeaderStock);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallTeamLeaderService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallTeamLeaderService.java
index fcf3239..e0bdf54 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallTeamLeaderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallTeamLeaderService.java
@@ -3,6 +3,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.dto.AdminLeaderUpdateDto;
+import cc.mrbird.febs.mall.entity.MallLeaderStock;
import cc.mrbird.febs.mall.entity.MallTeamLeader;
import cc.mrbird.febs.mall.vo.AdminMallTeamLeaderVo;
import cc.mrbird.febs.mall.vo.AdminSelectListLeaderVo;
@@ -22,4 +23,6 @@
List<AdminSelectListLeaderVo> selectList(MallTeamLeader mallTeamLeader);
FebsResponse leaderCancel(Long id);
+
+ IPage<MallLeaderStock> leaderGoodsUpdate(QueryRequest request, MallLeaderStock mallLeaderStock);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
index 31e930d..a6d007d 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
@@ -5,7 +5,11 @@
import cc.mrbird.febs.mall.conversion.MallTeamLeaderConversion;
import cc.mrbird.febs.mall.dto.AdminLeaderUpdateDto;
import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.entity.MallLeaderStock;
import cc.mrbird.febs.mall.entity.MallTeamLeader;
+import cc.mrbird.febs.mall.mapper.MallGoodsMapper;
+import cc.mrbird.febs.mall.mapper.MallLeaderStockMapper;
+import cc.mrbird.febs.mall.mapper.MallMemberMapper;
import cc.mrbird.febs.mall.mapper.MallTeamLeaderMapper;
import cc.mrbird.febs.mall.service.IAdminMallTeamLeaderService;
import cc.mrbird.febs.mall.vo.AdminMallActSetVo;
@@ -13,6 +17,7 @@
import cc.mrbird.febs.mall.vo.AdminSelectListLeaderVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -29,6 +34,10 @@
@RequiredArgsConstructor
@Transactional
public class AdminMallTeamLeaderServiceImpl extends ServiceImpl<MallTeamLeaderMapper, MallTeamLeader> implements IAdminMallTeamLeaderService {
+
+ private final MallLeaderStockMapper mallLeaderStockMapper;
+ private final MallGoodsMapper mallGoodsMapper;
+
@Override
public IPage<AdminMallTeamLeaderVo> getLeaderListInPage(MallTeamLeader mallTeamLeader, QueryRequest request) {
Page<AdminMallTeamLeaderVo> page = new Page<>(request.getPageNum(), request.getPageSize());
@@ -93,4 +102,12 @@
return new FebsResponse().success().message("已取消");
}
+ @Override
+ public IPage<MallLeaderStock> leaderGoodsUpdate(QueryRequest request, MallLeaderStock mallLeaderStock) {
+
+ Integer goodsNumber = mallGoodsMapper.selectCount(new QueryWrapper<>());
+ Page<MallLeaderStock> page = new Page<>(request.getPageNum(), goodsNumber);
+ IPage<MallLeaderStock> mallTeamLeaders = this.baseMapper.selectleaderGoodsStockListInPage(page, mallLeaderStock);
+ return mallTeamLeaders;
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 8a4e680..62bf853 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -16,6 +16,7 @@
import cc.mrbird.febs.mall.vo.OrderListVo;
import cc.mrbird.febs.mall.vo.OrderRefundVo;
import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
+import cc.mrbird.febs.pay.model.OrderStateDto;
import cc.mrbird.febs.pay.service.IPayService;
import cc.mrbird.febs.pay.service.IXcxPayService;
import cc.mrbird.febs.pay.util.WeixinServiceUtil;
@@ -33,6 +34,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -69,6 +71,9 @@
private final IXcxPayService iXcxPayService;
private final IMallAchieveService mallAchieveService;
private final MallRefundMapper mallRefundMapper;
+ private final MallTeamLeaderMapper mallTeamLeaderMapper;
+ private final MallMemberMapper mallMemberMapper;
+ private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -184,7 +189,7 @@
orderInfo.setPhone(address.getPhone());
orderInfo.setIsHome(addOrderDto.getIsHome());
//订单金额大于50,且选择送货上门,订单需要选择地址信息
- if(total.compareTo(new BigDecimal(50)) > 0 && 1 == addOrderDto.getIsHome()){
+ if(1 == addOrderDto.getIsHome()){
if (StrUtil.isBlank(address.getLatitude())||StrUtil.isBlank(address.getLongitude())) {
throw new FebsException("请添加地址");
}
@@ -215,6 +220,44 @@
orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
orderInfo.setCancelType(MallOrderInfo.CANCEL_BY_SELF);
this.baseMapper.updateById(orderInfo);
+ }
+
+ /**
+ * 根据用户ID和订单ID获取所购买商品名称
+ * @return 所含商品名称(多个以","隔开)
+ */
+ public String getProductNames(Long memberId, Long orderId) {
+ MallOrderInfo mallOrderInfo = this.baseMapper.selectOrderByMemberIdAndId(memberId, orderId);
+ List<MallOrderItem> details = mallOrderInfo.getItems();
+ if (CollectionUtils.isEmpty(details)) {
+ return "";
+ }
+ StringBuffer productNameBuffer = new StringBuffer();
+ Integer maxLength = 30;
+ for (int i = 0; i< details.size(); i++) {
+ MallOrderItem mallOrderItem = details.get(i);
+ String goodsName = mallOrderItem.getGoodsName();
+ if (goodsName == null) {
+ continue;
+ }
+ if (i == 0 && goodsName.length() > maxLength) {
+ productNameBuffer.append(goodsName.substring(0, maxLength) + "...");
+ break;
+ }
+ if ((productNameBuffer.length() + goodsName.length()) > maxLength) {
+ productNameBuffer.append("等");
+ break;
+ }
+ productNameBuffer.append(goodsName + ",");
+ }
+ String productNames = productNameBuffer.toString();
+ if (productNames.endsWith(",")) {
+ productNames = productNames.substring(0, productNames.length() - 1);
+ }
+ if (productNames.endsWith(",等")) {
+ productNames = productNames.substring(0, productNames.length() - 2) + "等";
+ }
+ return productNames;
}
@Override
@@ -327,6 +370,23 @@
orderInfo.setTakeCode(takeCode);
this.baseMapper.updateById(orderInfo);
+
+
+
+ OrderStateDto orderStateDto = new OrderStateDto();
+ orderStateDto.setOrderNo(orderInfo.getOrderNo());
+ String productNames = getProductNames(orderInfo.getMemberId(), orderInfo.getId());
+ orderStateDto.setGoodsName(StrUtil.isEmpty(productNames)?"商品":productNames);
+ orderStateDto.setOrderState("已送达自提点");
+ orderStateDto.setTakeCode(orderInfo.getTakeCode());
+ String takeUniqueCode = orderInfo.getTakeUniqueCode();
+ MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode);
+ orderStateDto.setAddressArea(mallTeamLeader.getAddressArea());
+ orderStateDto.setOpenId(mallMemberMapper.selectById(orderInfo.getMemberId()).getOpenId());
+ DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getType(), DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getCode());
+ orderStateDto.setTemplateId(dataDictionaryCustom.getValue());
+// iXcxPayService.pushOrderToAddress(orderStateDto);
+ iXcxPayService.uniformMessageSend(orderStateDto);
Map<String, Object> map = new HashMap<>();
map.put("orderInfo", payResultStr);
map.put("orderNo", orderInfo.getOrderNo());
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
index 19a12ee..99ecdfa 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
@@ -155,6 +155,7 @@
String productNames = getProductNames(mallOrderInfo.getMemberId(), mallOrderInfo.getId());
orderStateDto.setGoodsName(StrUtil.isEmpty(productNames)?"商品":productNames);
orderStateDto.setOrderState("已送达自提点");
+ orderStateDto.setTakeCode(mallOrderInfo.getTakeCode());
String takeUniqueCode = mallOrderInfo.getTakeUniqueCode();
MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode);
orderStateDto.setAddressArea(mallTeamLeader.getAddressArea());
diff --git a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
index 5a770c1..70cc703 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
@@ -12,15 +12,19 @@
import cc.mrbird.febs.pay.model.OrderStateDto;
import cc.mrbird.febs.pay.model.OrderStateMsgVo;
import cc.mrbird.febs.pay.model.WxTemplateData;
+import cc.mrbird.febs.pay.service.IPayService;
+import cc.mrbird.febs.pay.service.IXcxPayService;
import cc.mrbird.febs.pay.util.PayThreadPool;
import cc.mrbird.febs.pay.util.Signature;
import cc.mrbird.febs.pay.util.Util;
import cc.mrbird.febs.pay.util.WechatConfigure;
+import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@@ -45,6 +49,9 @@
MallOrderInfoMapper mallOrderInfoMapper;
@Autowired
RedisUtils redisUtils;
+
+ @Autowired
+ private IXcxPayService iXcxPayService;
private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class);
/**
@@ -75,7 +82,6 @@
NotifyData data = new NotifyData();
BeanUtils.copyProperties(bb,data);
log.info("----return_code = {}", data.getReturn_code());
-
// 返回状态码 SUCCESS/FAIL
if (WechatConfigure.CODE_SUCCESS.equals(data.getReturn_code())) {
@@ -150,4 +156,10 @@
out.close();
}
+ @ApiOperation(value = "获取微信订阅TemplateId")
+ @GetMapping(value = "/getTemplateId")
+ public FebsResponse getTemplateId() {
+ return new FebsResponse().success().data(iXcxPayService.getTemplateId());
+ }
+
}
diff --git a/src/main/java/cc/mrbird/febs/pay/service/IXcxPayService.java b/src/main/java/cc/mrbird/febs/pay/service/IXcxPayService.java
index b4ed8cd..43aa0be 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/IXcxPayService.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/IXcxPayService.java
@@ -4,6 +4,8 @@
import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
import cc.mrbird.febs.pay.model.OrderStateDto;
+import java.util.List;
+
public interface IXcxPayService {
/**
@@ -15,4 +17,11 @@
* 发送订单送达消息
*/
void pushOrderToAddress(OrderStateDto info);
+
+ /**
+ * 发送订单送达消息
+ */
+ void uniformMessageSend(OrderStateDto info);
+
+ List<String> getTemplateId();
}
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
index c91cfab..67a8a57 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
@@ -1,11 +1,14 @@
package cc.mrbird.febs.pay.service.impl;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.common.properties.XcxProperties;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.common.utils.SpringContextHolder;
+import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallOrderInfo;
import cc.mrbird.febs.mall.entity.MallOrderItem;
+import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
@@ -15,7 +18,12 @@
import cc.mrbird.febs.pay.service.IXcxPayService;
import cc.mrbird.febs.pay.util.WechatConfigure;
import cc.mrbird.febs.pay.util.WeixinServiceUtil;
+import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage;
+import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.json.JSONUtil;
import cn.hutool.log.Log;
+import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -24,7 +32,9 @@
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
+import java.io.IOException;
import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -39,6 +49,8 @@
MallMemberMapper mallMemberMapper;
@Autowired
WeixinServiceUtil weixinServiceUtil;
+ @Autowired
+ DataDictionaryCustomMapper dataDictionaryCustomMapper;
@Autowired
RedisUtils redisUtils;
@Autowired
@@ -74,8 +86,6 @@
OrderStateMsgVo orderStateMsgVo = new OrderStateMsgVo();
orderStateMsgVo.setToUser(info.getOpenId());//用户的openId
orderStateMsgVo.setTemplateId(info.getTemplateId());//订阅消息模板id
-// wxMssVo.setPage("pages/appointment/line_up?"+"shopId="+info.getShopId());
-
Map<String, WxTemplateData> m = new HashMap<>(5);
m.put("character_string1", new WxTemplateData(info.getOrderNo()));
m.put("thing9", new WxTemplateData(info.getGoodsName()));
@@ -83,10 +93,47 @@
m.put("thing13", new WxTemplateData(info.getAddressArea()));
m.put("thing16", new WxTemplateData(info.getTakeCode()));
orderStateMsgVo.setData(m);
+ String s = JSONUtil.toJsonStr(orderStateMsgVo);
+ log.info(s);
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, orderStateMsgVo, String.class);
log.info(responseEntity.getBody());
}
+ private static final String WXAPPLETURl="https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=";
+
+ @Override
+ public void uniformMessageSend(OrderStateDto info) {
+ RestTemplate restTemplate = new RestTemplate();
+ String url = WXAPPLETURl + redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY);
+ //拼接推送的模版
+ OrderStateMsgVo orderStateMsgVo = new OrderStateMsgVo();
+ orderStateMsgVo.setToUser(info.getOpenId());//用户的openId
+ orderStateMsgVo.setTemplateId(info.getTemplateId());//订阅消息模板id
+ Map<String, WxTemplateData> m = new HashMap<>(5);
+ m.put("character_string1", new WxTemplateData(info.getOrderNo()));
+ m.put("thing9", new WxTemplateData(info.getGoodsName()));
+ m.put("phrase2", new WxTemplateData(info.getOrderState()));
+ m.put("thing13", new WxTemplateData(info.getAddressArea()));
+ m.put("thing16", new WxTemplateData(info.getTakeCode()));
+ orderStateMsgVo.setData(m);
+ String s = JSONUtil.toJsonStr(orderStateMsgVo);
+ log.info(s);
+ ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, orderStateMsgVo, String.class);
+ log.info(responseEntity.getBody());
+ }
+
+ @Override
+ public List<String> getTemplateId() {
+ List<String> wxTemplates = new ArrayList<>();
+ List<DataDictionaryCustom> wxTemplateList = dataDictionaryCustomMapper.selectDicByType(DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getType());
+ if(CollUtil.isNotEmpty(wxTemplateList)){
+ for(DataDictionaryCustom dic : wxTemplateList){
+ wxTemplates.add(dic.getValue());
+ }
+ }
+ return wxTemplates;
+ }
+
/**
* 根据用户ID和订单ID获取所购买商品名称
* @return 所含商品名称(多个以","隔开)
diff --git a/src/main/resources/mapper/modules/MallTeamLeaderMapper.xml b/src/main/resources/mapper/modules/MallTeamLeaderMapper.xml
index 963961c..57a9ccc 100644
--- a/src/main/resources/mapper/modules/MallTeamLeaderMapper.xml
+++ b/src/main/resources/mapper/modules/MallTeamLeaderMapper.xml
@@ -167,4 +167,9 @@
order by distance ASC limit 1
</select>
+ <select id="selectleaderGoodsStockListInPage" resultType="cc.mrbird.febs.mall.entity.MallLeaderStock">
+ select a.* from mall_leader_stock a
+ where a.team_leader_id = #{record.teamLeaderId}
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/leader/leaderGoodsUpdate.html b/src/main/resources/templates/febs/views/modules/leader/leaderGoodsUpdate.html
new file mode 100644
index 0000000..352a4f9
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/leader/leaderGoodsUpdate.html
@@ -0,0 +1,54 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-leaderGoods-update" lay-title="用户资金流水">
+ <div class="layui-row febs-container">
+ <div class="layui-col-md12">
+ <div class="layui-card">
+ <div class="layui-card-body febs-table-full">
+ <table lay-filter="leaderGoodsChild" lay-data="{id: 'leaderGoodsChild'}"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<script data-th-inline="none" type="text/javascript">
+ layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect' ,'eleTree'], function () {
+ var $ = layui.jquery,
+ laydate = layui.laydate,
+ febs = layui.febs,
+ form = layui.form,
+ table = layui.table,
+ treeSelect = layui.treeSelect,
+ dropdown = layui.dropdown,
+ $view = $('#febs-leaderGoods-update'),
+ $query = $view.find('#queryChild'),
+ $searchForm = $view.find('formChild'),
+ sortObject = {field: 'createTime', type: null},
+ tableIns,
+ createTimeFrom,
+ createTimeTo;
+
+ form.render();
+
+ initTable();
+
+ laydate.render({
+ elem: '#user-createTime',
+ range: true,
+ trigger: 'click'
+ });
+
+
+ function initTable() {
+ tableIns = febs.table.init({
+ elem: $view.find('table'),
+ id: 'leaderGoodsChild',
+ url: ctx + 'admin/leader/leaderGoodsUpdate?parentId=1',
+ cols: [[
+ {field: 'goodsName', title: '商品名称', minWidth: 80,align:'center'},
+ {field: 'goodsStock', title: '库存', minWidth: 150,align:'center'},
+ {field: 'goodsVolume', title: '销售数量', minWidth: 150,align:'center'},
+ ]]
+ });
+ }
+
+ })
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/leader/leaderList.html b/src/main/resources/templates/febs/views/modules/leader/leaderList.html
index 841d023..715d263 100644
--- a/src/main/resources/templates/febs/views/modules/leader/leaderList.html
+++ b/src/main/resources/templates/febs/views/modules/leader/leaderList.html
@@ -86,6 +86,18 @@
table.on('tool(leaderTable)', function (obj) {
var data = obj.data,
layEvent = obj.event;
+ if (layEvent === 'leaderGoodsUpdate') {
+ febs.modal.open('编辑', 'modules/leader/leaderGoodsUpdate/' + data.id, {
+ btn: ['提交', '取消'],
+ area:['100%','100%'],
+ yes: function (index, layero) {
+ $('#febs-leaderGoods-update').find('#submit').trigger('click');
+ },
+ btn2: function () {
+ layer.closeAll();
+ }
+ });
+ }
if (layEvent === 'leaderUpdate') {
febs.modal.open('编辑', 'modules/leader/leaderUpdate/' + data.id, {
btn: ['提交', '取消'],
@@ -175,6 +187,7 @@
}else if(d.state === 1) {
return ''
+ '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="leaderCancel" shiro:hasPermission="user:update">取消</button>'
+ // + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="leaderGoodsUpdate" shiro:hasPermission="user:update">团长商品设置</button>'
}else{
return '';
}
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index 9ae857f..627a310 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -127,7 +127,7 @@
@Test
public void confirm(){
ApiLeaderOrderConfirmDto apiLeaderOrderConfirmDto = new ApiLeaderOrderConfirmDto();
- apiLeaderOrderConfirmDto.setIds("85");
+ apiLeaderOrderConfirmDto.setIds("90");
iApiMallTeamLeaderService.leaderOrderConfirm(apiLeaderOrderConfirmDto);
}
}
--
Gitblit v1.9.1