bug
jiangqs
2023-08-25 156e141e55a8abf486157d1fa89d25e23f4a06a3
bug
24个文件已修改
2个文件已添加
510 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AgencyTotalVo.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapBigTotalVo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapIntTotalVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtTotalController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberFixedTotalVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderTypeTotalVo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | 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 149 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/pom.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopPageVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/test/java/com/ruioyi/shop/shopTest.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AgencyTotalVo.java
New file
@@ -0,0 +1,22 @@
package com.ruoyi.system.api.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @ClassName AgencyTotalVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/8/25 11:48
 * @Version 1.0
 */
@Data
public class AgencyTotalVo {
    @ApiModelProperty(value = "区域营业额")
    private BigDecimal areaTurnover;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapBigTotalVo.java
@@ -21,4 +21,6 @@
    @ApiModelProperty(value = "mapValue")
    private BigDecimal mapValue;
    @ApiModelProperty(value = "mapPercent")
    private BigDecimal mapPercent;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapIntTotalVo.java
@@ -3,6 +3,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @ClassName MgtNurseTotalVo
 * @Description TODO
@@ -19,4 +21,7 @@
    @ApiModelProperty(value = "mapValue")
    private Integer mapValue;
    @ApiModelProperty(value = "mapPercent")
    private BigDecimal mapPercent;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java
@@ -3,6 +3,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -27,8 +28,14 @@
    @ApiModelProperty(value = "男人")
    private Integer manTotal;
    @ApiModelProperty(value = "男人比例")
    private BigDecimal manPercent;
    @ApiModelProperty(value = "女人")
    private Integer womenTotal;
    @ApiModelProperty(value = "女人比例")
    private BigDecimal womenPercent;
    @ApiModelProperty(value = "会员年龄key")
    private String[] ageKey;
@@ -36,6 +43,9 @@
    @ApiModelProperty(value = "会员年龄value")
    private Integer[] ageValue;
    @ApiModelProperty(value = "会员年龄占比")
    private BigDecimal[] agePercent;
    @ApiModelProperty(value = "会员调理")
    private List<MgtMapIntTotalVo> nurseTotalVos;
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java
@@ -75,6 +75,11 @@
            public R<MerHomeShopTotalVo> getShopServiceTotal(Long shopId) {
                return R.fail("获取商户服务统计失败:" + throwable.getMessage());
            }
            @Override
            public R<AgencyTotalVo> getAgencyTotalVo(List<Long> shopIdList) {
                return R.fail("获取区域统计失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java
@@ -87,4 +87,14 @@
     */
    @PostMapping("/order/getShopServiceTotal")
    public R<MerHomeShopTotalVo> getShopServiceTotal(@RequestBody Long shopId);
    /**
     * @description  获取区域统计
     * @author  jqs
     * @date    2023/8/25 11:52
     * @param shopIdList
     * @return  R<AgencyTotalVo>
     */
    @PostMapping("/order/getAgencyTotalVo")
    public R<AgencyTotalVo> getAgencyTotalVo(@RequestBody List<Long> shopIdList);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
@@ -648,7 +648,11 @@
     */
    @Override
    public List<MgtActivityListVo> listStaffActivity(StaffActivityListDto staffActivityListDto){
        return activityMapper.listStaffActivity(staffActivityListDto);
        List<MgtActivityListVo> activityListVoList = new ArrayList<>();
        if(staffActivityListDto.getActivityFrom()!=null&&staffActivityListDto.getActivityFrom()==1){
            activityListVoList = activityMapper.listStaffActivity(staffActivityListDto);
        }
        return activityListVoList;
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtTotalController.java
@@ -33,7 +33,7 @@
    @RequestMapping(value = "/getTotalMemberTotal", method = RequestMethod.POST)
    @ApiOperation(value = "获取商户会员人数统计")
    @ApiOperation(value = "获取商户会员人数统计(商户管理-统计经营-会员统计)")
    public R<MgtTotalMemberTotalVo> getTotalMemberTotal(@RequestBody MgtBaseShopDto mgtBaseShopDto) {
        Long userId = SecurityUtils.getUserId();
        mgtBaseShopDto.setUserId(userId);
@@ -42,7 +42,7 @@
    }
    @RequestMapping(value = "/getPlTotalMemberTotal", method = RequestMethod.POST)
    @ApiOperation(value = "获取平台会员人数统计")
    @ApiOperation(value = "获取平台会员人数统计(统计-会员统计)")
    public R<MgtPlTotalMemberTotalVo> getPlTotalMemberTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
        Long userId = SecurityUtils.getUserId();
        mgtBasePlatformDto.setUserId(userId);
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberFixedTotalVo.java
@@ -35,6 +35,9 @@
    @ApiModelProperty(value = "会员年龄value")
    private Integer[] ageValue;
    @ApiModelProperty(value = "会员年龄占比value")
    private BigDecimal[] agePercentValue;
    @ApiModelProperty(value = "会员调理")
    private List<MgtMapIntTotalVo> nurseTotalVos;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -1261,6 +1261,18 @@
        String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
        // 不同年龄段的会员数数组
        Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()};
        BigDecimal[] agePercentValue = new BigDecimal[5];
        Integer totalPerson = mgtAgeTotalVo.getTenAge()+mgtAgeTotalVo.getTwentyAge()+ mgtAgeTotalVo.getThirtyAge()+mgtAgeTotalVo.getFortyAge()+mgtAgeTotalVo.getFiftyAge();
        BigDecimal totalPersonBig = new BigDecimal(totalPerson.toString());
        BigDecimal hundredBig = new BigDecimal("100");
        if(totalPerson==0){
            totalPersonBig = hundredBig;
        }
        agePercentValue[0] = new BigDecimal(mgtAgeTotalVo.getTenAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[1] = new BigDecimal(mgtAgeTotalVo.getTwentyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[2] = new BigDecimal(mgtAgeTotalVo.getThirtyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[3] = new BigDecimal(mgtAgeTotalVo.getFortyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[4] = new BigDecimal(mgtAgeTotalVo.getFiftyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        // 设置年龄段数组和不同年龄段的会员数数组
        mgtTotalMemberTotalVo.setAgeKey(ageKey);
        mgtTotalMemberTotalVo.setAgeValue(ageValue);
@@ -1362,20 +1374,52 @@
        MgtPlTotalMemberTotalVo plTotalMemberTotalVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto);
        MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getPlTotalMemberTotalAge(mgtBasePlatformDto);
        if (mgtAgeTotalVo != null) {
            plTotalMemberTotalVo.setManTotal(mgtAgeTotalVo.getManTotal());
            plTotalMemberTotalVo.setWomenTotal(mgtAgeTotalVo.getWomenTotal());
        } else {
            plTotalMemberTotalVo.setManTotal(0);
            plTotalMemberTotalVo.setWomenTotal(0);
            Integer manTotal = mgtAgeTotalVo.getManTotal();
            Integer womenTotal = mgtAgeTotalVo.getWomenTotal();
            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).setScale(0,BigDecimal.ROUND_HALF_UP);
                womenPercent = bigTen.subtract(menPercent);
            }
            plTotalMemberTotalVo.setManTotal(manTotal);
            plTotalMemberTotalVo.setWomenTotal(womenTotal);
            plTotalMemberTotalVo.setManPercent(menPercent);
            plTotalMemberTotalVo.setWomenPercent(womenPercent);
        }
        // 年龄段数组
        String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
        // 不同年龄段的会员数数组
        Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()};
        BigDecimal[] agePercentValue = new BigDecimal[5];
        Integer totalPerson = mgtAgeTotalVo.getTenAge()+mgtAgeTotalVo.getTwentyAge()+ mgtAgeTotalVo.getThirtyAge()+mgtAgeTotalVo.getFortyAge()+mgtAgeTotalVo.getFiftyAge();
        BigDecimal totalPersonBig = new BigDecimal(totalPerson.toString());
        BigDecimal hundredBig = new BigDecimal("100");
        if(totalPerson==0){
            totalPersonBig = hundredBig;
        }
        agePercentValue[0] = new BigDecimal(mgtAgeTotalVo.getTenAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[1] = new BigDecimal(mgtAgeTotalVo.getTwentyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[2] = new BigDecimal(mgtAgeTotalVo.getThirtyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[3] = new BigDecimal(mgtAgeTotalVo.getFortyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[4] = new BigDecimal(mgtAgeTotalVo.getFiftyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        // 设置年龄段数组和不同年龄段的会员数数组
        plTotalMemberTotalVo.setAgeKey(ageKey);
        plTotalMemberTotalVo.setAgeValue(ageValue);
        plTotalMemberTotalVo.setAgePercent(agePercentValue);
        // 获取不同调理类型的会员数
        List<MgtMapIntTotalVo> nurseTotalVos = memberMapper.getPlTotalMemberTotalNurse(mgtBasePlatformDto);
        if (nurseTotalVos != null && nurseTotalVos.size() > 0) {
@@ -1492,6 +1536,18 @@
        String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
        // 不同年龄段的会员数数组
        Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()};
        BigDecimal[] agePercentValue = new BigDecimal[5];
        Integer totalPerson = mgtAgeTotalVo.getTenAge()+mgtAgeTotalVo.getTwentyAge()+ mgtAgeTotalVo.getThirtyAge()+mgtAgeTotalVo.getFortyAge()+mgtAgeTotalVo.getFiftyAge();
        BigDecimal totalPersonBig = new BigDecimal(totalPerson.toString());
        BigDecimal hundredBig = new BigDecimal("100");
        if(totalPerson==0){
            totalPersonBig = hundredBig;
        }
        agePercentValue[0] = new BigDecimal(mgtAgeTotalVo.getTenAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[1] = new BigDecimal(mgtAgeTotalVo.getTwentyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[2] = new BigDecimal(mgtAgeTotalVo.getThirtyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[3] = new BigDecimal(mgtAgeTotalVo.getFortyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[4] = new BigDecimal(mgtAgeTotalVo.getFiftyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        // 设置年龄段数组和不同年龄段的会员数数组
        mgtShopTotalMemberVo.setAgeKey(ageKey);
        mgtShopTotalMemberVo.setAgeValue(ageValue);
@@ -1648,9 +1704,22 @@
        String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
        // 不同年龄段的会员数数组
        Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()};
        BigDecimal[] agePercentValue = new BigDecimal[5];
        Integer totalPerson = mgtAgeTotalVo.getTenAge()+mgtAgeTotalVo.getTwentyAge()+ mgtAgeTotalVo.getThirtyAge()+mgtAgeTotalVo.getFortyAge()+mgtAgeTotalVo.getFiftyAge();
        BigDecimal totalPersonBig = new BigDecimal(totalPerson.toString());
        BigDecimal hundredBig = new BigDecimal("100");
        if(totalPerson==0){
            totalPersonBig = hundredBig;
        }
        agePercentValue[0] = new BigDecimal(mgtAgeTotalVo.getTenAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[1] = new BigDecimal(mgtAgeTotalVo.getTwentyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[2] = new BigDecimal(mgtAgeTotalVo.getThirtyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[3] = new BigDecimal(mgtAgeTotalVo.getFortyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        agePercentValue[4] = new BigDecimal(mgtAgeTotalVo.getFiftyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
        // 设置年龄段数组和不同年龄段的会员数数组
        memberFixedTotalVo.setAgeKey(ageKey);
        memberFixedTotalVo.setAgeValue(ageValue);
        memberFixedTotalVo.setAgePercentValue(agePercentValue);
        // 获取不同护理类型的会员数
        List<MgtMapIntTotalVo> nurseTotalVos = memberMapper.getMerMemberTotalNurse(merTotalDto);
        if (nurseTotalVos != null && nurseTotalVos.size() > 0) {
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -424,7 +424,7 @@
        SELECT member_nurse mapKey, COUNT(*) mapValue
        FROM (
            SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(member_nurse, ',', numbers.n), ',', -1) member_nurse
            FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10) numbers
            FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL SELECT 29 UNION ALL SELECT 30 UNION ALL SELECT 31 UNION ALL SELECT 32 UNION ALL SELECT 33 UNION ALL SELECT 34 UNION ALL SELECT 35 UNION ALL SELECT 36 UNION ALL SELECT 37 UNION ALL SELECT 38 UNION ALL SELECT 39 UNION ALL SELECT 40) numbers
            INNER JOIN t_member ON CHAR_LENGTH(member_nurse) - CHAR_LENGTH(REPLACE(member_nurse, ',', '')) >= numbers.n - 1
            <if test="param.shopId != null and param.shopId != ''">
                AND relation_shop_id = #{param.shopId}
@@ -460,7 +460,7 @@
        SELECT goods_type mapKey, COUNT(*) mapValue
        FROM (
        SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(goods_type, ',', numbers.n), ',', -1) goods_type
        FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) numbers
        FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5) numbers
        INNER JOIN t_member ON CHAR_LENGTH(goods_type) - CHAR_LENGTH(REPLACE(goods_type, ',', '')) >= numbers.n - 1
        <if test="param.shopId != null and param.shopId != ''">
            AND relation_shop_id = #{param.shopId}
@@ -560,8 +560,8 @@
    <select id="getPlTotalMemberTotal" resultType="com.ruoyi.system.api.domain.vo.MgtPlTotalMemberTotalVo">
        SELECT
        COUNT(*) AS memberTotal,
        COUNT(CASE WHEN DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY) THEN 1 END) AS memberYesterday,
        COUNT(CASE WHEN create_time BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE() THEN 1 END) AS memberSeven
        COUNT(CASE WHEN DATE(binding_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY) THEN 1 END) AS memberYesterday,
        COUNT(CASE WHEN binding_time BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE() THEN 1 END) AS memberSeven
        FROM t_member WHERE del_flag = 0 AND binding_flag = 1
    </select>
@@ -593,8 +593,8 @@
        SELECT member_nurse mapKey, COUNT(*) mapValue
        FROM (
        SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(member_nurse, ',', numbers.n), ',', -1) member_nurse
        FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10) numbers
        INNER JOIN t_member ON CHAR_LENGTH(member_nurse) - CHAR_LENGTH(REPLACE(member_nurse, ',', '')) >= numbers.n - 1
        FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL SELECT 29 UNION ALL SELECT 30 UNION ALL SELECT 31 UNION ALL SELECT 32 UNION ALL SELECT 33 UNION ALL SELECT 34 UNION ALL SELECT 35 UNION ALL SELECT 36 UNION ALL SELECT 37 UNION ALL SELECT 38 UNION ALL SELECT 39 UNION ALL SELECT 40) numbers
        INNER JOIN t_member ON CHAR_LENGTH(member_nurse) - CHAR_LENGTH(REPLACE(member_nurse, ',', '')) >= numbers.n - 1 AND binding_flag = 1 AND del_flag = 0
        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
            AND relation_shop_id IN
            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -615,7 +615,7 @@
    <select id="getPlTotalMemberTotalLevel" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo">
        SELECT level mapKey, COUNT(*) mapValue
        FROM t_member
        WHERE (level IS NOT NULL OR level != '')
        WHERE (level IS NOT NULL OR level != '') AND binding_flag = 1 AND del_flag = 0
        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
            AND relation_shop_id IN
            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -635,8 +635,8 @@
        SELECT goods_type mapKey, COUNT(*) mapValue
        FROM (
        SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(goods_type, ',', numbers.n), ',', -1) goods_type
        FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) numbers
        INNER JOIN t_member ON CHAR_LENGTH(goods_type) - CHAR_LENGTH(REPLACE(goods_type, ',', '')) >= numbers.n - 1
        FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5) numbers
        INNER JOIN t_member ON CHAR_LENGTH(goods_type) - CHAR_LENGTH(REPLACE(goods_type, ',', '')) >= numbers.n - 1 AND binding_flag = 1 AND del_flag = 0
        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
            AND relation_shop_id IN
            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -659,7 +659,7 @@
        COUNT(tm.member_id)
        FROM t_member tm
        INNER JOIN t_member_total tmt ON tm.member_id = tmt.member_id
        WHERE tm.del_Flag = 0
        WHERE tm.del_Flag = 0 AND binding_flag = 1
        <if test="shopIdList != null and shopIdList.size() > 0">
            AND tm.relation_shop_id IN
            <foreach collection="shopIdList" item="item" open="(" separator="," close=")">
@@ -680,7 +680,7 @@
        tmt.total_pay_count mapValue
        FROM t_member tm
        INNER JOIN t_member_total tmt ON tm.member_id = tmt.member_id
        WHERE tm.del_flag = 0
        WHERE tm.del_flag = 0 AND binding_flag = 1
        <if test="param.shopIdList != null and shopIdList.size() > 0">
            AND tm.relation_shop_id IN
            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -700,7 +700,7 @@
        SELECT
        tm.customer_source mapKey,
        COUNT(tm.user_id) mapValue
        FROM t_member tm WHERE tm.del_flag = 0
        FROM t_member tm WHERE tm.del_flag = 0 AND binding_flag = 1
        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
            AND tm.relation_shop_id IN
            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -721,7 +721,7 @@
        SELECT
        tm.relation_shop_name mapKey,
        COUNT(tm.user_id) mapValue
        FROM t_member tm WHERE tm.del_flag = 0
        FROM t_member tm WHERE tm.del_flag = 0 AND binding_flag = 1
        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
            AND tm.relation_shop_id IN
            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -809,8 +809,8 @@
        SELECT member_nurse mapKey, COUNT(*) mapValue
        FROM (
        SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(member_nurse, ',', numbers.n), ',', -1) member_nurse
        FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10) numbers
        INNER JOIN t_member ON CHAR_LENGTH(member_nurse) - CHAR_LENGTH(REPLACE(member_nurse, ',', '')) >= numbers.n - 1
        FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL SELECT 29 UNION ALL SELECT 30 UNION ALL SELECT 31 UNION ALL SELECT 32 UNION ALL SELECT 33 UNION ALL SELECT 34 UNION ALL SELECT 35 UNION ALL SELECT 36 UNION ALL SELECT 37 UNION ALL SELECT 38 UNION ALL SELECT 39 UNION ALL SELECT 40) numbers
        INNER JOIN t_member ON CHAR_LENGTH(member_nurse) - CHAR_LENGTH(REPLACE(member_nurse, ',', '')) >= numbers.n - 1 AND del_flag = 0
        <if test="param.shopId != null and param.shopId != ''">
            AND binding_flag = 1 AND relation_shop_id = #{param.shopId}
        </if>
@@ -834,7 +834,7 @@
    <select id="getMerMemberTotalLevel" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo">
        SELECT level mapKey, COUNT(*) mapValue
        FROM t_member
        WHERE (level IS NOT NULL OR level != '')
        WHERE (level IS NOT NULL OR level != '') AND del_flag = 0
        <if test="param.shopId != null and param.shopId != ''">
            AND binding_flag = 1 AND relation_shop_id = #{param.shopId}
        </if>
@@ -857,8 +857,8 @@
        SELECT goods_type mapKey, COUNT(*) mapValue
        FROM (
        SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(goods_type, ',', numbers.n), ',', -1) goods_type
        FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) numbers
        INNER JOIN t_member ON CHAR_LENGTH(goods_type) - CHAR_LENGTH(REPLACE(goods_type, ',', '')) >= numbers.n - 1
        FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5) numbers
        INNER JOIN t_member ON CHAR_LENGTH(goods_type) - CHAR_LENGTH(REPLACE(goods_type, ',', '')) >= numbers.n - 1 AND del_flag = 0
        <if test="param.shopId != null and param.shopId != ''">
            AND binding_flag = 1 AND relation_shop_id = #{param.shopId}
        </if>
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java
@@ -143,4 +143,16 @@
        return R.ok(homeShopTotalVo);
    }
    /**
     * @description  获取区域统计
     * @author  jqs
     * @date    2023/8/25 11:52
     * @param shopIdList
     * @return  R<AgencyTotalVo>
     */
    @PostMapping("/getAgencyTotalVo")
    public R<AgencyTotalVo> getAgencyTotalVo(@RequestBody List<Long> shopIdList){
        AgencyTotalVo agencyTotalVo= orderService.getAgencyTotalVo(shopIdList);
        return R.ok(agencyTotalVo);
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
@@ -120,11 +120,14 @@
    @RequestMapping(value = "/placeActivityOrder", method = RequestMethod.POST)
    @ApiOperation(value = "创建活动订单")
    public R<AppPlaceOrderVo> placeActivityOrder(@Validated @RequestBody AppPlaceActivityDto appPlaceActivityDto) {
        Long userId = SecurityUtils.getUserId();
        LoginUser loginUser = SecurityUtils.getLoginUser();
        Long userId = loginUser.getUserid();
        appPlaceActivityDto.setSpbillCreateIp(loginUser.getIpaddr());
        if (userId != null) {
            Member member = memberService.getMember(userId).getData();
            appPlaceActivityDto.setUserId(userId);
            if (member != null && member.getRelationShopId() != null) {
                appPlaceActivityDto.setOpenid(member.getMiniOpenid());
                appPlaceActivityDto.setShopId(member.getRelationShopId());
            }
            if (member.getBindingFlag() != 1) {
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderTypeTotalVo.java
@@ -23,6 +23,4 @@
    @ApiModelProperty(value = "商品类型金额")
    private List<MgtMapBigTotalVo> goodsTypeMoneyList;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -10,10 +10,7 @@
import com.ruoyi.order.domain.vo.MerTotalOrderVo;
import com.ruoyi.order.domain.vo.*;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo;
import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo;
import com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo;
import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo;
import com.ruoyi.system.api.domain.vo.*;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
@@ -670,4 +667,13 @@
     * @return  List<MgtMapIntTotalVo>
     */
    List<MgtMapBigTotalVo> shopSalesRank(@Param("shopIdList")List<Long> shopIdList);
    /**
     * @description  获取区域统计
     * @author  jqs
     * @date    2023/8/25 11:49
     * @param shopIdList
     * @return  AgencyTotalVo
     */
    AgencyTotalVo getAgencyTotalVo(@Param("shopIdList")List<Long> shopIdList);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -5,10 +5,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsRequest;
import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsResult;
import com.github.binarywang.wxpay.bean.ecommerce.RefundNotifyResult;
import com.github.binarywang.wxpay.bean.ecommerce.TransactionsResult;
import com.github.binarywang.wxpay.bean.ecommerce.*;
import com.github.binarywang.wxpay.bean.ecommerce.enums.TradeTypeEnum;
import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingNotifyResult;
import com.github.binarywang.wxpay.config.WxPayConfig;
@@ -16,6 +13,7 @@
import com.github.binarywang.wxpay.service.WxPayService;
import com.google.common.base.Joiner;
import com.google.gson.Gson;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
@@ -754,11 +752,12 @@
            goodsName = String.join(",", goodsNameList);
        }
        // 小程序微信下单支付
        /*createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, orderNo,
                orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(),
                appPlaceOrderDto.getSpbillCreateIp(), goodsNameList);*/
        if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){
            // 小程序微信下单支付
            createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, orderNo,
                    orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(),
                    appPlaceOrderDto.getSpbillCreateIp(), goodsNameList,1);
        }
        //减去优惠券
        if (StringUtils.isNotBlank(memberCouponSJ.toString())) {
@@ -797,11 +796,11 @@
    public void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
                                 String goodsName, String orderNo,
                                 String orderId, BigDecimal payMoney,
                                 String openid, String payerClientIp, List<String> goodsNameList){
                                 String openid, String payerClientIp, List<String> goodsNameList,Integer orderFrom){
        try {
            // 创建支付订单
            //R<String> resultMch = remoteShopService.getShopSubMchId(shopId);
            String subMchId = "1650744551";
            R<String> resultMch = remoteShopService.getShopSubMchId(shopId);
            String subMchId = resultMch.getData();
            if (StringUtils.isEmpty(subMchId)) {
                throw new ServiceException("获取微信商户号失败");
            }
@@ -820,7 +819,11 @@
            request.setNotifyUrl(config.getNotifyUrl());
            // 结算信息
            PartnerTransactionsRequest.SettleInfo settleInfo = new PartnerTransactionsRequest.SettleInfo();
            settleInfo.setProfitSharing(true);
            if(orderFrom==2){
                settleInfo.setProfitSharing(true);
            }else{
                settleInfo.setProfitSharing(false);
            }
            settleInfo.setSubsidyAmount(BigDecimal.ZERO);
            request.setSettleInfo(settleInfo);
@@ -1134,7 +1137,18 @@
        appPlaceOrderVo.setPackageStr(res.getPackageVal());
        appPlaceOrderVo.setTradeType(res.getSignType());
        appPlaceOrderVo.setPaySign(res.getPaySign());
*/
        List<String> goodsNameList = new ArrayList<>();
        goodsNameList.add(orderGoods.getGoodsName());
        if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){
            // 小程序微信下单支付
            createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), orderGoods.getGoodsName(), orderNo,
                    orderId, order.getPayMoney(), appPlaceActivityDto.getOpenid(),
                    appPlaceActivityDto.getSpbillCreateIp(), goodsNameList,2);
        }
        //生成活动参加记录
        ActivityRecord activityRecord = new ActivityRecord();
        activityRecord.setDelFlag(0);
@@ -3490,6 +3504,9 @@
            merTotalDto.setShopIdList(shopIdList);
            merTotalDto.setShopId(null);
        }
        if(merTotalDto.getGoodsType()!=null&&merTotalDto.getGoodsType()==0){
            merTotalDto.setGoodsType(null);
        }
        MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo();
        // 获取订单年龄用户列表
        //List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData();
@@ -3537,10 +3554,10 @@
                }
            }*/
        List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList = orderMapper.listMerOrderDistributionTotal(merTotalDto);
        String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()];
        Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()];
        BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()];
        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);
@@ -3549,6 +3566,10 @@
                orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond();
            }
            orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
        }else{
            orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
            orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
            orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
        }
        // 返回订单分布总数对象
        return orderDistributionTotalVo;
@@ -3574,28 +3595,44 @@
        List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>();
        List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>();
        if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
            MgtMapIntTotalVo MgtMapIntTotalVo;
            MgtMapIntTotalVo mgtMapIntTotalVo;
            MgtMapBigTotalVo mgtMapBigTotalVo;
            Integer intTotal = 0;
            BigDecimal bigTotal = BigDecimal.ZERO;
            for(MgtMapTotalPlusVo mgtMapTotalPlusVo : MgtMapIntTotalVoGoodsType){
                intTotal = intTotal + mgtMapTotalPlusVo.getMapValueFirst();
                bigTotal = bigTotal.add(mgtMapTotalPlusVo.getMapValueSecond());
            }
            BigDecimal hundredBig = new BigDecimal("100");
            BigDecimal intTotalBig = hundredBig;
            if(intTotal!=0){
                intTotalBig = new BigDecimal(intTotal.toString());
            }
            if(bigTotal.compareTo(BigDecimal.ZERO)<1){
                bigTotal = hundredBig;
            }
            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
            for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
                MgtMapIntTotalVo = new MgtMapIntTotalVo();
                mgtMapIntTotalVo = new MgtMapIntTotalVo();
                mgtMapBigTotalVo = new MgtMapBigTotalVo();
                MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                mgtMapIntTotalVo.setMapPercent(BigDecimal.valueOf(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()).divide(intTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig));
                mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
                mgtMapBigTotalVo.setMapPercent(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond().divide(bigTotal,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig));
                if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
                    MgtMapIntTotalVo.setMapKey("周期");
                    mgtMapIntTotalVo.setMapKey("周期");
                    mgtMapBigTotalVo.setMapKey("周期");
                } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
                    MgtMapIntTotalVo.setMapKey("服务");
                    mgtMapIntTotalVo.setMapKey("服务");
                    mgtMapBigTotalVo.setMapKey("服务");
                } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
                    MgtMapIntTotalVo.setMapKey("体验");
                    mgtMapIntTotalVo.setMapKey("体验");
                    mgtMapBigTotalVo.setMapKey("体验");
                } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
                    MgtMapIntTotalVo.setMapKey("单品");
                    mgtMapIntTotalVo.setMapKey("单品");
                    mgtMapBigTotalVo.setMapKey("单品");
                }
                goodsTypeTotalList.add(MgtMapIntTotalVo);
                goodsTypeTotalList.add(mgtMapIntTotalVo);
                goodsTypeMoneyList.add(mgtMapBigTotalVo);
            }
            orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
@@ -4104,7 +4141,7 @@
        BigDecimal onlinePayMoney = order.getOnlinePayMoney();
        if(BigDecimal.ZERO.compareTo(onlinePayMoney) < 0){
            // 订单支付金额大于0,可发起退款
            //orderWxApplyRefund(orderId, refundId, onlinePayMoney, orderRefund);
            orderWxApplyRefund(orderId, refundId, onlinePayMoney, orderRefund);
        }
        orderRefund.setRefundStatus(1);
@@ -4114,7 +4151,7 @@
    /**
     * 申请退款API
     */
    /*private void orderWxApplyRefund(String orderId, String outRefundNo, BigDecimal payMoney, OrderRefund orderRefund){
    private void orderWxApplyRefund(String orderId, String outRefundNo, BigDecimal payMoney, OrderRefund orderRefund){
        try {
            // 创建支付订单
            OrderPayment orderPayment = orderPaymentService.getByOrderId(orderId);
@@ -4153,7 +4190,7 @@
        } catch (WxPayException e) {
            throw new ServiceException(e.getMessage());
        }
    }*/
    }
    /**
     * @param staffTotalDto
@@ -4200,6 +4237,9 @@
     */
    @Override
    public MerOrderDistributionTotalVo getStaffOrderDistributionTotal(StaffTotalDto staffTotalDto) {
        if(staffTotalDto.getGoodsType()!=null&&staffTotalDto.getGoodsType()==0){
            staffTotalDto.setGoodsType(null);
        }
        MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo();
        // 获取订单年龄用户列表
        //MerTotalDto merTotalDto = new MerTotalDto();
@@ -4255,10 +4295,10 @@
        }*/
        if(staffTotalDto.getActivityFrom()==1){
            List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList = orderMapper.listStaffActivityOrderDistributionTotal(staffTotalDto);
            String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()];
            Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()];
            BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()];
            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);
@@ -4267,6 +4307,10 @@
                    orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond();
                }
                orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
            }else{
                orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
                orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
                orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
            }
        }
        // 返回订单分布总数对象
@@ -4341,28 +4385,44 @@
            List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>();
            List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>();
            if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
                MgtMapIntTotalVo MgtMapIntTotalVo;
                MgtMapIntTotalVo mgtMapIntTotalVo;
                MgtMapBigTotalVo mgtMapBigTotalVo;
                Integer intTotal = 0;
                BigDecimal bigTotal = BigDecimal.ZERO;
                for(MgtMapTotalPlusVo mgtMapTotalPlusVo : MgtMapIntTotalVoGoodsType){
                    intTotal = intTotal + mgtMapTotalPlusVo.getMapValueFirst();
                    bigTotal = bigTotal.add(mgtMapTotalPlusVo.getMapValueSecond());
                }
                BigDecimal hundredBig = new BigDecimal("100");
                BigDecimal intTotalBig = hundredBig;
                if(intTotal!=0){
                    intTotalBig = new BigDecimal(intTotal.toString());
                }
                if(bigTotal.compareTo(BigDecimal.ZERO)<1){
                    bigTotal = hundredBig;
                }
                // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
                for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
                    MgtMapIntTotalVo = new MgtMapIntTotalVo();
                    mgtMapIntTotalVo = new MgtMapIntTotalVo();
                    mgtMapBigTotalVo = new MgtMapBigTotalVo();
                    MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                    mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                    mgtMapIntTotalVo.setMapPercent(BigDecimal.valueOf(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()).divide(intTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig));
                    mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
                    mgtMapBigTotalVo.setMapPercent(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond().divide(bigTotal,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig));
                    if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
                        MgtMapIntTotalVo.setMapKey("周期");
                        mgtMapIntTotalVo.setMapKey("周期");
                        mgtMapBigTotalVo.setMapKey("周期");
                    } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
                        MgtMapIntTotalVo.setMapKey("服务");
                        mgtMapIntTotalVo.setMapKey("服务");
                        mgtMapBigTotalVo.setMapKey("服务");
                    } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
                        MgtMapIntTotalVo.setMapKey("体验");
                        mgtMapIntTotalVo.setMapKey("体验");
                        mgtMapBigTotalVo.setMapKey("体验");
                    } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
                        MgtMapIntTotalVo.setMapKey("单品");
                        mgtMapIntTotalVo.setMapKey("单品");
                        mgtMapBigTotalVo.setMapKey("单品");
                    }
                    goodsTypeTotalList.add(MgtMapIntTotalVo);
                    goodsTypeTotalList.add(mgtMapIntTotalVo);
                    goodsTypeMoneyList.add(mgtMapBigTotalVo);
                }
                orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
@@ -4691,4 +4751,17 @@
        MerHomeShopTotalVo serviceTotalVo = orderMapper.getMerHomeShopServiceTotalVo(shopId);
        return serviceTotalVo;
    }
    /**
     * @description  获取区域统计
     * @author  jqs
     * @date    2023/8/25 11:49
     * @param shopIdList
     * @return  AgencyTotalVo
     */
    @Override
    public AgencyTotalVo getAgencyTotalVo(List<Long> shopIdList){
        AgencyTotalVo agencyTotalVo = orderMapper.getAgencyTotalVo(shopIdList);
        return agencyTotalVo;
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -523,7 +523,7 @@
    void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
                                 String goodsName, String orderNo,
                                 String orderId, BigDecimal payMoney,
                                 String openid, String payerClientIp, List<String> goodsNameList);
                                 String openid, String payerClientIp, List<String> goodsNameList,Integer orderFrom);
    /**
     * @description  获取销售排行
@@ -542,4 +542,13 @@
     * @return  MerHomeShopTotalVo
     */
    MerHomeShopTotalVo getShopServiceTotal(Long shopId);
    /**
     * @description  获取区域统计
     * @author  jqs
     * @date    2023/8/25 11:49
     * @param shopIdList
     * @return  AgencyTotalVo
     */
    AgencyTotalVo getAgencyTotalVo(List<Long> shopIdList);
}
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -1028,7 +1028,7 @@
    </select>
    <select id="shopSalesTotal" resultType="java.math.BigDecimal">
        SELECT IFNULL(SUM(change_receivable_money),0)
        SELECT IFNULL(SUM(CASE pay_type WHEN 1 THEN change_receivable_money WHEN 2 THEN change_receivable_money+online_pay_money ELSE 0 END),0)
        FROM t_order
        WHERE del_flag = 0 AND order_status = 3
        <if test="param.shopId != null and param.shopId != ''">
@@ -1095,7 +1095,8 @@
        </if>
        ORDER BY toc.pay_time DESC LIMIT 2) t2
        ON t1.user_id = t2.user_id AND t1.pay_time &lt; t2.pay_time
        WHERE t1.del_flag = 0
        INNER JOIN t_order_goods tog1 ON t1.order_id = tog1.order_id
        WHERE t1.del_flag = 0 AND tog1.goods_type = 1 AND t1.shop_id = 32
        HAVING DATEDIFF(t2.pay_time, t1.pay_time) &gt; 30) AS temp
    </select>
@@ -1416,7 +1417,7 @@
    <select id="getMerHomeShopTotalVo" resultType="com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo">
        SELECT
            IFNULL(SUM(CASE WHEN order_status = 2 THEN 1 ELSE 0 END),0) unHandleOrder,
            IFNULL(SUM(CASE WHEN order_status = 3 THEN change_receivable_money ELSE 0 END),0) shopTurnover
            IFNULL(SUM(CASE WHEN order_status = 3 AND pay_type = 1 THEN change_receivable_money WHEN order_status = 3 AND pay_type = 2 THEN change_receivable_money+online_pay_money ELSE 0 END),0) shopTurnover
        FROM t_order
        WHERE del_flag = 0 AND shop_id = #{shopId} AND order_status IN (2,3)
    </select>
@@ -1486,7 +1487,10 @@
            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.order_status IN (2,3)  AND tog.del_flag = 0 AND tog.goods_type = #{param.goodsType}
        WHERE toc.del_flag = 0 AND toc.order_status IN (2,3)  AND tog.del_flag = 0
        <if test="param.goodsType != null and param.goodsType != ''">
            AND tog.goods_type = #{param.goodsType}
        </if>
        <if test="param.shopId != null and param.shopId != ''">
            AND shop_id = #{param.shopId}
        </if>
@@ -1723,7 +1727,7 @@
        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_from = 2 AND toa.order_status IN (2,3) AND toa.new_member_flag = 1
        WHERE toa.order_from = 2 AND toa.shop_id = #{param.shopId} 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>
@@ -1743,6 +1747,9 @@
        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.goodsType !=null and param.goodsType != ''">
            AND tog.goods_type = #{param.goodsType}
        </if>
        <if test="param.activityId !=null and param.activityId != ''">
            AND toc.activity_id = #{param.activityId}
        </if>
@@ -1908,4 +1915,15 @@
        GROUP BY shop_id
        ORDER BY mapValue DESC LIMIT 15
    </select>
    <select id="getAgencyTotalVo" resultType="com.ruoyi.system.api.domain.vo.AgencyTotalVo">
        SELECT
        IFNULL(SUM(CASE pay_type WHEN 1 THEN change_receivable_money WHEN 2 THEN change_receivable_money+online_pay_money ELSE 0 END),0) areaTurnover
        FROM t_order
        WHERE del_flag = 0 AND order_status = 3 AND shop_id IN
        <foreach collection="shopIdList" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
</mapper>
ruoyi-modules/ruoyi-shop/pom.xml
@@ -145,6 +145,21 @@
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.15.1</version>
        </dependency>
        <!-- 测试类 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.7.7</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java
@@ -1,6 +1,5 @@
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;
@@ -361,9 +360,4 @@
        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/domain/vo/StaffShopPageVo.java
@@ -39,4 +39,7 @@
    @ApiModelProperty(value="商户状态")
    private Integer shopStatus;
    @ApiModelProperty(value="冻结状态0解冻1冻结")
    private Integer frozenFlag;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -8,7 +8,8 @@
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.bean.ecommerce.ProfitSharingReceiverRequest;
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.exception.ServiceException;
@@ -1363,8 +1364,8 @@
            if (shopIdList != null && !shopIdList.isEmpty()) {
                Integer count = remoteMemberService.getAreaNewMember(shopIdList).getData();
                staffShopInfoGetVo.setNewAreaMember(count);
                ShopTotal shopTotalAll = shopTotalService.shopsTotalByIds(shopIdList);
                staffShopInfoGetVo.setAreaTurnover(shopTotalAll.getTotalOrderMoney());
                AgencyTotalVo agencyTotalVo = remoteOrderService.getAgencyTotalVo(shopIdList).getData();
                staffShopInfoGetVo.setAreaTurnover(agencyTotalVo.getAreaTurnover());
            }
        }
        // 如果商店的扩展联系方式不为空,则设置员工商店信息对象的扩展联系方式列表
@@ -1594,9 +1595,10 @@
     * @return  void
     */
    @Override
    public void addProfitSharingReceiver(ProfitSharingReceiver profitSharingReceiver){
    public ProfitSharingReceiverResult addProfitSharingReceiver(ProfitSharingReceiverRequest request){
        try {
            ProfitSharingReceiver result = wechatPayUtils.addProfitSharingReceiver(profitSharingReceiver);
            ProfitSharingReceiverResult result = wechatPayUtils.addProfitSharingReceiver(request);
            return result;
        } catch (WxPayException e) {
            throw new RuntimeException(e);
        }
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
@@ -2,7 +2,8 @@
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.bean.ecommerce.ProfitSharingReceiverRequest;
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.ruoyi.shop.domain.dto.*;
import com.ruoyi.shop.domain.vo.*;
@@ -377,5 +378,5 @@
     * @param 
     * @return  void
     */
    void addProfitSharingReceiver(ProfitSharingReceiver profitSharingReceiver);
    ProfitSharingReceiverResult addProfitSharingReceiver(ProfitSharingReceiverRequest request);
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java
@@ -1,11 +1,8 @@
package com.ruoyi.shop.util;
import com.alibaba.fastjson.JSONObject;
import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsRequest;
import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult;
import com.github.binarywang.wxpay.bean.ecommerce.*;
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;
@@ -157,11 +154,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);
    public ProfitSharingReceiverResult addProfitSharingReceiver(ProfitSharingReceiverRequest request) throws WxPayException {
        request.setAppid("wxb7f0ea286fc4e535");
        request.setType("MERCHANT_ID");
        request.setRelationType("SERVICE_PROVIDER");
        ProfitSharingReceiverResult result = wxService.getEcommerceService().addReceivers(request);
        return result;
    }
}
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -545,7 +545,12 @@
            WHEN 6 THEN '已通过'
            WHEN 7 THEN '已拒绝'
            WHEN 8 THEN '已拒绝'
        END auditStatusDesc
        END auditStatusDesc,
        CASE tsa.audit_status
            WHEN 4 THEN 1
            WHEN 5 THEN 1
        END auditStatusSort
        FROM t_shop ts
        INNER JOIN t_shop_authentication tsa ON ts.shop_id = tsa.shop_id AND tsa.del_flag = 0
        WHERE ts.del_flag = 0
@@ -567,6 +572,7 @@
        <if test="param.shopStatus!=null and param.shopStatus!=''">
            AND ts.shop_status = #{param.shopStatus}
        </if>
        ORDER BY auditStatusSort ASC,ts.create_time DESC
    </select>
    <select id="shopTotal" resultType="com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo">
@@ -804,7 +810,8 @@
        ts.shopowner_phone shopownerPhone,
        ts.shop_status shopStatus,
        tsf.file_url shopPicture,
        tbs.shop_name belongShopName
        tbs.shop_name belongShopName,
        ts.frozen_flag frozenFlag
        FROM t_shop ts
        LEFT JOIN t_shop_file tsf ON tsf.shop_id = ts.shop_id AND tsf.del_flag = 0 AND file_type = 1
        LEFT JOIN t_shop tbs ON tbs.shop_id = ts.belong_shop_id AND tbs.del_flag = 0
ruoyi-modules/ruoyi-shop/src/test/java/com/ruioyi/shop/shopTest.java
New file
@@ -0,0 +1,38 @@
package com.ruioyi.shop;
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverRequest;
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverResult;
import com.ruoyi.shop.RuoYiShopApplication;
import com.ruoyi.shop.service.shop.ShopService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
/**
 * @ClassName systemTest
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/7 10:57
 * @Version 1.0
 */
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = RuoYiShopApplication.class)
public class shopTest {
    @Resource
    private ShopService shopService;
    @Test
    public void main() {
        ProfitSharingReceiverRequest request = new ProfitSharingReceiverRequest();
        request.setAccount("1650744551");
        request.setName("泸州矗众信息科技有限责任公司");
        ProfitSharingReceiverResult result = shopService.addProfitSharingReceiver(request);
        System.out.println(result);
    }
}