From db3c1f464e80458a1b6ccbe31b0355775df8e574 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期三, 23 八月 2023 20:45:34 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java | 11 + ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 94 +++++++--- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java | 3 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffTotalDto.java | 7 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopDetail.java | 10 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java | 3 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java | 12 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/QiYeUtils.java | 26 -- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java | 14 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceOrderDto.java | 3 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/staff/StaffTotalController.java | 12 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml | 8 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java | 7 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java | 2 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java | 10 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java | 1 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java | 5 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java | 3 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java | 11 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java | 2 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java | 3 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 88 +++++++-- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 15 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 125 ++++++++++++- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java | 2 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java | 12 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java | 19 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysSimpleDept.java | 11 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java | 6 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml | 2 32 files changed, 401 insertions(+), 130 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffTotalDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffTotalDto.java index 0e8d002..201ae2c 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffTotalDto.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffTotalDto.java @@ -3,6 +3,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @ClassName StaffTotalDto * @Description TODO @@ -29,6 +31,9 @@ @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") private Integer goodsType; - @ApiModelProperty(value = "年龄层",hidden = true) + @ApiModelProperty(value = "年龄层 1 <20,2 21-30,3 31-40,4 41-50,5 >50") private Integer ageType; + + @ApiModelProperty(value = "用户id",hidden = true) + private List<Long> userIdList; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java index c603c9f..7aaddff 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java @@ -154,6 +154,11 @@ return R.fail("核销奖品失败:" + throwable.getMessage()); } + @Override + public R<List<Long>> listUserIdByAgeType(Integer ageType) { + return R.fail("获取用户id列表失败:" + throwable.getMessage()); + } + }; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java index 3eb1215..7e84c47 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java @@ -191,7 +191,7 @@ /** - * @param merVerifyPrizeDto + * @param verifyPrize * @return R<MemberGiftRecord> * @description 获取核销奖品 * @author jqs @@ -252,4 +252,14 @@ */ @PostMapping("/member/verifyPrize") public R verifyPrize(@RequestBody MerVerifyPrizeFinalDto merVerifyPrizeFinalDto); + + /** + * @description + * @author jqs + * @date 2023/8/23 19:06 + * @param ageType + * @return R<List<Long>> + */ + @PostMapping("/member/listUserIdByAgeType") + public R<List<Long>> listUserIdByAgeType(@RequestBody Integer ageType); } \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java index 130d6df..3e5b8df 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java @@ -360,4 +360,10 @@ BirthdayCard birthdayCard = birthdayCardService.getBirthdayCard(); return R.ok(birthdayCard); } + + @PostMapping("/listUserIdByAgeType") + public R<List<Long>> listUserIdByAgeType(@RequestBody Integer ageType){ + List<Long> userIdList = memberService.listUserIdByAgeType(ageType); + return R.ok(userIdList); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java index e937607..807442b 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java @@ -1793,7 +1793,20 @@ orderAgeUserVoList.add(merOrderAgeUserVo); return orderAgeUserVoList; } - + /** + * @description 通过年龄层获取用户id列表 + * @author jqs + * @date 2023/8/23 18:59 + * @param ageType + * @return List<Long> + */ + @Override + public List<Long> listUserIdByAgeType(Integer ageType){ + MerTotalDto merTotalDto = new MerTotalDto(); + merTotalDto.setAgeType(ageType); + List<Long> userIdList = memberMapper.listOrderAgeUser(merTotalDto); + return userIdList; + } /** * @description * @author jqs diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java index c88d3e0..bc6985c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java @@ -323,10 +323,19 @@ List<MerOrderAgeUserVo> listOrderAgeUser(MerTotalDto merTotalDto); /** + * @description 通过年龄层获取用户id列表 + * @author jqs + * @date 2023/8/23 18:59 + * @param ageType + * @return List<Long> + */ + List<Long> listUserIdByAgeType(Integer ageType); + + /** * @description * @author jqs * @date 2023/7/5 21:18 - * @param mgtBaseGetDto + * @param mgtFrozenMemberDto * @return void */ void mgtFrozenMember(MgtFrozenMemberDto mgtFrozenMemberDto); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java index c0f824a..cdef597 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java @@ -66,7 +66,7 @@ } @RequestMapping(value = "/getTotalDataTotal", method = RequestMethod.POST) - @ApiOperation(value = "获取商户数据统计") + @ApiOperation(value = "获取商户数据统计(数据统计)") public R<MgtTotalDataTotalVo> getTotalDataTotal(@RequestBody MgtBaseShopDto mgtBaseShopDto) { Long userId = SecurityUtils.getUserId(); mgtBaseShopDto.setUserId(userId); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java index 1eb127a..80cb520 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java @@ -109,6 +109,7 @@ appMemberBindingDto.setBindingFlag(1); appMemberBindingDto.setBindingType(1); memberService.updateMemberBinding(appMemberBindingDto); + appPlaceOrderDto.setNewMemberFlag(1); } } } @@ -134,6 +135,7 @@ appMemberBindingDto.setBindingFlag(1); appMemberBindingDto.setBindingType(2); memberService.updateMemberBinding(appMemberBindingDto); + appPlaceActivityDto.setNewMemberFlag(1); } } AppPlaceOrderVo appPlaceOrderVo = orderService.placeActivityOrder(appPlaceActivityDto); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/staff/StaffTotalController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/staff/StaffTotalController.java index b174c78..8cbbef0 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/staff/StaffTotalController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/staff/StaffTotalController.java @@ -32,7 +32,7 @@ private OrderService orderService; @RequestMapping(value = "/getStaffActivityOrderTotal", method = RequestMethod.POST) - @ApiOperation(value = "员工端获取订单概况") + @ApiOperation(value = "员工端活动分析(订单概况/营业额概况)") public R<StaffActivityOrderTotalVo> getStaffActivityOrderTotal(@RequestBody StaffTotalDto staffTotalDto) { Long userId = SecurityUtils.getUserId(); staffTotalDto.setUserId(userId); @@ -41,7 +41,7 @@ } @RequestMapping(value = "/getStaffActivityTotal", method = RequestMethod.POST) - @ApiOperation(value = "员工端获取活动统计") + @ApiOperation(value = "员工端活动分析(活动统计)") public R<StaffActivityTotalVo> getStaffActivityTotal(@RequestBody StaffTotalDto staffTotalDto) { Long userId = SecurityUtils.getUserId(); staffTotalDto.setUserId(userId); @@ -50,7 +50,7 @@ } @RequestMapping(value = "/getStaffOrderDistributionTotal", method = RequestMethod.POST) - @ApiOperation(value = "员工端获取订单分布统计") + @ApiOperation(value = "员工端活动分析(订单分布)") public R<MerOrderDistributionTotalVo> getStaffOrderDistributionTotal(@RequestBody StaffTotalDto staffTotalDto) { Long userId = SecurityUtils.getUserId(); staffTotalDto.setUserId(userId); @@ -59,7 +59,7 @@ } @RequestMapping(value = "/getStaffOrderTypeTotal", method = RequestMethod.POST) - @ApiOperation(value = "员工端获取销售占比统计") + @ApiOperation(value = "员工端活动分析(销售占比)") public R<MerOrderTypeTotalVo> getMerOrderTypeTotal(@RequestBody StaffTotalDto staffTotalDto) { Long userId = SecurityUtils.getUserId(); staffTotalDto.setUserId(userId); @@ -69,7 +69,7 @@ @RequestMapping(value = "/getStaffActivityGetMemberTotal", method = RequestMethod.POST) - @ApiOperation(value = "员工端获取获客人数") + @ApiOperation(value = "员工端活动分析(获客人数)") public R<StaffActivityDateMemberTotalVo> getStaffActivityGetMemberTotal(@RequestBody StaffTotalDto staffTotalDto) { Long userId = SecurityUtils.getUserId(); staffTotalDto.setUserId(userId); @@ -78,7 +78,7 @@ } @RequestMapping(value = "/getStaffActivityMemberTotal", method = RequestMethod.POST) - @ApiOperation(value = "员工端获取参与人数") + @ApiOperation(value = "员工端活动分析(参与人数)") public R<StaffActivityDateMemberTotalVo> getStaffActivityMemberTotal(@RequestBody StaffTotalDto staffTotalDto) { Long userId = SecurityUtils.getUserId(); staffTotalDto.setUserId(userId); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java index b79b189..499a72c 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java @@ -39,4 +39,7 @@ @ApiModelProperty(value = "订单备注") private String orderRemark; + @ApiModelProperty(value = "获客标记",hidden = true) + private Integer newMemberFlag; + } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceOrderDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceOrderDto.java index d104c96..8f4876c 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceOrderDto.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceOrderDto.java @@ -30,4 +30,7 @@ @ApiModelProperty(value = "购物车列表") List<AppBuyGoodsDto> appBuyGoodsDtoList; + @ApiModelProperty(value = "获客标记",hidden = true) + private Integer newMemberFlag; + } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java index 688955d..177536d 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java @@ -179,6 +179,9 @@ @TableField("change_receivable_money") private BigDecimal changeReceivableMoney; + @TableField("new_member_flag") + private Integer newMemberFlag; + @Override protected Serializable pkVal() { diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java index c4ab01d..e41540e 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java @@ -1,7 +1,5 @@ package com.ruoyi.order.domain.vo; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -24,7 +22,6 @@ private Integer[] orderTotalValue; @ApiModelProperty(value = "订单金额value") - private BigDecimal[] orderMoneyValue; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java index 5dd34f9..0b9827b 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java @@ -567,6 +567,16 @@ */ StaffActivityOrderTotalVo getStaffActivityOrderTotal(@Param("param")StaffTotalDto staffTotalDto); + + /** + * @description 员工端活动订单统计 + * @author jqs + * @date 2023/7/17 15:25 + * @param staffTotalDto + * @return StaffActivityOrderTotalVo + */ + StaffActivityOrderTotalVo getStaffActivityOrderGoodsTotal(@Param("param")StaffTotalDto staffTotalDto); + /** * @description 员工端活动统计 * @author jqs @@ -581,10 +591,10 @@ * @description 获取各年龄层统计 * @author jqs * @date 2023/7/4 10:27 - * @param userIdList + * @param staffTotalDto * @return MgtMapTotalPlusVo */ - MgtMapTotalPlusVo listStaffActivityOrderDistributionTotal(@Param("userIdList")List<Long> userIdList,@Param("shopId")Long shopId,@Param("activityId")String activityId); + List<MgtMapTotalPlusVo> listStaffActivityOrderDistributionTotal(@Param("param")StaffTotalDto staffTotalDto); /** diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index d9ee052..9ca1fb0 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -734,6 +734,9 @@ order.setOrderRemark(appPlaceOrderDto.getOrderRemark()); order.setGoodsNum(goodsNum); order.setCreateTime(new Date()); + if(appPlaceOrderDto.getNewMemberFlag()!=null&&appPlaceOrderDto.getNewMemberFlag()==1){ + order.setNewMemberFlag(1); + } // 保存订单 this.save(order); // 更新用户商品类型 @@ -1073,6 +1076,9 @@ order.setOrderRemark(appPlaceActivityDto.getOrderRemark()); order.setGoodsNum(goodsNum); order.setCreateTime(new Date()); + if(appPlaceActivityDto.getNewMemberFlag()!=null&&appPlaceActivityDto.getNewMemberFlag()==1){ + order.setNewMemberFlag(1); + } // 保存订单 this.save(order); // 更新用户商品类型 @@ -2187,14 +2193,6 @@ } else { order.setCloseFlag(0); } - //保存订单和服务 - this.save(order); - orderGoodsService.saveBatch(orderGoodsList); - consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); - //减去优惠券 - if (StringUtils.isNotBlank(memberCouponSJ.toString())) { - remoteCouponService.useMemberCoupon(memberCouponSJ.toString()); - } //用户未绑定则绑定商户 Member member = remoteMemberService.getMember(userId).getData(); if (member != null && member.getBindingFlag() != 1) { @@ -2206,7 +2204,17 @@ appMemberBindingDto.setBindingFlag(1); appMemberBindingDto.setBindingType(3); remoteMemberService.updateMemberBinding(appMemberBindingDto); + order.setNewMemberFlag(1); } + //保存订单和服务 + this.save(order); + orderGoodsService.saveBatch(orderGoodsList); + consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); + //减去优惠券 + if (StringUtils.isNotBlank(memberCouponSJ.toString())) { + remoteCouponService.useMemberCoupon(memberCouponSJ.toString()); + } + //更新商户统计 /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); shopTotalChangeDto.setShopId(order.getShopId()); @@ -2917,9 +2925,21 @@ */ @Override public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto) { + //获取人数统计 - MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto); BigDecimal salesTotal = orderMapper.shopSalesTotal(mgtBaseShopDto); + // 获取当月时间 + LocalDate currentDate = LocalDate.now(); + LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1); + LocalDate lastDayOfMonth = currentDate.withDayOfMonth(currentDate.lengthOfMonth()); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String firstDayOfMonthStr = firstDayOfMonth.format(formatter); + String lastDayOfMonthStr = lastDayOfMonth.format(formatter); + mgtBaseShopDto.setStartDate(firstDayOfMonthStr); + mgtBaseShopDto.setEndDate(lastDayOfMonthStr); + // + MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto); + mgtTotalDataTotalVo.setSalesTotal(salesTotal); Integer reorderPerson = orderMapper.getReorderPerson(mgtBaseShopDto); mgtTotalDataTotalVo.setReorderPerson(reorderPerson); @@ -3522,9 +3542,7 @@ orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst(); orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond(); } - orderDistributionTotalVo.setOrderTotalKey(orderTotalKey); - orderDistributionTotalVo.setOrderTotalValue(orderTotalValue); - orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); + orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue); } // 返回订单分布总数对象 return orderDistributionTotalVo; @@ -4141,6 +4159,10 @@ @Override public StaffActivityOrderTotalVo getStaffActivityOrderTotal(StaffTotalDto staffTotalDto) { StaffActivityOrderTotalVo staffActivityOrderTotalVo = orderMapper.getStaffActivityOrderTotal(staffTotalDto); + StaffActivityOrderTotalVo staffActivityOrderGoodsTotalVo = orderMapper.getStaffActivityOrderGoodsTotal(staffTotalDto); + staffActivityOrderTotalVo.setCycleTotal(staffActivityOrderGoodsTotalVo.getCycleTotal()); + staffActivityOrderTotalVo.setServiceTotal(staffActivityOrderGoodsTotalVo.getServiceTotal()); + staffActivityOrderTotalVo.setExperienceTotal(staffActivityOrderGoodsTotalVo.getExperienceTotal()); return staffActivityOrderTotalVo; } @@ -4168,11 +4190,11 @@ public MerOrderDistributionTotalVo getStaffOrderDistributionTotal(StaffTotalDto staffTotalDto) { MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo(); // 获取订单年龄用户列表 - MerTotalDto merTotalDto = new MerTotalDto(); - merTotalDto.setShopId(staffTotalDto.getShopId()); - List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData(); + //MerTotalDto merTotalDto = new MerTotalDto(); + //merTotalDto.setShopId(staffTotalDto.getShopId()); + //List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData(); // 如果订单年龄用户列表不为空 - if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) { + /*if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) { // 定义变量 Integer ageType; List<Long> userIdList; @@ -4218,9 +4240,74 @@ orderDistributionTotalVo.setOrderTotalKey(orderTotalKey); orderDistributionTotalVo.setOrderTotalValue(orderTotalValue); orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); + }*/ + List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList = orderMapper.listStaffActivityOrderDistributionTotal(staffTotalDto); + if (mgtMapTotalPlusVoList != null && !mgtMapTotalPlusVoList.isEmpty()) { + String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()]; + Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()]; + BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()]; + MgtMapTotalPlusVo mgtMapTotalPlusVo; + for (int i = 0; i < mgtMapTotalPlusVoList.size(); i++) { + mgtMapTotalPlusVo = mgtMapTotalPlusVoList.get(i); + orderTotalKey[i] = mgtMapTotalPlusVo.getMapKey(); + orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst(); + orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond(); + } + orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue); } // 返回订单分布总数对象 return orderDistributionTotalVo; + } + + public MerOrderDistributionTotalVo fillOrderTotalKeyAndValuesToRecentFiveDays(String[] orderTotalKey,Integer[] orderTotalValue,BigDecimal[] orderMoneyValue) { + MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo(); + // 获取当前日期 + LocalDate currentDate = LocalDate.now(); + + // 创建最近五天日期列表 + List<String> recentFiveDays = new ArrayList<>(); + for (int i = 0; i < 5; i++) { + LocalDate date = currentDate.minusDays(i); + recentFiveDays.add(date.toString()); + } + + // 创建新的数组 + String[] newOrderTotalKey = new String[5]; + Integer[] newOrderTotalValue = new Integer[5]; + BigDecimal[] newOrderMoneyValue = new BigDecimal[5]; + + // 遍历最近五天日期列表,并补充数据 + for (int i = 0; i < 5; i++) { + String day = recentFiveDays.get(i); + int index = getIndexInOrderTotalKey(day,orderTotalKey); + if (index != -1) { + newOrderTotalKey[i] = orderTotalKey[index]; + newOrderTotalValue[i] = orderTotalValue[index]; + newOrderMoneyValue[i] = orderMoneyValue[index]; + } else { + newOrderTotalKey[i] = day; + newOrderTotalValue[i] = 0; + newOrderMoneyValue[i] = BigDecimal.ZERO; + } + } + + // 更新属性 + orderTotalKey = newOrderTotalKey; + orderTotalValue = newOrderTotalValue; + orderMoneyValue = newOrderMoneyValue; + orderDistributionTotalVo.setOrderTotalKey(orderTotalKey); + orderDistributionTotalVo.setOrderTotalValue(orderTotalValue); + orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); + return orderDistributionTotalVo; + } + + private int getIndexInOrderTotalKey(String day,String[] orderTotalKey) { + for (int i = 0; i < orderTotalKey.length; i++) { + if (orderTotalKey[i].equals(day)) { + return i; + } + } + return -1; } @@ -4319,6 +4406,12 @@ */ @Override public StaffActivityDateMemberTotalVo getStaffActivityMemberTotal(StaffTotalDto staffTotalDto) { + MerTotalDto merTotalDto = new MerTotalDto(); + merTotalDto.setAgeType(staffTotalDto.getAgeType()); + if(staffTotalDto.getAgeType()!=null){ + List<Long> userIdList = remoteMemberService.listUserIdByAgeType(staffTotalDto.getAgeType()).getData(); + staffTotalDto.setUserIdList(userIdList); + } // 创建返回对象 StaffActivityDateMemberTotalVo staffActivityDateMemberTotalVo = new StaffActivityDateMemberTotalVo(); // 查询数据库获取数据 diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index 9366618..b3b4cff 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml @@ -998,7 +998,7 @@ COUNT(DISTINCT CASE WHEN og.goods_type = 4 THEN og.goods_id ELSE NULL END) AS goods_type_4_count FROM t_order o JOIN t_order_goods og ON o.order_id = og.order_id - WHERE o.del_flag = 0 AND og.del_flag = 0 + WHERE o.del_flag = 0 AND og.del_flag = 0 AND o.order_status IN (2,3) <if test="param.shopId != null and param.shopId != ''"> AND o.shop_id = #{param.shopId} </if> @@ -1013,9 +1013,9 @@ </select> <select id="shopSalesTotal" resultType="java.math.BigDecimal"> - SELECT IFNULL(SUM(pay_money),0) + SELECT IFNULL(SUM(change_receivable_money),0) FROM t_order - WHERE del_flag = 0 + WHERE del_flag = 0 AND order_status = 3 <if test="param.shopId != null and param.shopId != ''"> AND shop_id = #{param.shopId} </if> @@ -1643,14 +1643,29 @@ <select id="getStaffActivityOrderTotal" resultType="com.ruoyi.order.domain.vo.StaffActivityOrderTotalVo"> SELECT COUNT(DISTINCT toc.order_id) orderTotal, - IFNULL(SUM(toc.order_money),0) orderMoney, - COUNT(DISTINCT toc.user_id) memberTotal, - IFNULL(SUM(CASE WHEN tog.goods_type = 1 THEN 1 ELSE 0 END),0) cycleTotal, - IFNULL(SUM(CASE WHEN tog.goods_type = 3 THEN 1 ELSE 0 END),0) experienceTotal, - IFNULL(SUM(CASE WHEN tog.goods_type = 2 THEN 1 ELSE 0 END),0) serviceTotal + IFNULL(SUM(toc.change_receivable_money),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 + <if test="param.activityId !=null and param.activityId != ''"> + AND toc.activity_id = #{param.activityId} + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND Date(toc.create_time) >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND Date(toc.create_time) <= #{param.endDate} + </if> + </select> + + <select id="getStaffActivityOrderGoodsTotal" resultType="com.ruoyi.order.domain.vo.StaffActivityOrderTotalVo"> + SELECT + IFNULL(SUM(CASE WHEN tog.goods_type = 1 THEN 1 ELSE 0 END),0) cycleTotal, + IFNULL(SUM(CASE WHEN tog.goods_type = 3 THEN 1 ELSE 0 END),0) experienceTotal, + IFNULL(SUM(CASE WHEN tog.goods_type = 2 THEN 1 ELSE 0 END),0) serviceTotal FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id - WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 + WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_status = 3 <if test="param.activityId !=null and param.activityId != ''"> AND toc.activity_id = #{param.activityId} </if> @@ -1666,32 +1681,35 @@ SELECT COUNT(toa.user_id) memberTotal, IFNULL(SUM(CASE WHEN tog.goods_type = 1 THEN 1 ELSE 0 END),0) cycleTotal, - IFNULL(SUM(CASE WHEN tog.goods_type = 2 THEN 1 ELSE 0 END),0) experienceTotal, - IFNULL(SUM(CASE WHEN tog.goods_type = 3 THEN 1 ELSE 0 END),0) serviceTotal + IFNULL(SUM(CASE WHEN tog.goods_type = 3 THEN 1 ELSE 0 END),0) experienceTotal, + IFNULL(SUM(CASE WHEN tog.goods_type = 2 THEN 1 ELSE 0 END),0) serviceTotal FROM t_order toa INNER JOIN t_order_goods tog ON tog.order_id = toa.order_id - WHERE toa.order_id IN - (SELECT firstOrder.orderId FROM - (SELECT toc.user_id userId, MIN(toc.create_time) createTime, MIN(toc.order_id) orderId - FROM t_order toc WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} GROUP BY toc.user_id) AS firstOrder) - AND toa.order_from = 2 + WHERE toa.order_from = 2 AND toa.order_status IN (2,3) AND toa.new_member_flag = 1 <if test="param.activityId !=null and param.activityId != ''"> AND toa.activity_id = #{param.activityId} + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND Date(toa.create_time) >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND Date(toa.create_time) <= #{param.endDate} </if> </select> <select id="listStaffActivityOrderDistributionTotal" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo"> SELECT - COUNT(order_id) AS mapValueFirst, - IFNULL(SUM(order_money),0) AS mapValueSecond - FROM t_order - WHERE del_flag = 0 AND shop_id = #{shopId} AND order_from = 2 AND user_id IN - <foreach collection="userIdList" item="item" open="(" separator="," close=")"> - #{item} - </foreach> - <if test="activityId !=null and activityId != ''"> - AND activity_id = #{activityId} + DATE(toc.create_time) AS mapKey, + COUNT(DISTINCT tog.order_id) AS mapValueFirst, + SUM(tog.goods_receivable_money) AS mapValueSecond + FROM t_order toc + INNER JOIN t_order_goods tog ON toc.order_id = tog.order_id + WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_status IN (2,3) + <if test="param.activityId !=null and param.activityId != ''"> + AND toc.activity_id = #{param.activityId} </if> + AND toc.create_time >= DATE_SUB(CURDATE(), INTERVAL 5 DAY) + GROUP BY mapKey </select> <select id="listStaffOrderTotalGoodsType" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo"> @@ -1701,7 +1719,7 @@ IFNULL(SUM(tog.goods_total_money),0) AS mapValueSecond FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id - WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 + WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_status = 3 <if test="param.activityId !=null and param.activityId != ''"> AND toc.activity_id = #{param.activityId} </if> @@ -1714,16 +1732,18 @@ COUNT(DISTINCT toc.user_id) AS mapValue FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id - WHERE toc.order_id IN - (SELECT firstOrder.orderId FROM - (SELECT toa.user_id userId, MIN(toa.create_time) createTime, MIN(toa.order_id) orderId - FROM t_order toa WHERE toa.del_flag = 0 AND toa.shop_id = #{param.shopId} GROUP BY toa.user_id) AS firstOrder) - AND toc.order_from = 2 + WHERE toc.order_from = 2 AND toc.new_member_flag = 1 AND toc.order_status IN (2,3) AND toc.shop_id = #{param.shopId} <if test="param.activityId !=null and param.activityId != ''"> AND toc.activity_id = #{param.activityId} </if> <if test="param.goodsType !=null and param.goodsType != ''"> AND tog.goods_type = #{param.goodsType} + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND Date(toc.create_time) >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND Date(toc.create_time) <= #{param.endDate} </if> GROUP BY mapKey </select> @@ -1741,6 +1761,18 @@ <if test="param.goodsType !=null and param.goodsType != ''"> AND tog.goods_type = #{param.goodsType} </if> + <if test="param.userIdList !=null and param.userIdList.size()>0"> + AND toc.user_id IN + <foreach collection="param.userIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND Date(toc.create_time) >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND Date(toc.create_time) <= #{param.endDate} + </if> GROUP BY mapKey </select> diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java index fdc0a46..1b8ca88 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java @@ -1,5 +1,6 @@ package com.ruoyi.shop.controller.console; +import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingReceiver; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; @@ -359,4 +360,10 @@ shopService.authShop(); return R.ok(); } + + @PostMapping("/addProfitSharingReceiver") + R authShop(@RequestBody ProfitSharingReceiver profitSharingReceiver){ + shopService.addProfitSharingReceiver(profitSharingReceiver); + return R.ok(); + } } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java index d872cfb..7f5f421 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java @@ -80,7 +80,7 @@ } List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto); ExcelUtil<MgtShopPageVo> util = new ExcelUtil<MgtShopPageVo>(MgtShopPageVo.class); - util.exportExcel(response, mgtShopPageVoList, "用户订单列表"); + util.exportExcel(response, mgtShopPageVoList, "商户列表"); } @RequestMapping(value = "/createMgtShop", method = RequestMethod.POST) diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopDetail.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopDetail.java index 09b08c3..942be02 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopDetail.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopDetail.java @@ -1,9 +1,9 @@ package com.ruoyi.shop.domain.pojo.shop; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -21,7 +21,7 @@ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -@TableName("t_shop_detail") +@TableName(value = "t_shop_detail") public class ShopDetail extends Model<ShopDetail> { private static final long serialVersionUID = 1L; @@ -30,7 +30,7 @@ * 商户id */ @TableId("shop_id") - private Integer shopId; + private Long shopId; /** * 删除标记 */ diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java index 337dd95..d18cc22 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java @@ -44,6 +44,9 @@ @ApiModelProperty(value = "商户id") private Long shopId; + @ApiModelProperty(value="商店类型1.经销商2.代理商") + private Integer shopType; + @ApiModelProperty(value="商户名称") private String shopName; diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java index 81047bd..1f78932 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java @@ -13,12 +13,21 @@ @Data public class StaffShopSimpleTotalVo { - @ApiModelProperty(value = "总数") + @ApiModelProperty(value = "经销商总数") private Integer shopTotal; - @ApiModelProperty(value = "准店铺") - private Integer closeTotal; + @ApiModelProperty(value = "经销商准店铺") + private Integer closeShopTotal; - @ApiModelProperty(value = "开业中") - private Integer openTotal; + @ApiModelProperty(value = "经销商开业中") + private Integer openShopTotal; + + @ApiModelProperty(value = "代理商总数") + private Integer agencyTotal; + + @ApiModelProperty(value = "代理商准店铺") + private Integer closeAgencyTotal; + + @ApiModelProperty(value = "代理商开业中") + private Integer openAgencyTotal; } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java index 290f50a..56eca28 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java @@ -219,7 +219,7 @@ * @param userIdList * @return StaffShopSimpleTotalVo */ - StaffShopSimpleTotalVo getStaffSimpleTotal(@Param("userIdList")List<Long> userIdList); + StaffShopSimpleTotalVo getStaffSimpleTotal(@Param("shopType")Integer shopType,@Param("userIdList")List<Long> userIdList); /** * @description 获取员工端商户数量统计 diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java index 1f31e90..ea3587f 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult; import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult; +import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingReceiver; import com.github.binarywang.wxpay.exception.WxPayException; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.exception.ServiceException; @@ -129,6 +130,8 @@ @Resource private RemoteUserService remoteUserService; + + /** * 获取商户详情 @@ -798,17 +801,28 @@ mgtBasePlatformDto.setUserIdList(userIds); shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto); Shop shop = this.getShopByBelongUserId(userId); - shopIds.add(shop.getShopId()); - userIds.add(userId); + if(shop!=null){ + shopIds.add(shop.getShopId()); + userIds.add(userId); + } }else { //普通员工查询商户归属的shopId Shop shop = this.getShopByBelongUserId(userId); - shopIds.add(shop.getShopId()); } //分别查询 - StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds); - Integer shopTaskCount = shopTaskService.getShopIngTotal(shopIds); + StaffHomeShopTotalVo staffHomeShopTotalVo = new StaffHomeShopTotalVo(); + if(userIds!=null&&!userIds.isEmpty()){ + staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds); + }else{ + staffHomeShopTotalVo.setShopTotal(0); + staffHomeShopTotalVo.setAgencyTotal(0); + staffHomeShopTotalVo.setDealerTotal(0); + } + Integer shopTaskCount = 0; + if(shopIds!=null&&!shopIds.isEmpty()){ + shopTaskService.getShopIngTotal(shopIds); + } staffHomeShopTotalVo.setFollowMember(0); staffHomeShopTotalVo.setNewMember(0); staffHomeShopTotalVo.setShopTask(shopTaskCount); @@ -1011,7 +1025,7 @@ Shop shop = this.getByShopId(shopAuthentication.getShopId()); if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){ - mgtShopAuthDto.setBlBusinessDeanline(mgtShopAuthDto.getBlBusinessStartTime()+",长期"); + mgtShopAuthDto.setBlBusinessDeanline("长期"); } if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){ mgtShopAuthDto.setLpIcEndDate("长期"); @@ -1027,7 +1041,7 @@ applymentsResult = wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop); } catch (Exception e) { log.debug("-----"+shop.getShopId()+":进件异常-----"); - throw new RuntimeException(e); + throw new ServiceException(e.getMessage()); } shopAuthentication.setAuditStatus(3); shopAuthenticationService.saveOrUpdate(shopAuthentication); @@ -1264,7 +1278,12 @@ }else { userIdList.add(userId); } - return shopMapper.getStaffSimpleTotal(userIdList); + StaffShopSimpleTotalVo shopTotal = shopMapper.getStaffSimpleTotal(1,userIdList); + StaffShopSimpleTotalVo agencyTotal = shopMapper.getStaffSimpleTotal(2,userIdList); + shopTotal.setAgencyTotal(agencyTotal.getShopTotal()); + shopTotal.setOpenAgencyTotal(agencyTotal.getOpenShopTotal()); + shopTotal.setCloseAgencyTotal(agencyTotal.getCloseAgencyTotal()); + return shopTotal; } /** @@ -1388,6 +1407,8 @@ List<ExtendContactsVo> extendContactsVoList = staffShopECEditDto.getExtendContactsVoList(); if(extendContactsVoList!=null&&!extendContactsVoList.isEmpty()){ extendContacts = JSON.toJSONString(extendContactsVoList); + }else{ + extendContacts = ""; } shop.setExtendContacts(extendContacts); shop.setShopId(staffShopECEditDto.getShopId()); @@ -1517,7 +1538,24 @@ public StaffShopDetailVo getShopDetail(Long shopId){ ShopDetail shopDetail = shopDetailService.getById(shopId); StaffShopDetailVo staffShopDetailVo = new StaffShopDetailVo(); - BeanUtils.copyProperties(shopDetail, staffShopDetailVo); + if(shopDetail!=null){ + BeanUtils.copyProperties(shopDetail, staffShopDetailVo); + //处理联系人 + String customerName = shopDetail.getCustomerName(); + String customerMobile = shopDetail.getCustomerMobile(); + List<StaffCustomerDto> staffCustomerDtoList = new ArrayList<>(); + String[] customerNameArr = customerName.split(","); + String[] customerMobileArr = customerMobile.split(","); + staffShopDetailVo.setContactName(customerNameArr[0]); + StaffCustomerDto staffCustomerDto; + for(int i=0;i<customerNameArr.length;i++){ + staffCustomerDto = new StaffCustomerDto(); + staffCustomerDto.setCustomerName(customerNameArr[i]); + staffCustomerDto.setCustomerMobile(customerMobileArr[i]); + staffCustomerDtoList.add(staffCustomerDto); + } + staffShopDetailVo.setStaffCustomerDtoList(staffCustomerDtoList); + } //归属客户 Shop shop = this.getByShopId(shopId); Long belongUserId = shop.getBelongUserId(); @@ -1532,21 +1570,23 @@ if(shopTask!=null){ staffShopDetailVo.setNextTaskDate(shopTask.getTaskDate()); } - //处理联系人 - String customerName = shopDetail.getCustomerName(); - String customerMobile = shopDetail.getCustomerMobile(); - List<StaffCustomerDto> staffCustomerDtoList = new ArrayList<>(); - String[] customerNameArr = customerName.split(","); - String[] customerMobileArr = customerMobile.split(","); - staffShopDetailVo.setContactName(customerNameArr[0]); - StaffCustomerDto staffCustomerDto; - for(int i=0;i<customerNameArr.length;i++){ - staffCustomerDto = new StaffCustomerDto(); - staffCustomerDto.setCustomerName(customerNameArr[i]); - staffCustomerDto.setCustomerMobile(customerMobileArr[i]); - staffCustomerDtoList.add(staffCustomerDto); - } - staffShopDetailVo.setStaffCustomerDtoList(staffCustomerDtoList); return staffShopDetailVo; } + + + /** + * @description + * @author jqs + * @date 2023/8/23 9:44 + * @param + * @return void + */ + @Override + public void addProfitSharingReceiver(ProfitSharingReceiver profitSharingReceiver){ + try { + ProfitSharingReceiver result = wechatPayUtils.addProfitSharingReceiver(profitSharingReceiver); + } catch (WxPayException e) { + throw new RuntimeException(e); + } + } } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java index c6beec2..2eabf17 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingReceiver; import com.github.binarywang.wxpay.exception.WxPayException; import com.ruoyi.shop.domain.dto.*; import com.ruoyi.shop.domain.vo.*; @@ -368,4 +369,13 @@ * @return StaffShopDetailVo */ StaffShopDetailVo getShopDetail(Long shopId); + + /** + * @description + * @author jqs + * @date 2023/8/23 9:44 + * @param + * @return void + */ + void addProfitSharingReceiver(ProfitSharingReceiver profitSharingReceiver); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java index 95f4c24..0ad0886 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java @@ -5,6 +5,7 @@ import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult; import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult; import com.github.binarywang.wxpay.bean.media.ImageUploadResult; +import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingReceiver; import com.github.binarywang.wxpay.exception.WxPayException; import com.github.binarywang.wxpay.service.EcommerceService; import com.github.binarywang.wxpay.service.MerchantMediaService; @@ -78,7 +79,9 @@ lpIcBackIO.close(); id_card_info.setIdCardName(shopAuthentication.getLpCorporateName()); id_card_info.setIdCardNumber(shopAuthentication.getLpIdCard()); - id_card_info.setIdCardAddress(shopAuthentication.getLpIdAddress()); + if(shopAuthentication.getMainType()==2){ + id_card_info.setIdCardAddress(shopAuthentication.getLpIdAddress()); + } id_card_info.setIdCardValidTimeBegin(shopAuthentication.getLpIcStartDate()); id_card_info.setIdCardValidTime(shopAuthentication.getLpIcEndDate()); request.setIdCardInfo(id_card_info); @@ -154,4 +157,11 @@ return wxService.getEcommerceService().queryApplyStatusByApplymentId(applymentId); } + public ProfitSharingReceiver addProfitSharingReceiver(ProfitSharingReceiver profitSharingReceiver) throws WxPayException { + profitSharingReceiver.setAppid("wxb7f0ea286fc4e535"); + profitSharingReceiver.setType("MERCHANT_ID"); + profitSharingReceiver.setRelationType("SERVICE_PROVIDER"); + ProfitSharingReceiver result = wxService.getProfitSharingV3Service().addProfitSharingReceiver(profitSharingReceiver); + return result; + } } diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml index 5ec387e..ca2ccd9 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml @@ -871,10 +871,10 @@ <select id="getStaffSimpleTotal" resultType="com.ruoyi.shop.domain.vo.StaffShopSimpleTotalVo"> SELECT COUNT(shop_id) shopTotal, - SUM(CASE shop_status WHEN 0 THEN 1 WHEN 2 THEN 1 WHEN 3 THEN 1 ELSE 0 END) closeTotal, - SUM(CASE shop_status WHEN 1 THEN 1 ELSE 0 END) openTotal + SUM(CASE shop_status WHEN 0 THEN 1 WHEN 2 THEN 1 WHEN 3 THEN 1 ELSE 0 END) closeShopTotal, + SUM(CASE shop_status WHEN 1 THEN 1 ELSE 0 END) openShopTotal FROM t_shop ts - WHERE ts.del_flag = 0 + WHERE ts.del_flag = 0 AND ts.shop_type = #{shopType} AND ts.belong_user_id IN <foreach item="id" collection="userIdList" open="(" separator="," close=")"> #{id} @@ -903,7 +903,7 @@ extend_contacts = null, </if> <if test="updateTime != null">update_time = #{updateTime},</if> - <if test="updateUserId != null">update_user_id = #{updateUserId},</if> + <if test="updateUserId != null">update_user_id = #{updateUserId}</if> WHERE shop_id = #{shopId} </update> diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml index 9b73cec..8fe82fb 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml @@ -114,7 +114,7 @@ FROM t_shop_task tst LEFT JOIN t_shop_task_record tstr ON tstr.task_id = tst.task_id AND tstr.id = (SELECT MAX(id) FROM t_shop_task_record WHERE task_id = tst.task_id) WHERE tst.del_flag = 0 AND tst.shop_id = #{param.shopId} - <if test="param.taskStatus!=null and param.taskStatus != ''"> + <if test="param.taskStatus!=null"> AND tst.task_status = #{param.taskStatus} </if> ORDER BY tst.task_status ASC diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysSimpleDept.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysSimpleDept.java new file mode 100644 index 0000000..c6d8165 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysSimpleDept.java @@ -0,0 +1,11 @@ +package com.ruoyi.system.domain.vo; + +/** + * @ClassName SysSimpleDept + * @Description TODO + * @Author jqs + * @Date 2023/8/23 14:47 + * @Version 1.0 + */ +public class SysSimpleDept { +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java index fd20568..e6c6f4f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java @@ -300,8 +300,19 @@ StringBuilder failureMsg = new StringBuilder(); SysStaff sysStaff; Date nowTime = new Date(); + String mobile; + String userName; + String department; + int lastIndex; + for (MgtSysStaffImportDto entity : staffImportDtoList) { try { + mobile = entity.getMobile(); + userName = entity.getUserName(); + department = entity.getDepartment(); + lastIndex = department.lastIndexOf("/"); + department = department.substring(lastIndex + 1); + /*tagName = entity.getTagName(); sysTagSame = null; // 验证是否存在这个用户 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java index 9e21529..b7b4b70 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java @@ -396,4 +396,6 @@ public SysDept getByWxDeptId(Long wxDeptId){ return deptMapper.getByWxDeptId(wxDeptId); } + + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java index 4eb0e9c..4a8c48e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java @@ -131,4 +131,5 @@ * @return SysDept */ SysDept getByWxDeptId(Long wxDeptId); + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/QiYeUtils.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/QiYeUtils.java index 4af62ba..ea9976f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/QiYeUtils.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/QiYeUtils.java @@ -3,7 +3,6 @@ import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; -import java.math.BigDecimal; import java.util.HashMap; import java.util.Map; @@ -18,30 +17,7 @@ private final static String ACCESS_TOKEN_HOST = "https://qyapi.weixin.qq.com/cgi-bin/"; - public static void main(String[] args) throws Exception { - Integer manTotal = 0; - Integer womenTotal = 0; - Integer personTotal = manTotal + womenTotal; - BigDecimal manTotalBig = new BigDecimal(manTotal); - BigDecimal personTotalBig = new BigDecimal(personTotal); - BigDecimal bigTen = new BigDecimal("100.00"); - BigDecimal menPercent = new BigDecimal("100.00"); - BigDecimal womenPercent = new BigDecimal("100.00"); - if(manTotal==0&&womenTotal==0){ - menPercent = new BigDecimal("50.00"); - womenPercent = new BigDecimal("50.00"); - }else if(manTotal==0&&womenTotal>0){ - menPercent = new BigDecimal("0.00"); - womenPercent = new BigDecimal("100.00"); - }else if(manTotal>0&&womenTotal==0){ - menPercent = new BigDecimal("100.00"); - womenPercent = new BigDecimal("0.00"); - }else{ - menPercent = manTotalBig.divide(personTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")); - womenPercent = bigTen.subtract(menPercent); - } - System.out.println(menPercent+"-"+womenPercent); - } + public static String getAccessTokenByQY() throws Exception { String host = ACCESS_TOKEN_HOST + "gettoken?corpid=ww11400938eb1b91bc&corpsecret=-wuQ2EBxNT9BJa40LdpFqyxI_8RqrZTCUNiabzBasi8"; -- Gitblit v1.7.1