bug
jiangqs
2023-08-23 db3c1f464e80458a1b6ccbe31b0355775df8e574
bug
31个文件已修改
1个文件已添加
515 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffTotalDto.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/staff/StaffTotalController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceOrderDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 125 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopDetail.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysSimpleDept.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/QiYeUtils.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
}
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());
            }
        };
    }
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);
}
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);
    }
}
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
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);
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);
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);
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);
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;
}
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;
}
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() {
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;
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);
    /**
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();
        // 查询数据库获取数据
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(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) &gt;= #{param.startDate}
        </if>
        <if test="param.endDate!=null and param.endDate!=''">
            AND Date(toc.create_time) &lt;= #{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) &gt;= #{param.startDate}
        </if>
        <if test="param.endDate!=null and param.endDate!=''">
            AND Date(toa.create_time) &lt;= #{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) &gt;= #{param.startDate}
        </if>
        <if test="param.endDate!=null and param.endDate!=''">
            AND Date(toc.create_time) &lt;= #{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) &gt;= #{param.startDate}
        </if>
        <if test="param.endDate!=null and param.endDate!=''">
            AND Date(toc.create_time) &lt;= #{param.endDate}
        </if>
        GROUP BY mapKey
    </select>
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();
    }
}
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)
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;
    /**
     * 删除标记
     */
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;
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;
}
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  获取员工端商户数量统计
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);
            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,21 +1538,8 @@
    public StaffShopDetailVo getShopDetail(Long shopId){
        ShopDetail shopDetail = shopDetailService.getById(shopId);
        StaffShopDetailVo staffShopDetailVo = new StaffShopDetailVo();
        if(shopDetail!=null){
        BeanUtils.copyProperties(shopDetail, staffShopDetailVo);
        //归属客户
        Shop shop = this.getByShopId(shopId);
        Long belongUserId = shop.getBelongUserId();
        if(belongUserId!=null){
            SysUser sysUser = remoteUserService.getSysUser(belongUserId).getData();
            if(sysUser!=null){
                staffShopDetailVo.setBelongUser(sysUser.getNickName());
            }
        }
        //最近任务时间
        ShopTask shopTask = shopTaskService.getLastTask(shopId);
        if(shopTask!=null){
            staffShopDetailVo.setNextTaskDate(shopTask.getTaskDate());
        }
        //处理联系人
        String customerName = shopDetail.getCustomerName();
        String customerMobile = shopDetail.getCustomerMobile();
@@ -1547,6 +1555,38 @@
            staffCustomerDtoList.add(staffCustomerDto);
        }
        staffShopDetailVo.setStaffCustomerDtoList(staffCustomerDtoList);
        }
        //归属客户
        Shop shop = this.getByShopId(shopId);
        Long belongUserId = shop.getBelongUserId();
        if(belongUserId!=null){
            SysUser sysUser = remoteUserService.getSysUser(belongUserId).getData();
            if(sysUser!=null){
                staffShopDetailVo.setBelongUser(sysUser.getNickName());
            }
        }
        //最近任务时间
        ShopTask shopTask = shopTaskService.getLastTask(shopId);
        if(shopTask!=null){
            staffShopDetailVo.setNextTaskDate(shopTask.getTaskDate());
        }
        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);
        }
    }
}
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);
}
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());
        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;
    }
}
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>
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
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysSimpleDept.java
New file
@@ -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 {
}
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;
                // 验证是否存在这个用户
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);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java
@@ -131,4 +131,5 @@
     * @return  SysDept
     */
    SysDept getByWxDeptId(Long wxDeptId);
}
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";