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 @@ } } 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("提交成功"); } 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"; 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); 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; 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" ; /** * 发送微信消息 */ zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderDingDingNoticeTask.java
New file @@ -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("未配置订单钉钉提醒"); } } } 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); 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 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() { 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) {