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/activity/action/ActivitySignAwardSetAction.java
@@ -1,30 +1,29 @@ package com.matrix.system.activity.action; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.StringUtils; import com.matrix.system.activity.dto.ActivitiesListDto; import com.matrix.system.activity.dto.AddSignAwardSetDto; import com.matrix.system.activity.dto.BeCloseDto; import com.matrix.system.activity.dto.BeReadyDto; import com.matrix.system.activity.dto.CouponDto; import com.matrix.system.activity.dto.DelRowDto; import com.matrix.system.activity.dto.GoodsDto; import com.matrix.system.activity.dto.SignForUpdateDto; import com.matrix.system.activity.dto.SignReceiveListDto; import com.matrix.system.activity.dto.UpdateSignAwardSetDto; import com.matrix.core.tools.WebUtil; import com.matrix.system.activity.dto.*; import com.matrix.system.activity.service.ActivitySignAwardSetService; import com.matrix.system.activity.vo.ActivitiesListVo; import com.matrix.system.activity.vo.CouponVo; import com.matrix.system.activity.vo.GoodsVo; import com.matrix.system.activity.vo.SignReceiveListVo; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.shopXcx.bean.ShopActivities; import com.matrix.system.shopXcx.dao.ShopActivitiesDao; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @description 奖品设置表 @@ -37,6 +36,25 @@ @Autowired private ActivitySignAwardSetService activitySignAwardSetService; @Autowired private ShopActivitiesDao shopActivitiesDao; /** * 马上创建签到活动 */ @PostMapping(value = "/createSignAwardSet") public @ResponseBody AjaxResult createSignAwardSet() { //获取当前登录人员信息 SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); Long companyId = user.getCompanyId(); //签到活动的唯一性 List<ShopActivities> shopActivitiesDone = shopActivitiesDao.selectOneByCompanyIdAndActType(companyId,ShopActivities.ACTIVITIES_TYPE_SIGN); if(CollUtil.isNotEmpty(shopActivitiesDone)){ return new AjaxResult(AjaxResult.STATUS_FAIL, "签到活动已经创建,请去活动管理菜单查看"); } return new AjaxResult(AjaxResult.STATUS_SUCCESS, ""); } /** * 新增签到活动 zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java
@@ -53,9 +53,11 @@ //获取当前登录人员信息 SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); Long companyId = user.getCompanyId(); /** * todo签到活动的唯一性 */ //签到活动的唯一性 List<ShopActivities> shopActivitiesDone = shopActivitiesDao.selectOneByCompanyIdAndActType(companyId,ShopActivities.ACTIVITIES_TYPE_SIGN); if(CollUtil.isNotEmpty(shopActivitiesDone)){ return new AjaxResult(AjaxResult.STATUS_FAIL, "签到活动只能创建一次"); } //新增活动主表信息 ShopActivities shopActivities = new ShopActivities(); zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
@@ -25,6 +25,7 @@ import com.matrix.system.activity.vo.ZjrVo; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.bean.SystemDictionary; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.SystemDictionaryDao; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.dao.SysVipInfoDao; @@ -222,6 +223,7 @@ shopDeliveryInfo.setLogisticsCompany(systemDictionary.getName()); shopDeliveryInfo.setLogisticsCompanyCode(systemDictionary.getCode()); shopDeliveryInfo.setDeliveryWay("物流配送"); shopDeliveryInfo.setLogisticsStatus(AppConstance.LOGISTICS_STATUS_OF_RECEIVE); shopDeliveryInfo.setWaybillNo(logisticsSubmitDto.getKddh()); shopDeliveryInfo.setUpdateBy(sysUsers.getSuName()); zq-erp/src/main/java/com/matrix/system/activity/vo/SignReceiveListVo.java
@@ -23,11 +23,16 @@ @ApiModelProperty(value = "连续签到天数") private Integer cumulativeDay; @ApiModelProperty(value = "数量") private Integer scoreCnt; @ApiModelProperty(value = "奖励类型") private String awardType; @ApiModelProperty(value = "获得奖励") private String awardName; @ApiModelProperty(value = "优惠券名") private String couponName; @ApiModelProperty(value ="奖项规则(1:每日奖励(默认)2:累计签到天数)") private int awardRule; 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,9 +269,12 @@ AjaxResult gwLinkUs(@RequestBody Map<String , Object> param) { String title = "hive新客户在官网提交联系请求"; 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/WxShopActivitiesSignAction.java
@@ -20,19 +20,17 @@ import com.matrix.system.activity.entity.ActivitySignReceiveRecord; import com.matrix.system.activity.entity.ActivitySignRecord; import com.matrix.system.activity.entity.ActivitySignWriteoff; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.hive.bean.SysVipInfo; import com.matrix.system.score.entity.ScoreVipDetail; import com.matrix.system.score.service.ScoreVipDetailService; import com.matrix.system.shopXcx.api.dto.SeeAwardTextDto; import com.matrix.system.shopXcx.api.dto.SignAwardDto; import com.matrix.system.shopXcx.api.service.WxShopLogisticsQueryService; import com.matrix.system.shopXcx.api.tools.WxShopCouponUtil; import com.matrix.system.shopXcx.api.vo.*; import com.matrix.system.shopXcx.bean.ShopActivities; import com.matrix.system.shopXcx.bean.ShopDeliveryInfo; import com.matrix.system.shopXcx.bean.ShopLogisticsInfo; import com.matrix.system.shopXcx.bean.ShopReceiveAddress; import com.matrix.system.shopXcx.dao.ShopActivitiesDao; import com.matrix.system.shopXcx.dao.ShopDeliveryInfoDao; import com.matrix.system.shopXcx.dao.ShopLogisticsInfoDao; import com.matrix.system.shopXcx.dao.ShopReceiveAddressDao; import com.matrix.system.shopXcx.bean.*; import com.matrix.system.shopXcx.dao.*; import com.matrix.system.shopXcx.vo.SalesOrderVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -82,6 +80,14 @@ @Autowired private WxShopLogisticsQueryService wxShopLogisticsQueryService; @Autowired private ScoreVipDetailService scoreVipDetailService; @Autowired private ShopCouponDao shopCouponDao; @Autowired private WxShopCouponUtil wxShopCouponUtil; @Autowired private ShopCouponRecordDao shopCouponRecordDao; @ApiOperation(value = "获取签到基本信息", notes = "") @ApiResponses({ @@ -312,7 +318,7 @@ * 查询是否有签到奖品 * 日常奖励和自定义奖品 */ SignSuccessVo signSuccessVo = new SignSuccessVo(); List<SignSuccessVo> signSuccessVos = new ArrayList<>(); //日常奖励,新增奖品领取记录 QueryWrapper<ActivitySignAwardSet> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("award_rule",ActivitySignAwardSet.AWARDRULE_NORMAL); @@ -333,9 +339,54 @@ activitySignReceiveRecord.setUpdateTime(new Date()); activitySignReceiveRecordDao.insert(activitySignReceiveRecord); SignSuccessVo signSuccessVo = new SignSuccessVo(); signSuccessVo.setType(1); signSuccessVo.setScoreCnt(activitySignAwardSetNormal.getScoreCnt()); signSuccessVo.setNormalAwardName(activitySignAwardSetNormal.getAwardName()); signSuccessVo.setNormalAwardImg(activitySignAwardSetNormal.getIntroduceImg()); signSuccessVo.setAwardName(activitySignAwardSetNormal.getAwardName()); signSuccessVo.setAwardImg(activitySignAwardSetNormal.getIntroduceImg()); signSuccessVos.add(signSuccessVo); //日常奖励积分,对应用户积分加减 int awardType = activitySignAwardSetNormal.getAwardType(); if(ActivitySignAwardSet.AWARDTYPE_SCORE == awardType){ int scoreCnt = activitySignAwardSetNormal.getScoreCnt(); if(scoreCnt > 0){ scoreVipDetailService.addScore(userId,null,null,scoreCnt, activitySignReceiveRecord.getId(), ScoreVipDetail.SCORE_VIP_TYPE_JOIN_ACTIVE,"签到积分"); } } //获取优惠券 if(ActivitySignAwardSet.AWARDTYPE_COUPON == awardType){ //获取优惠券 int couponId = Integer.parseInt(activitySignAwardSetNormal.getCouponId()); ShopCoupon shopCoupon = shopCouponDao.selectById(couponId); // 如果没有找到该优惠券 if (shopCoupon == null) { return new AjaxResult(AjaxResult.STATUS_FAIL, "没有找到该优惠券!"); } // 如果优惠券有数量限制并且已经领完 if (shopCoupon.getMaxQuantity() >= 0 && (shopCoupon.getMaxQuantity() <= shopCoupon.getQuantityReceive())) { return new AjaxResult(AjaxResult.STATUS_FAIL, "优惠券已领完!"); } boolean newPeople = wxShopCouponUtil.verifyIsNewPeople(userId); // 如果改券是新人专属且当前用户不是新人 if (AppConstance.COUPON_GET_LIMT_NEW.equals(shopCoupon.getGetLimit()) && !newPeople) { return new AjaxResult(AjaxResult.STATUS_FAIL, "该优惠券为新人专享优惠券!"); } ShopCouponRecord insertRecord = new ShopCouponRecord(); insertRecord.setCreateBy(AppConstance.SYSTEM_USER); insertRecord.setUpdateBy(AppConstance.SYSTEM_USER); insertRecord.setCId(couponId); insertRecord.setUserId(userId); insertRecord.setIsUsing(2); int i = shopCouponRecordDao.insert(insertRecord); // 如果插入领取记录表失败 if (i < 0) { return new AjaxResult(AjaxResult.STATUS_FAIL, "优惠券领取失败!"); } shopCoupon.setQuantityReceive(shopCoupon.getQuantityReceive() + 1); shopCouponDao.updateByModel(shopCoupon); } } //获取当前累计天数 int cumulativeDay = getCumulativeDay(actId, userId, date, 0); @@ -361,9 +412,16 @@ if (ObjectUtil.isNotEmpty(activitySignReceiveRecordDone)) { String awardNameCumulativeDay = activitySignAwardSetCumulativeDay.getAwardName(); AjaxResult ajaxResult = AjaxResult.buildSuccessInstance(awardNameCumulativeDay+"已经领取过了"); ajaxResult.setData(signSuccessVo); ajaxResult.setData(signSuccessVos); return ajaxResult; } SignSuccessVo signSuccessVo = new SignSuccessVo(); signSuccessVo.setType(2); signSuccessVo.setAwardType(activitySignAwardSetCumulativeDay.getAwardType()); signSuccessVo.setAwardName(activitySignAwardSetCumulativeDay.getAwardName()); signSuccessVo.setAwardImg(activitySignAwardSetCumulativeDay.getIntroduceImg()); signSuccessVo.setAwardState(activitySignAwardSetCumulativeDay.getAwardState()); //新增奖品领取记录 ActivitySignReceiveRecord activitySignReceiveRecord = new ActivitySignReceiveRecord(); activitySignReceiveRecord.setUserId(userId); @@ -391,11 +449,7 @@ * 获取对应奖品的领取方式(兑奖方式(1:线下兑换2:物流配送3:客服兑换) */ signSuccessVo.setWriteOffCode(randomString); signSuccessVo.setAwardType(activitySignAwardSetCumulativeDay.getAwardType()); signSuccessVo.setAwardName(activitySignAwardSetCumulativeDay.getAwardName()); signSuccessVo.setAwardImg(activitySignAwardSetCumulativeDay.getIntroduceImg()); signSuccessVo.setAwardWay(activitySignAwardSetCumulativeDay.getAwardWay()); signSuccessVo.setAwardState(activitySignAwardSetCumulativeDay.getAwardState()); //2:物流配送 signSuccessVo.setOperationTip(activitySignAwardSetCumulativeDay.getOperationTip()); //1:线下兑换 @@ -419,8 +473,48 @@ //3:优惠券 if(ActivitySignAwardSet.AWARDTYPE_COUPON == activitySignAwardSetCumulativeDay.getAwardType()) { signSuccessVo.setCouponName(activitySignAwardSetCumulativeDay.getCouponName()); //获取优惠券 int couponId = Integer.parseInt(activitySignAwardSetCumulativeDay.getCouponId()); ShopCoupon shopCoupon = shopCouponDao.selectById(couponId); // 如果没有找到该优惠券 if (shopCoupon == null) { return new AjaxResult(AjaxResult.STATUS_FAIL, "没有找到该优惠券!"); } // 如果优惠券有数量限制并且已经领完 if (shopCoupon.getMaxQuantity() >= 0 && (shopCoupon.getMaxQuantity() <= shopCoupon.getQuantityReceive())) { return new AjaxResult(AjaxResult.STATUS_FAIL, "优惠券已领完!"); } boolean newPeople = wxShopCouponUtil.verifyIsNewPeople(userId); // 如果改券是新人专属且当前用户不是新人 if (AppConstance.COUPON_GET_LIMT_NEW.equals(shopCoupon.getGetLimit()) && !newPeople) { return new AjaxResult(AjaxResult.STATUS_FAIL, "该优惠券为新人专享优惠券!"); } ShopCouponRecord insertRecord = new ShopCouponRecord(); insertRecord.setCreateBy(AppConstance.SYSTEM_USER); insertRecord.setUpdateBy(AppConstance.SYSTEM_USER); insertRecord.setCId(couponId); insertRecord.setUserId(userId); insertRecord.setIsUsing(2); int i = shopCouponRecordDao.insert(insertRecord); // 如果插入领取记录表失败 if (i < 0) { return new AjaxResult(AjaxResult.STATUS_FAIL, "优惠券领取失败!"); } shopCoupon.setQuantityReceive(shopCoupon.getQuantityReceive() + 1); shopCouponDao.updateByModel(shopCoupon); } activitySignReceiveRecordDao.insert(activitySignReceiveRecord); //累计奖励积分,对应用户积分加减 if(ActivitySignAwardSet.AWARDTYPE_SCORE == activitySignAwardSetCumulativeDay.getAwardType()) { int awardType = activitySignAwardSetCumulativeDay.getAwardType(); if(ActivitySignAwardSet.AWARDTYPE_SCORE == awardType){ int scoreCnt = activitySignAwardSetCumulativeDay.getScoreCnt(); if(scoreCnt > 0){ scoreVipDetailService.addScore(userId,null,null,scoreCnt, activitySignReceiveRecord.getId(), ScoreVipDetail.SCORE_VIP_TYPE_JOIN_ACTIVE,"签到积分"); } } } //生成核销记录 if(ActivitySignAwardSet.AWARDTYPE_CUSTOMIZE == activitySignAwardSetCumulativeDay.getAwardType()) { ActivitySignWriteoff activitySignWriteoff = new ActivitySignWriteoff(); @@ -446,11 +540,12 @@ activitySignWriteoff.setUpdateTime(new Date()); activitySignWriteoffDao.insert(activitySignWriteoff); } signSuccessVos.add(signSuccessVo); } } } AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("签到成功"); ajaxResult.setData(signSuccessVo); ajaxResult.setData(signSuccessVos); return ajaxResult; } /** @@ -470,6 +565,7 @@ return getCumulativeDay(actId,userId,offsetDay,i); } /** * 获取累计的签到奖品 * 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/api/vo/SignSuccessVo.java
@@ -1,22 +1,19 @@ package com.matrix.system.shopXcx.api.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @Data @ApiModel(value = "SignSuccessVo", description = "签到活动") public class SignSuccessVo { @ApiModelProperty(value ="日常奖励名称") private String normalAwardName; @ApiModelProperty(value ="日常奖励图片") private String normalAwardImg; @ApiModelProperty(value ="奖励类型 1:日常奖励 2:累计奖励") private int type; @ApiModelProperty(value ="累计奖励名称") private String awardName; zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopActivitiesDao.java
@@ -59,4 +59,6 @@ public ShopActivities selectOneByCompanyIdAndActTypeAndActStatus(@Param("companyId")Long companyId, @Param("activitiesTypeSign")int activitiesTypeSign, @Param("actstatusStatusIng")int actstatusStatusIng); List<ShopActivities> selectOneByCompanyIdAndActType(@Param("companyId")Long companyId,@Param("activitiesTypeSign") int activitiesTypeSign); } 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/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml
@@ -14,6 +14,8 @@ c.cumulative_day cumulativeDay, c.award_type awardType, c.award_name awardName, c.coupon_name couponName, c.score_cnt scoreCnt, c.award_rule awardRule FROM activity_sign_receive_record a zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopActivitiesDao.xml
@@ -428,4 +428,15 @@ and a.act_type=#{activitiesTypeSign} and a.act_status=#{actstatusStatusIng} </select> <select id="selectOneByCompanyIdAndActType" resultType="com.matrix.system.shopXcx.bean.ShopActivities"> SELECT * FROM shop_activities a where a.company_id=#{companyId} and a.act_type=#{activitiesTypeSign} and a.act_status != 5 </select> </mapper> zq-erp/src/main/resources/templates/views/admin/activity/activity-market.html
@@ -31,6 +31,7 @@ .image { width: 100%; height: 100%; display: block; } @@ -58,9 +59,9 @@ <el-card class="box-card" :body-style="{ padding: '10px 10px'}"> <img src="../../../images/sign/meiriqiandao.png" class="image"> <div style="padding: 5px;"> <span style="padding:5px;font-size: 30px;">每日签到</span> <span style="padding:5px;font-size: 18px;">每日签到</span> <div class="bottom clearfix"> <el-button type="primary" class="button" @click="createSign()" round>马上创建</el-button> <el-button type="primary" size="mini" class="button" @click="createSign()" round>马上创建</el-button> </div> </div> </el-card> @@ -69,9 +70,9 @@ <el-card class="box-card" :body-style="{ padding: '10px 10px'}"> <img src="../../../images/sign/tiantianpingtuan.png" class="image"> <div style="padding: 5px;"> <span style="padding:5px;font-size: 30px;">拼团</span> <span style="padding:5px;font-size: 18px;">拼团</span> <div class="bottom clearfix"> <el-button type="primary" class="button" @click="openAdd(1)" round>马上创建</el-button> <el-button type="primary" size="mini" class="button" @click="openAdd(1)" round>马上创建</el-button> </div> </div> </el-card> @@ -80,9 +81,9 @@ <el-card class="box-card" :body-style="{ padding: '10px 10px'}"> <img src="../../../images/sign/jisumiaosha.png" class="image"> <div style="padding: 5px;"> <span style="padding:5px;font-size: 30px;">秒杀</span> <span style="padding:5px;font-size: 18px;">秒杀</span> <div class="bottom clearfix"> <el-button type="primary" class="button" @click="openSecKill()" round>马上创建</el-button> <el-button type="primary" size="mini" class="button" @click="openSecKill()" round>马上创建</el-button> </div> </div> </el-card> @@ -91,9 +92,9 @@ <el-card class="box-card" :body-style="{ padding: '10px 10px'}"> <img src="../../../images/sign/shalonghuodong.png" class="image"> <div style="padding: 5px;"> <span style="padding:5px;font-size: 30px;">沙龙</span> <span style="padding:5px;font-size: 18px;">沙龙</span> <div class="bottom clearfix"> <el-button type="primary" class="button" @click="openSalon()" round>马上创建</el-button> <el-button type="primary" size="mini" class="button" @click="openSalon()" round>马上创建</el-button> </div> </div> </el-card> @@ -126,6 +127,8 @@ methods: { //跳转到设置签到活动 createSign(){ $.AjaxProxy().invoke(basePath + "/admin/activitySignAwardSet/createSignAwardSet", function(loj) { if (loj[0].result.status == '200') { layer.full(layer.open({ type: 2, title: "签到管理", @@ -133,6 +136,13 @@ area: [MUI.SIZE_L, '500px'], content : [ basePath + '/admin/redirect/activity/activity-sign'] })); }else{ _this.$message({ message: data.info, type: 'success', }); } }); }, // 打新增拼团界面 openAdd(value) { zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html
@@ -136,7 +136,7 @@ </el-col> </el-row> <el-row style="padding: 10px"> <el-col class="col-sm-10" > <el-col class="col-sm-10" v-show='false'> <el-form-item label="快递公司编码:"> <el-input v-model="ruleForm.kdgs" :disabled="(formSelect.state == 3 ? true:false)"></el-input> </el-form-item> @@ -256,7 +256,7 @@ mounted: function () { }, methods: { //加载分类 //加载 loadInfo() { let _this = this; //加载配置 @@ -320,8 +320,7 @@ message: data.info, type: 'success', }); parent.layer.close(parent.layer.getFrameIndex(window.name)); parent.location.reload(); _this.loadInfo(); } }); }, zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-receive.html
@@ -121,6 +121,16 @@ label="获得奖励" show-overflow-tooltip> </el-table-column> <el-table-column label="奖励名称" show-overflow-tooltip> <template slot-scope="scope"> {{scope.row.awardName}} <span v-if="scope.row.awardType == 3">({{scope.row.couponName}})</span> <span v-if="scope.row.awardType == 2">(*{{scope.row.scoreCnt}})</span> </template> </el-table-column> </el-table> </el-row> <el-row class="paginationStyle" > zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-update.html
@@ -267,7 +267,7 @@ </el-col> </el-row> </div> <div v-show="item.content.awardWay === 3"> <div v-show="[1,3].includes(item.content.awardWay)"> <el-row > <el-col> <el-form-item label="客服电话"> @@ -525,11 +525,11 @@ <el-color-picker v-model="typographyColor"></el-color-picker> </el-form-item> <el-form-item label="字体大小" style="padding: 10px"> <el-input-number v-model="typographyNum" :min="10" :max="20" label="描述文字"></el-input-number> <el-input-number v-model="typographyNum" :min="10" :max="50" label="描述文字"></el-input-number> </el-form-item> <el-form-item label="字体透明度" style="padding: 10px"> <!--<el-form-item label="字体透明度" style="padding: 10px"> <el-input-number v-model="typographyLight" :min="1" :max="100" label="描述文字">%</el-input-number> </el-form-item> </el-form-item>--> </div> </el-tab-pane> </el-tabs> zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff-info.html
@@ -177,8 +177,7 @@ message: data.info, type: 'success', }); parent.layer.close(parent.layer.getFrameIndex(window.name)); parent.location.reload(); _this.loadInfo(); } }); }, zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff.html
@@ -60,21 +60,9 @@ stripe:true @sort-change="sortChange"> <el-table-column prop="writeoffTime" label="核销时间" prop="receiveName" label="中奖者" show-overflow-tooltip> </el-table-column> <el-table-column prop="writeoffUser" label="核销员" show-overflow-tooltip> </el-table-column> <el-table-column label="兑奖码" show-overflow-tooltip> <template slot-scope="scope"> <span v-if="scope.row.state == 3">{{scope.row.writeoffCode}}</span> </template> </el-table-column> <el-table-column prop="actName" @@ -109,11 +97,23 @@ </template> </el-table-column> <el-table-column prop="receiveName" label="中奖者" prop="writeoffTime" label="核销时间" show-overflow-tooltip> </el-table-column> <el-table-column prop="writeoffUser" label="核销员" show-overflow-tooltip> </el-table-column> <el-table-column label="兑奖码" show-overflow-tooltip> <template slot-scope="scope"> <span v-if="scope.row.state == 3">{{scope.row.writeoffCode}}</span> </template> </el-table-column> <el-table-column prop="receiveAddress" label="收货地址" show-overflow-tooltip> zq-erp/src/main/resources/templates/views/admin/activity/activity-sign.html
@@ -274,7 +274,7 @@ </el-col> </el-row> </div> <div v-show="item.content.awardWay === '3'"> <div v-show="[1,3].includes(item.content.awardWay)"> <el-row > <el-col> <el-form-item label="客服电话"> @@ -531,11 +531,11 @@ <el-color-picker v-model="typographyColor"></el-color-picker> </el-form-item> <el-form-item label="字体大小" style="padding: 10px"> <el-input-number v-model="typographyNum" :min="10" :max="20" label="描述文字"></el-input-number> <el-input-number v-model="typographyNum" :min="10" :max="50" label="描述文字"></el-input-number> </el-form-item> <el-form-item label="字体透明度" style="padding: 10px"> <!--<el-form-item label="字体透明度" style="padding: 10px"> <el-input-number v-model="typographyLight" :min="1" :max="100" label="描述文字">%</el-input-number> </el-form-item> </el-form-item>--> </div> </el-tab-pane> </el-tabs> zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html
@@ -118,7 +118,7 @@ } </style> </head> <body style="overflow: hidden"> <body > <div id="app" v-cloak> @@ -947,7 +947,7 @@ // if (optionType != 1) { //直接修改支付金额不重置支付金额 item.payMoney = zkPrice * count; item.payMoney =( zkPrice * count).toFixed(2); // } _this.order.payMoney += parseFloat(item.payMoney); zq-erp/src/test/java/com/matrix/FenxiaoSoreInitTest.java
@@ -44,7 +44,7 @@ private ActivitySignReceiveRecordDao activitySignReceiveRecordDao; @Autowired private ActivitySignWriteoffDao activitySignWriteoffDao; private ActivitySignWriteoffDao activitgwLinkUsySignWriteoffDao; @Autowired private ActivitySignRecordDao activitySignRecordDao; 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) {