ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberTotalChangeDto.java
@@ -65,5 +65,6 @@ @ApiModelProperty(value="订单") private String orderNo; @ApiModelProperty(value="消费记录") private Date consumeTime; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSimpleShopVo.java
@@ -18,4 +18,7 @@ @ApiModelProperty(value = "商户名称") private String shopName; @ApiModelProperty(value = "客服电话") private String shopServicePhone; } ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
@@ -505,7 +505,6 @@ LEFT JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 LEFT JOIN t_shop_goods tsg ON tg.goods_id = tsg.goods_id AND tsg.shop_id = #{param.shopId} WHERE tag.del_flag = 0 AND tg.del_flag = 0 AND tg.goods_status = 1 AND tag.activity_id = #{param.activityId} ORDER BY tg.create_time DESC </select> <select id="listGoodsNameByGoodsClass" resultType="java.lang.String"> ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberTotal.java
@@ -155,6 +155,18 @@ @TableField("buy_flag") private Integer buyFlag; /** * 最后消费时间 */ @TableField("last_consume_time") private Date lastConsumeTime; /** * 总消费次数 */ @TableField("total_consume_count") private Integer totalConsumeCount; @Override protected Serializable pkVal() { return this.memberId; ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -271,7 +271,7 @@ coupon.setCreateUserId(mgtCouponEditDto.getUserId()); coupon.setCouponFrom(1); coupon.setAuditStatus(2); coupon.setLimitNumber(0); coupon.setLimitNumber(1); coupon.setSendFlag(0); //创建优惠券统计 couponTotal = new CouponTotal(); ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -495,7 +495,7 @@ } // 设置MerMemberInfoVo对象的属性值 merMemberInfoVo.setNextTaskTime(memberTotal.getNextTaskTime()); merMemberInfoVo.setLastPayTime(memberTotal.getLastPayTime()); merMemberInfoVo.setLastPayTime(memberTotal.getLastConsumeTime()); // 返回MerMemberInfoVo对象 return merMemberInfoVo; } @@ -869,6 +869,7 @@ memberTotal.setShopSuggestFlag(0); memberTotal.setSignFlag(0); memberTotal.setBuyFlag(0); memberTotal.setTotalConsumeCount(0); memberTotalService.saveOrUpdate(memberTotal); } @@ -1640,6 +1641,11 @@ if (memberTotalChangeDto.getGoodsOrderChange() != null) { memberTotal.setTotalGoodsOrder(memberTotal.getTotalGoodsOrder() + memberTotalChangeDto.getGoodsOrderChange()); } //消费记录 if(memberTotalChangeDto.getConsumeTime()!=null){ memberTotal.setTotalConsumeCount(memberTotal.getTotalConsumeCount()+1); memberTotal.setLastConsumeTime(memberTotalChangeDto.getConsumeTime()); } memberTotalService.saveOrUpdate(memberTotal); } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderPageVo.java
@@ -24,6 +24,9 @@ @ApiModelProperty(value = "订单id") private String orderId; @ApiModelProperty(value="活动id") private String activityId; @ApiModelProperty(value="订单编号") private String orderNo; ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberServiceRecordPageVo.java
@@ -18,7 +18,6 @@ public class MgtMemberServiceRecordPageVo { @Excel(name = "服务类型", width = 30) @ApiModelProperty(value="服务类型1.周期2.服务3.体验") private Integer serviceType; ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -1227,14 +1227,20 @@ List<AppUserOrderPageVo> appUserOrderPageVoList = orderMapper.pageUserOrder(page, appUserOrderPageDto); if (appUserOrderPageVoList != null && !appUserOrderPageVoList.isEmpty()) { Long shopId; String activityId; Shop shop; HashSet<Long> set = new HashSet<Long>(); HashSet<Long> shopSet = new HashSet<Long>(); HashSet<String> activitySet = new HashSet<String>(); for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) { shopId = appUserOrderPageVo.getShopId(); set.add(shopId); shopSet.add(shopId); if(appUserOrderPageVo.getOrderFrom()==2){ activityId = appUserOrderPageVo.getActivityId(); activitySet.add(activityId); } } Map<Long, Shop> shopMap = new HashMap<>(); set.forEach(shopIdLong -> { shopSet.forEach(shopIdLong -> { Shop shopTemp = remoteShopService.getShop(shopIdLong).getData(); shopMap.put(shopIdLong, shopTemp); }); @@ -1626,7 +1632,10 @@ payRecord.setPayType(merVerifyOrderDto.getPayType()); payRecordService.save(payRecord); } //更新用户消费统计 MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); memberTotalChangeDto.setConsumeTime(nowTime); remoteMemberService.changeMemberTotal(memberTotalChangeDto); return merVerifyOrderVo; } @@ -2309,7 +2318,10 @@ if (StringUtils.isNotBlank(memberCouponSJ.toString())) { remoteCouponService.useMemberCoupon(memberCouponSJ.toString()); } //更新会员消费记录 MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); memberTotalChangeDto.setConsumeTime(nowTime); remoteMemberService.changeMemberTotal(memberTotalChangeDto); //更新商户统计 /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); shopTotalChangeDto.setShopId(order.getShopId()); @@ -2370,7 +2382,7 @@ if (orderFrom == 1) { orderFromDesc = "商城订单"; } else if (orderFrom == 2) { orderFromDesc = "店铺砍价活动(" + merOrderPageVo.getActivityName() + ")"; orderFromDesc = "平台秒杀活动(" + merOrderPageVo.getActivityName() + ")"; } else { orderFromDesc = "线下创建"; } @@ -4565,6 +4577,8 @@ Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(order.getUserId(), orderGoods.getGoodsId()); if (bugGoodsNum == null || bugGoodsNum < 1) { goodsTotalChangeDto.setPersonNum(1); }else{ goodsTotalChangeDto.setPersonNum(0); } goodsTotalChangeDtoList.add(goodsTotalChangeDto); } @@ -4702,6 +4716,9 @@ Boolean haveService = false; Boolean haveExperience = false; Boolean haveGoods = false; //商品统计回退 List<GoodsTotalChangeDto> goodsTotalChangeDtoList = new ArrayList<>(); GoodsTotalChangeDto goodsTotalChangeDto; List<OrderGoods> orderGoodsList = orderGoodsService.listByOrderId(orderId); if (orderGoodsList != null && !orderGoodsList.isEmpty()) { StringJoiner memberCouponSJ = new StringJoiner(","); @@ -4737,6 +4754,7 @@ } else { memberCouponSJ.add(orderGoods.getCouponId()); } //会员统计更新 switch (orderGoods.getGoodsType()) { case 1: cycleMoney = cycleMoney.add(orderGoods.getGoodsReceivableMoney()); @@ -4757,7 +4775,21 @@ default: break; } //商品统计更新 goodsTotalChangeDto = new GoodsTotalChangeDto(); goodsTotalChangeDto.setGoodsId(orderGoods.getGoodsId()); goodsTotalChangeDto.setChangeType(2); goodsTotalChangeDto.setChangeNum(orderGoods.getBuyNum()); goodsTotalChangeDto.setMoney(orderGoods.getGoodsReceivableMoney()); Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(order.getUserId(), orderGoods.getGoodsId()); if (bugGoodsNum == null || bugGoodsNum <= orderGoods.getBuyNum()) { goodsTotalChangeDto.setPersonNum(1); }else{ goodsTotalChangeDto.setPersonNum(0); } goodsTotalChangeDtoList.add(goodsTotalChangeDto); } remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList); //回退优惠券 if (memberCouponSJ != null) { remoteCouponService.backMemberCoupon(memberCouponSJ.toString()); @@ -5443,17 +5475,6 @@ for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) { userId = merOrderPageVo.getUserId(); userIdSj.add(userId.toString()); orderFrom = merOrderPageVo.getOrderFrom(); if (orderFrom != null) { if (orderFrom == 1) { orderFromDesc = "商城订单"; } else { orderFromDesc = "线下创建"; } } else { orderFromDesc = "商城订单"; } merOrderPageVo.setOrderFromDesc(orderFromDesc); if(merOrderPageVo.getUnPaidMoney().compareTo(zeroBig)<0){ merOrderPageVo.setUnPaidMoney(zeroBig); } ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -291,6 +291,7 @@ toc.order_no orderNo, toc.order_status orderStatus, toc.order_from orderFrom, toc.activity_id aactivityId, toc.receivable_money receivableMoney, toc.goods_num goodsNum, toc.shop_id shopId, @@ -368,6 +369,7 @@ toc.order_remark orderRemark, toc.create_time createTime, toc.order_from orderFrom, CASE toc.order_from WHEN 1 THEN '商城订单' WHEN 2 THEN CONCAT('平台秒杀活动(',toc.activity_name,')') WHEN 3 THEN '线下创建' END orderFromDesc, toc.activity_name activityName FROM t_order toc WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} @@ -550,9 +552,9 @@ <select id="totalOrderFirst" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal"> SELECT COUNT(temp.order_id) orderTotal, IFNULL(SUM(temp.order_money),0) orderMoneyTotal IFNULL(SUM(temp.change_receivable_money),0) orderMoneyTotal FROM (SELECT toc.order_id,toc.order_money,toc.pay_money (SELECT toc.order_id,toc.change_receivable_money,toc.pay_money FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND (toc.order_from = 1 OR toc.order_from = 3) @@ -583,9 +585,11 @@ <select id="totalOrderSecond" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal"> SELECT COUNT(temp.order_id) shopOrderTotal, IFNULL(SUM(temp.order_money),0) shopOrderMoneyTotal, IFNULL(SUM(temp.pay_money),0) shopPayMoneyTotal FROM (SELECT toc.order_id,toc.order_money,toc.pay_money IFNULL(SUM(temp.change_receivable_money),0) shopOrderMoneyTotal, IFNULL(SUM(temp.pay_money),0) shopPayMoneyTotal, IFNULL(SUM(CASE WHEN temp.change_receivable_money > temp.pay_money THEN temp.change_receivable_money - temp.pay_money ELSE 0 END),0) shopUnPayMoneyTotal FROM (SELECT toc.order_id,toc.change_receivable_money,toc.pay_money FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND (toc.order_from = 1 OR toc.order_from = 3) @@ -616,9 +620,11 @@ <select id="totalOrderThird" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal"> SELECT COUNT(temp.order_id) activityOrderTotal, IFNULL(SUM(temp.order_money),0) activityOrderMoneyTotal, IFNULL(SUM(temp.pay_money),0) activityPayMoneyTotal FROM (SELECT toc.order_id,toc.order_money,toc.pay_money IFNULL(SUM(temp.change_receivable_money),0) activityOrderMoneyTotal, IFNULL(SUM(temp.pay_money),0) activityPayMoneyTotal, IFNULL(SUM(CASE WHEN temp.change_receivable_money > temp.pay_money THEN temp.change_receivable_money - temp.pay_money ELSE 0 END),0)activityUnPayMoneyTotal FROM (SELECT toc.order_id,toc.change_receivable_money,toc.pay_money FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND toc.order_from = 2 @@ -871,7 +877,7 @@ AND Date(toc.create_time) <= #{param.endDate} </if> GROUP BY tog.goods_name ORDER BY SUM(tog.goods_receivable_money) DESC LIMIT 10 ORDER BY SUM(tog.goods_receivable_money) DESC LIMIT 15 </select> <select id="listTotalOrderTotalOrderFrom" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo"> @@ -1775,7 +1781,7 @@ <select id="getStaffActivityOrderTotal" resultType="com.ruoyi.order.domain.vo.StaffActivityOrderTotalVo"> SELECT COUNT(DISTINCT toc.order_id) orderTotal, IFNULL(SUM(SUM(CASE WHEN toc.order_status = 3 AND toc.pay_type = 1 THEN toc.change_receivable_money WHEN toc.order_status = 3 AND toc.pay_type = 2 THEN toc.change_receivable_money + toc.online_pay_money ELSE 0 END),0) orderMoney, IFNULL(SUM(CASE WHEN toc.pay_type = 1 THEN toc.change_receivable_money WHEN toc.pay_type = 2 THEN toc.change_receivable_money + toc.online_pay_money ELSE 0 END),0) orderMoney, COUNT(DISTINCT toc.user_id) memberTotal FROM t_order toc WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_status = 3 @@ -2067,7 +2073,8 @@ toc.change_receivable_money - (CASE toc.pay_type WHEN 1 THEN toc.pay_money WHEN 2 THEN IFNULL(toc.offline_pay_money,0) END) unPaidMoney, toc.order_remark orderRemark, toc.create_time createTime, toc.order_from orderFrom toc.order_from orderFrom, CASE toc.order_from WHEN 1 THEN '商城订单' WHEN 2 THEN CONCAT('平台秒杀活动(',toc.activity_name,')') WHEN 3 THEN '线下创建' END orderFromDesc FROM t_order toc WHERE toc.del_flag = 0 AND (toc.order_status = 2 OR toc.order_status = 3) AND toc.shop_id = #{param.shopId} AND toc.user_id = #{param.memberUserId} ORDER BY toc.create_time DESC ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -1331,16 +1331,16 @@ MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo(); merHomeShopTotalVo.setShopId(shopId); // 通过远程订单服务获取商店总览信息 //MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); // 获取商店任务计数 Integer taskCount = memberTaskService.getMemberIngTotal(shopId); // 设置员工商店信息对象的属性 staffShopInfoGetVo.setTodayReservation(0); //staffShopInfoGetVo.setUnHandleOrder(orderVo.getUnHandleOrder()); staffShopInfoGetVo.setUnHandleOrder(orderVo.getUnHandleOrder()); staffShopInfoGetVo.setShopTask(taskCount); //staffShopInfoGetVo.setShopTurnover(orderVo.getShopTurnover()); //staffShopInfoGetVo.setCycleSurp(orderVo.getCycleSurp()); //staffShopInfoGetVo.setExplorationSurp(orderVo.getExplorationSurp()); staffShopInfoGetVo.setShopTurnover(orderVo.getShopTurnover()); staffShopInfoGetVo.setCycleSurp(orderVo.getCycleSurp()); staffShopInfoGetVo.setExplorationSurp(orderVo.getExplorationSurp()); staffShopInfoGetVo.setShopId(shopId); staffShopInfoGetVo.setShopName(shop.getShopName()); staffShopInfoGetVo.setShopType(shop.getShopType()); ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -502,7 +502,8 @@ <select id="listShopSimpleVoByIds" resultType="com.ruoyi.system.api.domain.vo.MgtSimpleShopVo"> SELECT shop_id, shop_name shop_name, shop_service_phone FROM t_shop WHERE del_flag = 0 AND FIND_IN_SET(shop_id,#{shopIds}) > 0 </select> ruoyi-modules/ruoyi-shop/src/test/java/com/ruioyi/shop/shopTest.java
@@ -2,8 +2,7 @@ import com.ruoyi.shop.RuoYiShopApplication; import com.ruoyi.shop.service.shop.ShopService; import org.junit.Test; import com.ruoyi.shop.service.task.AgencyTaskService; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -22,10 +21,7 @@ public class shopTest { @Resource private ShopService shopService; private AgencyTaskService agencyTaskService; @Test public void main() { shopService.getStaffHomeTotal(164L); } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpConfiguration.java
@@ -34,19 +34,18 @@ wxCpConfigStorage.setCorpId(properties.getCorpId()); wxCpConfigStorage.setAgentId(properties.getAgentId()); wxCpConfigStorage.setCorpSecret(properties.getAgentSecret()); wxCpConfigStorage.setAesKey(properties.getEncodingAESKey()); wxCpConfigStorage.setToken(properties.getToken()); WxCpService wxService = new WxCpServiceImpl(); wxService.setWxCpConfigStorage(wxCpConfigStorage); return wxService; } @Bean @ConditionalOnMissingBean public WxCryptUtil wxCryptUtil() { WxCryptUtil wxCryptUtil = new WxCryptUtil("", "", properties.getCorpId()); WxCryptUtil wxCryptUtil = new WxCryptUtil(properties.getToken(), properties.getEncodingAESKey(), properties.getCorpId()); return wxCryptUtil; } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpProperties.java
@@ -33,4 +33,8 @@ * */ private String authorizeState; private String token; private String encodingAESKey; } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/QYWXCallBackController.java
@@ -56,7 +56,7 @@ log.info("企业微信回调参数xml解析"+reponseStr); } if(StringUtils.isNotBlank(msgSignature)&&StringUtils.isNotBlank(timestamp)&&StringUtils.isNotBlank(nonce)&&StringUtils.isNotBlank(echostr)){ String reponseStr = wxCryptUtil.decryptXml(msgSignature,timestamp,nonce,echostr); String reponseStr = wxCryptUtil.decryptContent(msgSignature,timestamp,nonce,echostr); log.info("企业微信回调参数xml解析"+reponseStr); return reponseStr; } ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -49,7 +49,8 @@ agentSecret: -wuQ2EBxNT9BJa40LdpFqyxI_8RqrZTCUNiabzBasi8 authorizeState: HONGRUITANG suiteSecret: "" token: "" encodingAESKey: "" token: "HaiHeng2023" encodingAESKey: "jWmYm7qr5nMoAUwZRjGtBxmz3KA1tkAj3ykkR6q2B2C"