From 92329c6daeeb4d369459bfd9ad6b1d2d20b06300 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Wed, 28 Apr 2021 15:16:14 +0800 Subject: [PATCH] Merge branch 'score_shop' of http://120.27.238.55:7000/r/beauty-erp into score_shop --- zq-erp/src/test/java/com/matrix/JyyTests.java | 13 ++++ zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java | 6 ++ zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java | 25 +++++++ zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java | 6 ++ zq-erp/src/main/java/com/matrix/system/common/actions/CommonAction.java | 8 ++ zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopRefundRecordServiceImpl.java | 1 zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/MQTaskRouting.java | 1 zq-erp/src/main/resources/config/test/application.properties | 2 zq-erp/src/main/java/com/matrix/system/shopXcx/quartz/ShopActivityTimeOutQuartz.java | 2 zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java | 10 ++ zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderDingDingNoticeTask.java | 64 +++++++++++++++++++++ 11 files changed, 130 insertions(+), 8 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java b/zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java index 3cbe384..c960084 100644 --- a/zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java +++ b/zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java @@ -7,6 +7,7 @@ import com.matrix.core.tools.LogUtil; import com.matrix.system.shopXcx.mqTask.*; import com.matrix.system.wechart.templateMsg.Task.UniformMsgSentTask; +import com.rabbitmq.client.DeliverCallback; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -43,9 +44,12 @@ return new ScoreOrderTask(); } - - @Bean + DeliverCallback OrderDingDingNoticeTask() { + return new OrderDingDingNoticeTask(); + } + + OrderTask OrderrCreateTask() { return new OrderTask(); } @@ -95,6 +99,7 @@ taskList.add(new MqTask(MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.CREATE_ORDER + evn,MQTaskRouting.CREATE_ORDER + evn,OrderrCreateTask())); taskList.add(new MqTask(MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.SALES_ORDER + evn,MQTaskRouting.CREATE_ORDER + evn,SalesOrderTask())); taskList.add(new MqTask(MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.SCORE_ORDER + evn,MQTaskRouting.CREATE_ORDER + evn,ScoreOrderTask())); + taskList.add(new MqTask(MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.DINGDING_NOTICE + evn,MQTaskRouting.CREATE_ORDER + evn, OrderDingDingNoticeTask())); rabiitMqTemplate.binding(taskList); @@ -103,4 +108,5 @@ } + } diff --git a/zq-erp/src/main/java/com/matrix/system/common/actions/CommonAction.java b/zq-erp/src/main/java/com/matrix/system/common/actions/CommonAction.java index 806d40f..e790d7c 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/actions/CommonAction.java +++ b/zq-erp/src/main/java/com/matrix/system/common/actions/CommonAction.java @@ -24,6 +24,7 @@ import java.security.Key; import java.util.Map; +import java.util.Objects; /** * @description 通用控制器,本action未经session过验证器 @@ -268,8 +269,11 @@ AjaxResult gwLinkUs(@RequestBody Map<String , Object> param) { String title = "hive新客户在官网提交联系请求"; - String content = "hive=>name:" + param.get("name") + " tel:" + param.get("tel") ; - DingDingRobotUtil.sendLink("https://oapi.dingtalk.com/robot/send?access_token=62bb902f0e3945f0ece31306b99abae043fc69a66da0ef04d89fd20bf58d88d8", content, title, "", "www.baidu.com"); + if(Objects.nonNull(param.get("name"))){ + String content = "hive=>name:" + param.get("name") + " tel:" + param.get("tel") ; + DingDingRobotUtil.sendLink("https://oapi.dingtalk.com/robot/send?access_token=62bb902f0e3945f0ece31306b99abae043fc69a66da0ef04d89fd20bf58d88d8", content, title, "", "www.baidu.com"); + + } return AjaxResult.buildSuccessInstance("提交成功"); } diff --git a/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java b/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java index fcd90d7..894cdf2 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java +++ b/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java @@ -580,6 +580,12 @@ + /** + * 钉钉通知token + */ + public static final String WX_ORDER_NOTICE_DINGDING_TOKEN = "wxOrderNoticeDingdingToken"; + + diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java index ac983d3..977b543 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java @@ -1,5 +1,7 @@ package com.matrix.system.shopXcx.api.action; +import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao; +import com.matrix.system.fenxiao.entity.ShopSalesmanGrade; import com.matrix.system.hive.bean.SysVipInfo; import com.matrix.component.redis.RedisUserLoginUtils; import com.matrix.core.pojo.AjaxResult; @@ -15,9 +17,11 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Objects; /** * @author pengliang @@ -72,6 +76,9 @@ @Autowired private ShopProductCommentDao productCommentDao; + @Autowired + private ShopSalesmanGradeDao shopSalesmanGradeDao; + /** * 根据id查询商品信息 * @@ -81,15 +88,29 @@ @RequestMapping(value = "/getProductById/{shopId}/{id}") @ResponseBody public AjaxResult getProductById(@PathVariable Long shopId, @PathVariable("id") Integer id) { - + SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class); ShopProduct shopProduct = shopProductDao.selectById(id); if (shopProduct == null) { return new AjaxResult(AjaxResult.STATUS_FAIL, "没有查询到商品"); } - List<ShopProductAttrRef> shopProductAttrRefs = shopProductAttrRefDao.selectByPid(id); List<ShopProductImg> shopProductImgs = shopProductImgDao.selectByPid(id); List<ShopSku> shopSkus = shopSkuDao.selectByPid(id); + if(SysVipInfo.IS_SALES==sysVipInfo.getIsSales()){ + ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectById(sysVipInfo.getSalesmanGrade()); + //计算产品佣金 + shopSkus.forEach(shopSku -> { + if(Objects.isNull(shopSku.getInvitationPrice())){ + shopSku.setInvitationPrice(shopSku.getPrice().multiply(BigDecimal.valueOf(shopSalesmanGrade.getInvitationCommission())).divide(BigDecimal.valueOf(100))); + } + if(Objects.isNull(shopSku.getSealesPrice())){ + shopSku.setSealesPrice(shopSku.getPrice().multiply(BigDecimal.valueOf(shopSalesmanGrade.getSealesCommission())).divide(BigDecimal.valueOf(100))); + } + if(Objects.isNull(shopSku.getSelfPrice())){ + shopSku.setSealesPrice(shopSku.getPrice().multiply(BigDecimal.valueOf(shopSalesmanGrade.getSelfCommission())).divide(BigDecimal.valueOf(100))); + } + }); + } List<ShopProductParamRef> shopProductParamRefs = shopProductParamRefDao.selectByPid(id); shopProduct.setAttrRefs(shopProductAttrRefs); shopProduct.setProductImgs(shopProductImgs); diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopRefundRecordServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopRefundRecordServiceImpl.java index 984fefa..28e33f6 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopRefundRecordServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopRefundRecordServiceImpl.java @@ -59,7 +59,6 @@ @Override - @Transactional public Boolean refundToUser(String id, ShopRefundRecord shopRefundRecord) { LogUtil.debug("进入退款接口进行退款。。。", id); Boolean flag = false; diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/MQTaskRouting.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/MQTaskRouting.java index 8bd67c4..99d77a6 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/MQTaskRouting.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/MQTaskRouting.java @@ -10,6 +10,7 @@ String CREATE_ORDER = "CREATE_ORDER"; String SALES_ORDER = "SALES_ORDER"; String SCORE_ORDER = "SCORE_ORDER"; + String DINGDING_NOTICE = "DINGDING_NOTICE" ; /** * 发送微信消息 */ diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderDingDingNoticeTask.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderDingDingNoticeTask.java new file mode 100644 index 0000000..41bc09c --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderDingDingNoticeTask.java @@ -0,0 +1,64 @@ +package com.matrix.system.shopXcx.mqTask; + + +import com.matrix.core.tools.DingDingRobotUtil; +import com.matrix.core.tools.LogUtil; +import com.matrix.core.tools.StringUtils; +import com.matrix.system.common.bean.BusParameterSettings; +import com.matrix.system.common.constance.AppConstance; +import com.matrix.system.common.dao.BusParameterSettingsDao; +import com.matrix.system.hive.bean.SysVipInfo; +import com.matrix.system.hive.dao.SysVipInfoDao; +import com.matrix.system.shopXcx.bean.ShopOrder; +import com.matrix.system.shopXcx.bean.ShopOrderDetails; +import com.matrix.system.shopXcx.dao.ShopOrderDao; +import com.matrix.system.shopXcx.dao.ShopOrderDetailsDao; +import com.rabbitmq.client.DeliverCallback; +import com.rabbitmq.client.Delivery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.util.List; + +/** + * 微商城订单同步到erp系统 + */ +@Component +public class OrderDingDingNoticeTask implements DeliverCallback { + + + @Autowired + ShopOrderDao shopOrderDao; + + @Autowired + ShopOrderDetailsDao shopOrderDetailsDao; + + + @Autowired + BusParameterSettingsDao parameterSettingsDao; + + @Autowired + SysVipInfoDao sysVipInfoDao; + + @Override + public void handle(String consumerTag, Delivery message) throws IOException { + String orderId = new String(message.getBody(), "UTF-8"); + //获取订单信息 + ShopOrder order = shopOrderDao.selectById(Integer.valueOf(orderId)); + LogUtil.debug("收到创建订单通知任务orderId={}", orderId); + BusParameterSettings wxOrderNoticeDingdingToken = parameterSettingsDao.selectCompanyParamByCode(AppConstance.WX_ORDER_NOTICE_DINGDING_TOKEN, order.getCompanyId()); + if (wxOrderNoticeDingdingToken != null && StringUtils.isNotBlank(wxOrderNoticeDingdingToken.getParamValue())) { + //获取订单详情 + List<ShopOrderDetails> orderDetails = shopOrderDetailsDao.selectByOrderId(Integer.valueOf(orderId)); + StringBuilder content = new StringBuilder(); + orderDetails.stream().forEach(i -> content.append(i.getsTitle()).append("*").append( + i.getCount()).append(";")); + + DingDingRobotUtil.sendText(wxOrderNoticeDingdingToken.getParamValue(),"微商城订单 ("+order.getUserName()+") | 订单金额:¥"+order.getOrderMoney()+",订单内容:"+ content.toString(),""); + }else{ + LogUtil.debug("未配置订单钉钉提醒"); + } + } + +} diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/quartz/ShopActivityTimeOutQuartz.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/quartz/ShopActivityTimeOutQuartz.java index 1075d98..865fb65 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/quartz/ShopActivityTimeOutQuartz.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/quartz/ShopActivityTimeOutQuartz.java @@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; @@ -98,6 +99,7 @@ * * @param groupJoin */ + @Transactional public void doUnVirtualGroup(ShopActivitiesGroupJoin groupJoin) { LogUtil.info("#非虚拟拼团逻辑处理#"); groupJoin.setGjStatus(ShopActivitiesGroupJoin.ACTIVITIES_JOIN_FAIL); diff --git a/zq-erp/src/main/resources/config/test/application.properties b/zq-erp/src/main/resources/config/test/application.properties index cd48b66..cc4b62c 100644 --- a/zq-erp/src/main/resources/config/test/application.properties +++ b/zq-erp/src/main/resources/config/test/application.properties @@ -6,7 +6,7 @@ spring.datasource.username=ct_test spring.datasource.password=123456 -spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8 +spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test_meidu?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8 #spring.datasource.username=chuhuan #spring.datasource.password=chuhuan diff --git a/zq-erp/src/test/java/com/matrix/JyyTests.java b/zq-erp/src/test/java/com/matrix/JyyTests.java index bac5650..9297740 100644 --- a/zq-erp/src/test/java/com/matrix/JyyTests.java +++ b/zq-erp/src/test/java/com/matrix/JyyTests.java @@ -9,12 +9,15 @@ import com.matrix.system.score.dao.ScoreVipDetailDao; import com.matrix.system.score.service.ScoreVipDetailService; import com.matrix.system.shopXcx.dao.ShopOrderV2Dao; +import com.matrix.system.shopXcx.mqTask.OrderDingDingNoticeTask; +import com.rabbitmq.client.Delivery; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -48,6 +51,16 @@ @Autowired RedisClient redisClient; + + @Autowired + OrderDingDingNoticeTask orderDingDingNoticeTask; + + @Test + public void testNoticeTask() throws IOException { + orderDingDingNoticeTask.handle("",new Delivery(null,null,"1295".getBytes())); + } + + @Test public void testRedis() { diff --git a/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java index eccda8a..22b54cf 100644 --- a/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java +++ b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java @@ -75,6 +75,12 @@ newSetting4.setCategory("店务配置"); newSettings.add(newSetting4); + ParameterSettings newSetting5=new ParameterSettings(); + newSetting5.setCode(AppConstance.WX_ORDER_NOTICE_DINGDING_TOKEN); + newSetting5.setName("钉钉通知token"); + newSetting5.setType(1); + newSetting5.setCategory("微商城配置"); + newSettings.add(newSetting5); for (ParameterSettings newSetting : newSettings) { -- Gitblit v1.9.1