ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BoardMemberTotalDto.java
New file @@ -0,0 +1,13 @@ package com.ruoyi.system.api.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data public class BoardMemberTotalDto { @ApiModelProperty(value = "用户id列表") List<Long> userIds; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
@@ -89,10 +89,6 @@ return R.fail("获取用户列表失败:" + throwable.getMessage()); } @Override public R<MgtBulletinBoardVo> boardMemberTotal() { return null; } @Override public R<List<Long>> listUserIdByAge(MgtActivityAgeDto mgtActivityAgeDto) { @@ -159,7 +155,10 @@ return R.fail("获取用户id列表失败:" + throwable.getMessage()); } @Override public R<MgtBulletinBoardVo> boardMemberTotal(BoardMemberTotalDto boardMemberTotalDto) { return R.fail(throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java
@@ -2,6 +2,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.dto.BoardMemberTotalDto; import com.ruoyi.system.api.domain.dto.MerBaseDto; import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; import com.ruoyi.system.api.domain.vo.*; @@ -39,11 +40,6 @@ @Override public R<MerHomeShopTotalVo> getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) { return R.fail("获取商户端统计失败:" + throwable.getMessage()); } @Override public R<MgtBulletinBoardVo> boardOrderTotal() { return null; } @Override @@ -90,6 +86,11 @@ public R<List<String>> getActivityOrderGoods(String activityId) { return R.fail("获取活动订单商品id失败:" + throwable.getMessage()); } @Override public R<MgtBulletinBoardVo> boardOrderTotal(BoardMemberTotalDto boardMemberTotalDto) { return R.fail(throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java
@@ -83,11 +83,6 @@ } @Override public R<MgtBulletinBoardVo> boardShopTotal() { return null; } @Override public R<List<Long>> listShopIdByPlTotal(MgtBasePlatformDto mgtBasePlatformDto) { return R.fail("获取商户列表失败:" + throwable.getMessage()); } @@ -151,6 +146,16 @@ public R<List<Shop>> listShopByIds(List<String> ids) { return R.fail("获取商户列表失败:" + throwable.getMessage()); } @Override public R<MgtBulletinBoardVo> boardShopTotal(BoardMemberTotalDto boardMemberTotalDto) { return R.fail(throwable.getMessage()); } @Override public List<Shop> getShopBySysUserIds(BoardMemberTotalDto boardMemberTotalDto) { return null; } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java
@@ -83,9 +83,18 @@ @Override public R<List<Long>> getUserIdsByDept(Long userId) { return null; return R.fail("根据部门获取所有员工id信息获取失败:" + throwable.getMessage()); } @Override public R<List<SysUser>> getUsersByDeptId(Long deptId) { return R.fail("根据部门id获取用户信息获取失败:" + throwable.getMessage()); } @Override public List<Long> getScopeOfAuthorityUserId() { return null; } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
@@ -125,7 +125,7 @@ * @date 2023/6/18 16:45 */ @PostMapping("/member/boardMemberTotal") public R<MgtBulletinBoardVo> boardMemberTotal(); public R<MgtBulletinBoardVo> boardMemberTotal(@RequestBody BoardMemberTotalDto boardMemberTotalDto); /** * @param mgtActivityAgeDto ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java
@@ -3,6 +3,7 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.dto.BoardMemberTotalDto; import com.ruoyi.system.api.domain.dto.MerBaseDto; import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; import com.ruoyi.system.api.domain.vo.*; @@ -31,7 +32,7 @@ * @date 2023/6/18 17:29 */ @PostMapping("/order/boardOrderTotal") public R<MgtBulletinBoardVo> boardOrderTotal(); public R<MgtBulletinBoardVo> boardOrderTotal(@RequestBody BoardMemberTotalDto boardMemberTotalDto); /** * @description ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java
@@ -85,7 +85,7 @@ * @date 2023/6/18 16:45 */ @PostMapping("/shop/boardShopTotal") public R<MgtBulletinBoardVo> boardShopTotal(); public R<MgtBulletinBoardVo> boardShopTotal(@RequestBody BoardMemberTotalDto boardMemberTotalDto); /** * @description 获取平台统计shopId @@ -199,4 +199,13 @@ */ @PostMapping("/shop/listShopByIds") R<List<Shop>> listShopByIds(@RequestBody List<String> ids); /** * 根据员工id获取关联到门店 * @param userIds * @return */ @PostMapping("/shop/getShopBySysUserIds") List<Shop> getShopBySysUserIds(@RequestBody BoardMemberTotalDto boardMemberTotalDto); } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteUserService.java
@@ -126,4 +126,12 @@ */ @PostMapping("/user/getUsersByDeptId") R<List<SysUser>> getUsersByDeptId(@RequestBody Long deptId); /** * 获取当前用户权限范围内的员工id * @return */ @PostMapping("/user/getScopeOfAuthorityUserId") List<Long> getScopeOfAuthorityUserId(); } ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml
@@ -17,9 +17,9 @@ server-addr: 47.109.78.184:5000 # server-addr: 127.0.0.1:8848 #pro namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test # namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd #dev # namespace: 6857cbd9-6088-4fe8-bb58-2b516d99876f config: @@ -27,9 +27,9 @@ server-addr: 47.109.78.184:5000 # server-addr: 127.0.0.1:8848 #pro namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test # namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd #dev # namespace: 6857cbd9-6088-4fe8-bb58-2b516d99876f # 配置文件格式 @@ -37,3 +37,8 @@ # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} feign: compression: request: min-request-size: 20480 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -10,9 +10,11 @@ import com.ruoyi.system.api.domain.poji.member.BirthdayCard; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.poji.member.MemberGiftRecord; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.model.AppMiniLoginDto; import com.ruoyi.system.api.model.AppMiniLoginVo; import com.ruoyi.system.api.service.RemoteShopService; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -21,6 +23,7 @@ import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; @RestController @RequestMapping("/member") @@ -37,6 +40,13 @@ @Resource private BirthdayCardService birthdayCardService; @Resource private RemoteShopService remoteShopService; /** * @description: getMember @@ -194,9 +204,11 @@ * @date 2023/6/18 16:45 */ @PostMapping("/boardMemberTotal") public R<MgtBulletinBoardVo> boardMemberTotal() public R<MgtBulletinBoardVo> boardMemberTotal(@RequestBody BoardMemberTotalDto boardMemberTotalDto) { MgtBulletinBoardVo bulletinBoardVo = memberService.boardMemberTotal(); List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto); List<Long> shopIds = shopList.stream().map(Shop::getShopId).collect(Collectors.toList()); MgtBulletinBoardVo bulletinBoardVo = memberService.boardMemberTotal(shopIds); return R.ok(bulletinBoardVo); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java
@@ -121,7 +121,7 @@ * @author jqs34 * @date 2023/6/18 16:46 */ Integer memberTotal(); Integer memberTotal(@Param("shopIds") List<Long> shopIds); /** * @description 今日新增用户数 @@ -130,7 +130,7 @@ * @author jqs34 * @date 2023/6/18 16:47 */ Integer memberToday(); Integer memberToday(@Param("shopIds") List<Long> shopIds); /** ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -115,6 +115,12 @@ @Resource private RemoteOrderService remoteOrderService; @Resource private RemoteUserService remoteUserService; /** * @description: TODO * @author jqs34 @@ -1275,10 +1281,10 @@ * @date 2023/6/18 16:45 */ @Override public MgtBulletinBoardVo boardMemberTotal() { public MgtBulletinBoardVo boardMemberTotal(List<Long> shopIds) { MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo(); mgtBulletinBoardVo.setMemberTotal(memberMapper.memberTotal()); mgtBulletinBoardVo.setMemberToday(memberMapper.memberToday()); mgtBulletinBoardVo.setMemberTotal(memberMapper.memberTotal(shopIds)); mgtBulletinBoardVo.setMemberToday(memberMapper.memberToday(shopIds)); return mgtBulletinBoardVo; } @@ -1470,13 +1476,14 @@ plTotalMemberTotalVo.setShopMemberRankList(Lists.newArrayList()); Date nowDay = DateUtils.getNowDate(); //如果区域代码不为null获取对应的商户id List<Long> list = new ArrayList<>(); if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) { MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); mgtShopIdByCodeDto.setShopProvinceCode(mgtBasePlatformDto.getShopProvinceCode()); mgtShopIdByCodeDto.setShopCityCode(mgtBasePlatformDto.getShopCityCode()); mgtShopIdByCodeDto.setShopAreaCode(mgtBasePlatformDto.getShopAreaCode()); MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); List<Long> list = new ArrayList<>(); if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) { list = Arrays.stream(mgtShopIdByCodeVo.getShopIds().split(",")) .map(Long::valueOf) @@ -1484,8 +1491,17 @@ }else{ return plTotalMemberTotalVo; } mgtBasePlatformDto.setShopIdList(list); } //数据权限 List<Long> userId = remoteUserService.getScopeOfAuthorityUserId(); BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto(); boardMemberTotalDto.setUserIds(userId); List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto); List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList()); list.addAll(collect); mgtBasePlatformDto.setShopIdList(list); //获取基础统计 MgtPlTotalMemberTotalVo plTotalMemberTotalByDayVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto); plTotalMemberTotalVo.setMemberTotal(plTotalMemberTotalByDayVo.getMemberTotal()); ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
@@ -220,7 +220,7 @@ * @author jqs34 * @date 2023/6/18 16:47 */ MgtBulletinBoardVo boardMemberTotal(); MgtBulletinBoardVo boardMemberTotal(List<Long> shopIds); /** * @description 会员人数统计 ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml
@@ -17,9 +17,9 @@ server-addr: 47.109.78.184:5000 # server-addr: 127.0.0.1:8848 #pro namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test # namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd #dev # namespace: 6857cbd9-6088-4fe8-bb58-2b516d99876f config: @@ -27,9 +27,9 @@ server-addr: 47.109.78.184:5000 # server-addr: 127.0.0.1:8848 #pro namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test # namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd #dev # namespace: 6857cbd9-6088-4fe8-bb58-2b516d99876f # 配置文件格式 @@ -37,4 +37,7 @@ # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} feign: compression: request: min-request-size: 20480 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -366,10 +366,22 @@ <select id="memberTotal" resultType="java.lang.Integer"> SELECT COUNT(user_id) FROM t_member WHERE del_flag = 0 <if test="null != shopIds and shopIds.size() > 0"> and binding_flag = 1 and relation_shop_id in <foreach collection="shopIds" separator="," index="index" item="item" open="(" close=")"> #{item} </foreach> </if> </select> <select id="memberToday" resultType="java.lang.Integer"> SELECT COUNT(user_id) FROM t_member WHERE del_flag = 0 AND Date(create_time) = CURDATE() <if test="null != shopIds and shopIds.size() > 0"> and binding_flag = 1 and relation_shop_id in <foreach collection="shopIds" separator="," index="index" item="item" open="(" close=")"> #{item} </foreach> </if> </select> <select id="getTotalMemberTotal" resultType="com.ruoyi.member.domain.vo.MgtTotalMemberTotalVo"> @@ -569,11 +581,11 @@ <select id="getPlTotalMemberTotal" resultType="com.ruoyi.system.api.domain.vo.MgtPlTotalMemberTotalVo"> SELECT COUNT(*) AS memberTotal, 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 6 DAY) AND DATE_SUB(CURDATE(), INTERVAL -1 DAY) THEN 1 END) AS memberSeven FROM t_member WHERE del_flag = 0 AND binding_flag = 1 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 6 DAY) AND DATE_SUB(CURDATE(), INTERVAL -1 DAY) THEN 1 END) AS memberSeven FROM t_member WHERE del_flag = 0 <if test="param.shopIdList != null and param.shopIdList.size() > 0"> AND relation_shop_id IN AND binding_flag = 1 AND relation_shop_id IN <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> #{item} </foreach> ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java
@@ -6,6 +6,7 @@ import com.ruoyi.order.service.order.ConsumerGoodsService; import com.ruoyi.order.service.order.OrderService; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.dto.BoardMemberTotalDto; import com.ruoyi.system.api.domain.dto.MerBaseDto; import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; import com.ruoyi.system.api.domain.vo.*; @@ -55,9 +56,9 @@ * @date 2023/6/18 17:30 */ @PostMapping("/boardOrderTotal") public R<MgtBulletinBoardVo> boardOrderTotal(){ public R<MgtBulletinBoardVo> boardOrderTotal(@RequestBody BoardMemberTotalDto boardMemberTotalDto){ MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo(); MgtBulletinBoardVo mgtBulletinBoardVoOrder = orderService.boardOrderTotal(); MgtBulletinBoardVo mgtBulletinBoardVoOrder = orderService.boardOrderTotal(boardMemberTotalDto.getUserIds()); mgtBulletinBoardVo.setSalesTotal(mgtBulletinBoardVoOrder.getSalesTotal()); mgtBulletinBoardVo.setUnUseOrderTotal(mgtBulletinBoardVoOrder.getUnUseOrderTotal()); mgtBulletinBoardVo.setActivityOrderTotal(mgtBulletinBoardVoOrder.getActivityOrderTotal()); ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
@@ -118,13 +118,6 @@ Long userId = SecurityUtils.getUserId(); mgtShopOrderPageDto.setUserId(userId); Page<MgtActivityOrderPageVo> page = new Page<>(); // if(mgtShopOrderPageDto.getPageSize() > 5000){ // page.setSize(5000); // page.setCurrent(1); // }else{ // page.setSize(mgtShopOrderPageDto.getPageSize()); // page.setCurrent(mgtShopOrderPageDto.getPageNum()); // } page.setSize(Integer.MAX_VALUE); page.setCurrent(1); List<MgtActivityOrderPageVo> mgtActivityOrderPageVos = orderService.pageMgtActivityOrder(page,mgtShopOrderPageDto); ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
@@ -129,12 +129,5 @@ return R.ok(totalActivityTotal); } /*@RequestMapping(value = "/getPlTotalActivityAgeRank", method = RequestMethod.POST) @ApiOperation(value = "获取平台商户活动年龄分布") public R<MgtPlTotalActivityTotalVo> getPlTotalActivityAgeRank(@RequestBody MgtPlActivityAgeDto mgtPlActivityAgeDto) { Long userId = SecurityUtils.getUserId(); mgtPlActivityAgeDto.setUserId(userId); MgtPlTotalActivityTotalVo plTotalActivityTotalVo = orderService.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); return R.ok(plTotalActivityTotalVo); }*/ } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -141,7 +141,7 @@ * @author jqs34 * @date 2023/6/18 17:20 */ MgtBulletinBoardVo boardOrderTotal(); MgtBulletinBoardVo boardOrderTotal(@Param("shopIds") List<Long> shopIds); /** * @description 活动人数统计 @@ -150,7 +150,7 @@ * @param * @return Integer */ Integer activityUserTotal(); Integer activityUserTotal(@Param("shopIds") List<Long> shopIds); /** * @description getTotalOrderTotalOrderFrom ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -3029,6 +3029,24 @@ mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); } } //数据权限 List<Long> userId = remoteUserService.getScopeOfAuthorityUserId(); BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto(); boardMemberTotalDto.setUserIds(userId); List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto); if (!shops.isEmpty()) { List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList()); String join = collect.stream().map(Object::toString).collect(Collectors.joining(",")); String shopIds = mgtShopOrderPageDto.getShopIds(); if(StringUtils.isNotEmpty(shopIds)){ shopIds = shopIds + "," + join; }else{ shopIds = join; } mgtShopOrderPageDto.setShopIds(shopIds); } // 从数据库中获取活动订单列表 List<MgtActivityOrderPageVo> activityOrderPageVoList = orderMapper.pageMgtActivityOrder(page, mgtShopOrderPageDto); // 如果列表不为空 @@ -3108,6 +3126,22 @@ mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); } } //数据权限 List<Long> userId = remoteUserService.getScopeOfAuthorityUserId(); BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto(); boardMemberTotalDto.setUserIds(userId); List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto); if (!shops.isEmpty()) { List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList()); String join = collect.stream().map(Object::toString).collect(Collectors.joining(",")); String shopIds = mgtShopOrderPageDto.getShopIds(); if(StringUtils.isNotEmpty(shopIds)){ shopIds = shopIds + "," + join; }else{ shopIds = join; } mgtShopOrderPageDto.setShopIds(shopIds); } MgtOrderTotal mgtOrderTotal = new MgtOrderTotal(); MgtOrderTotal mgtOrderTotalFirst = orderMapper.totalOrderFirst(mgtShopOrderPageDto); MgtOrderTotal mgtOrderTotalSecond = orderMapper.totalOrderSecond(mgtShopOrderPageDto); @@ -3154,6 +3188,22 @@ if (StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())) { mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); } } //数据权限 List<Long> userId = remoteUserService.getScopeOfAuthorityUserId(); BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto(); boardMemberTotalDto.setUserIds(userId); List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto); if (!shops.isEmpty()) { List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList()); String join = collect.stream().map(Object::toString).collect(Collectors.joining(",")); String shopIds = mgtShopOrderPageDto.getShopIds(); if(StringUtils.isNotEmpty(shopIds)){ shopIds = shopIds + "," + join; }else{ shopIds = join; } mgtShopOrderPageDto.setShopIds(shopIds); } List<MgtShopOrderPageVo> shopOrderPageVoList = orderMapper.pageMgtShopOrder(page, mgtShopOrderPageDto); // 如果列表不为空 @@ -3315,9 +3365,13 @@ * @date 2023/6/18 17:20 */ @Override public MgtBulletinBoardVo boardOrderTotal() { MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal(); Integer activityUserTotal = orderMapper.activityUserTotal(); public MgtBulletinBoardVo boardOrderTotal(List<Long> userIds) { BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto(); boardMemberTotalDto.setUserIds(userIds); List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto); List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList()); MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal(collect); Integer activityUserTotal = orderMapper.activityUserTotal(collect); mgtBulletinBoardVo.setActivityUserTotal(activityUserTotal); return mgtBulletinBoardVo; } @@ -3824,6 +3878,19 @@ mgtBasePlatformDto.setUserIdList(userIdList); } } //数据权限 List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId(); if(null != userIds){ List<Long> userIdList = mgtBasePlatformDto.getUserIdList(); if(null != userIdList){ userIdList.addAll(userIds); }else{ userIdList = userIds; } mgtBasePlatformDto.setUserIdList(userIdList); } List<Long> shopIdList = new ArrayList<>(); if(mgtBasePlatformDto.getShopId()!=null){ shopIdList.add(mgtBasePlatformDto.getShopId()); @@ -3925,6 +3992,17 @@ } } } //数据权限 List<Long> userIdList = mgtBasePlatformDto.getUserIdList(); List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId(); if(null != userIdList){ userIdList.addAll(userIds); }else{ userIdList = userIds; } mgtBasePlatformDto.setUserIdList(userIdList); MgtTotalOrderTotalVo mgtTotalOrderTotalVo = new MgtTotalOrderTotalVo(); mgtTotalOrderTotalVo.setOrderTotal(0); mgtTotalOrderTotalVo.setOnlineTotal(0); @@ -4153,6 +4231,7 @@ if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom()==2){ return totalActivityTotalVo; } List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) { if(shopIdList==null||shopIdList.isEmpty()){ @@ -4163,7 +4242,20 @@ shopIdList = new ArrayList<>(); shopIdList.add(mgtBasePlatformDto.getShopId()); } //数据权限 List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId(); if(null != userIds){ BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto(); boardMemberTotalDto.setUserIds(userIds); List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto); List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList()); if(null != shopIdList){ shopIdList.addAll(collect); }else{ shopIdList = collect; } mgtBasePlatformDto.setShopIdList(shopIdList); } //获取基础统计 MgtPlTotalActivityTotalVo mgtTotalActivityTotalVo = orderMapper.getPlTotalActivityTotal(mgtBasePlatformDto); totalActivityTotalVo.setOrderTotal(mgtTotalActivityTotalVo.getOrderTotal()); @@ -4340,52 +4432,6 @@ totalActivityTotalVo.setOrderTotalValue(orderTotalValue); totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue); } //参与人数 2023-09-06 另开接口 /*List<MgtMapIntTotalVo> joinList = orderMapper.getMgtActivityMemberTotal(mgtBasePlatformDto); // 将查询结果转为Map Map<String, Integer> mgtMapIntTotalVoMap = new HashMap<>(); if (joinList != null && !joinList.isEmpty()) { mgtMapIntTotalVoMap = joinList.stream() .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue)); } // 获取日期范围 List<String> dateList = getDateRange(mgtBasePlatformDto.getStartDate(), mgtBasePlatformDto.getEndDate()); int size = dateList.size(); // 创建日期和成员总数的数组 String[] joinMemberTotalKey = new String[size]; Integer[] joinMemberTotalValue = new Integer[size]; // 遍历日期列表,设置日期和成员总数的数组 String str; Integer value; for (int i = 0; i < size; i++) { str = dateList.get(i); joinMemberTotalKey[i] = str; value = mgtMapIntTotalVoMap.get(str); joinMemberTotalValue[i] = (value != null) ? value : 0; } totalActivityTotalVo.setJoinMemberTotalKey(joinMemberTotalKey); totalActivityTotalVo.setJoinMemberTotalValue(joinMemberTotalValue); //获客人数 List<MgtMapIntTotalVo> getList = orderMapper.getMgtActivityGetMemberTotal(mgtBasePlatformDto); // 将查询结果转为Map Map<String, Integer> getMemberMap = new HashMap<>(); if (getList != null && !getList.isEmpty()) { getMemberMap = getList.stream() .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue)); } // 创建日期和成员总数的数组 String[] getMemberTotalKey = new String[size]; Integer[] getMemberTotalValue = new Integer[size]; // 遍历日期列表,设置日期和成员总数的数组 for (int i = 0; i < size; i++) { str = dateList.get(i); getMemberTotalKey[i] = str; value = getMemberMap.get(str); getMemberTotalValue[i] = (value != null) ? value : 0; } totalActivityTotalVo.setGetMemberTotalKey(getMemberTotalKey); totalActivityTotalVo.setGetMemberTotalValue(getMemberTotalValue);*/ return totalActivityTotalVo; } @@ -4401,24 +4447,6 @@ if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom()==2){ return totalActivityTotalVo; } /*if(mgtBasePlatformDto.getActivityType()!=null&&mgtBasePlatformDto.getActivityType()!=1){ return new MgtPlTotalActivityTotalVo(); }*/ //获取需要关联的用户id集合 /*if (mgtBasePlatformDto.getDeptId() != null) { List<Long> userIdList = new ArrayList<>(); if (mgtBasePlatformDto.getUserId() != null) { userIdList.add(mgtBasePlatformDto.getUserId()); } else { MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept(); mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId()); mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData(); userIdList = mgtUserIdByDept.getUserIdList(); } if (!userIdList.isEmpty()) { mgtBasePlatformDto.setUserIdList(userIdList); } }*/ List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); log.info("shopIdList1-----"+shopIdList.toString()); @@ -4433,6 +4461,17 @@ if(mgtBasePlatformDto.getShopId()!=null){ shopIdList = new ArrayList<>(); shopIdList.add(mgtBasePlatformDto.getShopId()); } List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId(); BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto(); boardMemberTotalDto.setUserIds(userIds); List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto); List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList()); if(null != shopIdList){ shopIdList.addAll(collect); }else{ shopIdList = collect; } mgtBasePlatformDto.setShopIdList(shopIdList); if(mgtBasePlatformDto.getAgeType()!=null){ @@ -4486,24 +4525,6 @@ if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom()==2){ return totalActivityTotalVo; } /*if(mgtBasePlatformDto.getActivityType()!=null&&mgtBasePlatformDto.getActivityType()!=1){ return new MgtPlTotalActivityTotalVo(); }*/ //获取需要关联的用户id集合 /*if (mgtBasePlatformDto.getDeptId() != null) { List<Long> userIdList = new ArrayList<>(); if (mgtBasePlatformDto.getUserId() != null) { userIdList.add(mgtBasePlatformDto.getUserId()); } else { MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept(); mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId()); mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData(); userIdList = mgtUserIdByDept.getUserIdList(); } if (!userIdList.isEmpty()) { mgtBasePlatformDto.setUserIdList(userIdList); } }*/ List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) { if(shopIdList==null||shopIdList.isEmpty()){ @@ -4514,6 +4535,17 @@ shopIdList = new ArrayList<>(); shopIdList.add(mgtBasePlatformDto.getShopId()); } //数据权限 List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId(); BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto(); boardMemberTotalDto.setUserIds(userIds); List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto); List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList()); if(null != shopIdList){ shopIdList.addAll(collect); }else{ shopIdList = collect; } mgtBasePlatformDto.setShopIdList(shopIdList); if(mgtBasePlatformDto.getAgeType()!=null){ List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBasePlatformDto.getAgeType()).getData(); ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -235,7 +235,7 @@ * @author jqs34 * @date 2023/6/18 17:20 */ MgtBulletinBoardVo boardOrderTotal(); MgtBulletinBoardVo boardOrderTotal(List<Long> userIds); /** * @description 获取商户订单统计 ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml
@@ -17,9 +17,9 @@ server-addr: 47.109.78.184:5000 # server-addr: 127.0.0.1:8848 #pro namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test # namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd #dev # namespace: 6857cbd9-6088-4fe8-bb58-2b516d99876f config: @@ -27,9 +27,9 @@ server-addr: 47.109.78.184:5000 # server-addr: 127.0.0.1:8848 #pro namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test # namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd #dev # namespace: 6857cbd9-6088-4fe8-bb58-2b516d99876f # 配置文件格式 @@ -53,3 +53,7 @@ callbackPath: https://wxapp.hhhrt.cn feign: compression: request: min-request-size: 20480 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -527,7 +527,7 @@ toc.create_time createTime, tog.goods_price activityPrice, toc.pay_money payMoney, CASE WHEN toc.unbinding_flag = 0 THEN toc.shop_id WHEN toc.unbinding_flag = 1 AND toc.order_from = 1 THEN toc.shop_id WHEN toc.order_status = 3 THEN toc.shop_id ELSE NULL END shopId, CASE WHEN toc.order_status = 3 THEN toc.shop_id ELSE NULL END shopId, toc.use_time verifyTime FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id @@ -542,7 +542,7 @@ AND toc.shop_id = #{param.shopId} AND (toc.unbinding_flag = 0 OR (toc.unbinding_flag = 1 AND toc.order_from = 1) OR (toc.unbinding_flag = 1 AND toc.order_from = 2 AND toc.order_status = 3)) </if> <if test="param.shopIds != null and param.shopIds != ''"> AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) > 0 and toc.order_status = 3 AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) > 0 </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR FIND_IN_SET(toc.user_id, #{param.userIds}) > 0) @@ -559,9 +559,9 @@ <select id="totalOrderFirst" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal"> SELECT COUNT(temp.order_id) orderTotal, IFNULL(SUM(temp.change_receivable_money),0) orderMoneyTotal IFNULL(SUM(CASE WHEN temp.change_receivable_money = 0 THEN temp.receivable_money ELSE temp.change_receivable_money END),0) orderMoneyTotal FROM (SELECT toc.order_id,toc.change_receivable_money,toc.pay_money (SELECT toc.order_id,toc.change_receivable_money,toc.receivable_money,toc.pay_money FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND (toc.order_from = 1 OR toc.order_from = 3) @@ -578,7 +578,7 @@ AND toc.shop_id = #{param.shopId} AND (toc.unbinding_flag = 0 OR (toc.unbinding_flag = 1 AND toc.order_from = 1) OR (toc.unbinding_flag = 1 AND toc.order_from = 2 AND toc.order_status = 3)) </if> <if test="param.shopIds != null and param.shopIds != ''"> AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) > 0 and toc.order_status = 3 AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) > 0 </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR FIND_IN_SET(toc.user_id, #{param.userIds}) > 0) @@ -595,11 +595,11 @@ <select id="totalOrderSecond" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal"> SELECT COUNT(temp.order_id) shopOrderTotal, IFNULL(SUM(temp.change_receivable_money),0) shopOrderMoneyTotal, IFNULL(SUM(CASE WHEN temp.change_receivable_money = 0 THEN temp.receivable_money ELSE temp.change_receivable_money END),0) shopOrderMoneyTotal, IFNULL(SUM(temp.pay_money),0) shopPayMoneyTotal, IFNULL(SUM(CASE WHEN temp.change_receivable_money > temp.pay_money THEN temp.change_receivable_money - temp.pay_money ELSE 0 END),0) shopUnPayMoneyTotal IFNULL(SUM(CASE WHEN (CASE WHEN temp.change_receivable_money = 0 THEN temp.receivable_money ELSE temp.change_receivable_money END) > temp.pay_money THEN temp.change_receivable_money - temp.pay_money ELSE 0 END),0) shopUnPayMoneyTotal FROM (SELECT toc.order_id,toc.change_receivable_money,toc.pay_money (SELECT toc.order_id,toc.change_receivable_money,toc.receivable_money,toc.pay_money FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND (toc.order_from = 1 OR toc.order_from = 3) @@ -616,7 +616,7 @@ AND toc.shop_id = #{param.shopId} AND (toc.unbinding_flag = 0 OR (toc.unbinding_flag = 1 AND toc.order_from = 1) OR (toc.unbinding_flag = 1 AND toc.order_from = 2 AND toc.order_status = 3)) </if> <if test="param.shopIds != null and param.shopIds != ''"> AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) > 0 and toc.order_status = 3 AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) > 0 </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR FIND_IN_SET(toc.user_id, #{param.userIds}) > 0) @@ -654,7 +654,7 @@ AND toc.shop_id = #{param.shopId} AND (toc.unbinding_flag = 0 OR (toc.unbinding_flag = 1 AND toc.order_from = 1) OR (toc.unbinding_flag = 1 AND toc.order_from = 2 AND toc.order_status = 3)) </if> <if test="param.shopIds != null and param.shopIds != ''"> AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) > 0 and toc.order_status = 3 AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) > 0 </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR FIND_IN_SET(toc.user_id, #{param.userIds}) > 0) @@ -734,7 +734,7 @@ AND toc.shop_id = #{param.shopId} AND (toc.unbinding_flag = 0 OR (toc.unbinding_flag = 1 AND toc.order_from = 1) OR (toc.unbinding_flag = 1 AND toc.order_from = 2 AND toc.order_status = 3)) </if> <if test="param.shopIds != null and param.shopIds != ''"> AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) > 0 and toc.order_status = 3 AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) > 0 </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR FIND_IN_SET(toc.user_id, #{param.userIds}) > 0) @@ -756,6 +756,12 @@ IFNULL(SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END),0) activityOrderTotal FROM t_order WHERE del_flag = 0 AND order_status IN (2,3) <if test="null != shopIds and shopIds.size() > 0"> and order_status = 3 and shop_id in <foreach collection="shopIds" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </if> </select> <select id="activityUserTotal" resultType="java.lang.Integer"> @@ -763,6 +769,12 @@ COUNT(DISTINCT user_id) FROM t_order WHERE del_flag = 0 AND order_from = 2 AND order_status IN (2,3) <if test="null != shopIds and shopIds.size() > 0"> AND order_status = 3 and shop_id in <foreach collection="shopIds" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </if> </select> <select id="getTotalOrderTotalOrderFrom" resultType="com.ruoyi.order.domain.vo.MgtTotalOrderTotalVo"> @@ -1304,12 +1316,12 @@ COUNT(CASE WHEN order_status = 3 THEN order_id ELSE NULL END) orderTotal, 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) orderMoney, COUNT(DISTINCT user_id) orderJoinPerson FROM t_order WHERE del_flag = 0 AND order_from = 2 AND order_status = 3 FROM t_order WHERE del_flag = 0 AND order_from = 2 <if test="param.shopId != null and param.shopId != ''"> AND shop_id = #{param.shopId} AND order_status = 3 AND shop_id = #{param.shopId} </if> <if test="param.shopIdList != null and param.shopIdList.size() > 0"> AND shop_id IN AND order_status = 3 AND shop_id IN <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> #{item} </foreach> @@ -1333,15 +1345,15 @@ COUNT(DISTINCT CASE WHEN tog.goods_type = 2 THEN toc.user_id ELSE NULL END) servicePerson FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND toc.order_from = 2 AND toc.order_status = 3 AND toc.new_member_flag = 1 WHERE toc.del_flag = 0 AND toc.order_from = 2 AND toc.new_member_flag = 1 <if test="param.activityId!=null and param.activityId!=''"> AND toc.activity_id = #{param.activityId} </if> <if test="param.shopId != null and param.shopId != ''"> AND toc.shop_id = #{param.shopId} AND toc.order_status = 3 AND toc.shop_id = #{param.shopId} </if> <if test="param.shopIdList != null and param.shopIdList.size() > 0"> AND toc.shop_id IN AND toc.order_status = 3 AND toc.shop_id IN <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> #{item} </foreach> @@ -1379,15 +1391,15 @@ COUNT(DISTINCT toc.user_id) AS mapValueThird FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND toc.order_from = 2 AND order_status = 3 WHERE toc.del_flag = 0 AND toc.order_from = 2 <if test="param.activityId!=null and param.activityId!=''"> AND toc.activity_id = #{param.activityId} </if> <if test="param.shopId != null and param.shopId != ''"> AND toc.shop_id = #{param.shopId} AND order_status = 3 AND toc.shop_id = #{param.shopId} </if> <if test="param.shopIdList != null and param.shopIdList.size() > 0"> AND toc.shop_id IN AND order_status = 3 AND toc.shop_id IN <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> #{item} </foreach> @@ -1552,7 +1564,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 = 2 AND order_from = 1 THEN 1 ELSE 0 END),0) unHandleOrder, 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) @@ -1733,8 +1745,8 @@ COUNT(toc.order_id) orderTotal, IFNULL(SUM(CASE toc.pay_type WHEN 1 THEN toc.receivable_money WHEN 2 THEN order_money-coupon_money-online_pay_money END),0) receivableMoney, IFNULL(SUM(toc.change_receivable_money),0) relReceiveMoney, IFNULL(SUM(CASE toc.pay_type WHEN 1 THEN toc.online_pay_money WHEN 2 THEN IFNULL(toc.offline_pay_money,0) END),0) relPayMoney, IFNULL(SUM(toc.change_receivable_money-IFNULL(CASE toc.pay_type WHEN 1 THEN toc.online_pay_money WHEN 2 THEN IFNULL(toc.offline_pay_money,0) END,0)),0) unpaidMoney, IFNULL(SUM(IF(toc.order_from = 3, toc.offline_pay_money, IF(toc.order_from != 3 AND toc.pay_type = 1, toc.online_pay_money, IFNULL(toc.offline_pay_money,0)))),0) relPayMoney, IFNULL(SUM(toc.change_receivable_money-IFNULL(IF(toc.order_from = 3, toc.offline_pay_money, IF(toc.order_from != 3 AND toc.pay_type = 1, toc.online_pay_money, IFNULL(toc.offline_pay_money,0))),0)),0) unpaidMoney, IFNULL(SUM(CASE toc.pay_type WHEN 2 THEN toc.online_pay_money ELSE 0 END),0) receivableDeposit FROM t_order toc WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} and if(toc.order_from = 1, 1 = 1, toc.order_status = 3)<!--临时增加过滤--> ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java
@@ -249,11 +249,11 @@ * @date 2023/6/18 16:45 */ @PostMapping("/boardShopTotal") public R<MgtBulletinBoardVo> boardShopTotal() public R<MgtBulletinBoardVo> boardShopTotal(@RequestBody BoardMemberTotalDto boardMemberTotalDto) { MgtBulletinBoardVo bulletinBoardVo = new MgtBulletinBoardVo(); MgtBulletinBoardVo bulletinBoardVoShop = shopService.boardShopTotal(); MgtBulletinBoardVo bulletinBoardVoTask = shopTaskService.boardTaskTotal(); MgtBulletinBoardVo bulletinBoardVoShop = shopService.boardShopTotal(boardMemberTotalDto.getUserIds()); MgtBulletinBoardVo bulletinBoardVoTask = shopTaskService.boardTaskTotal(boardMemberTotalDto.getUserIds()); bulletinBoardVo.setShopTotal(bulletinBoardVoShop.getShopTotal()); bulletinBoardVo.setDealerTotal(bulletinBoardVoShop.getDealerTotal()); bulletinBoardVo.setAgencyTotal(bulletinBoardVoShop.getAgencyTotal()); @@ -428,4 +428,14 @@ List<Shop> shopIdList = shopService.listByIds(ids); return R.ok(shopIdList); } /** * 根据管理员id获取门店 * @return */ @PostMapping("/getShopBySysUserIds") public List<Shop> getShopBySysUserIds(@RequestBody BoardMemberTotalDto boardMemberTotalDto){ return shopService.getShopBySysUserIds(boardMemberTotalDto.getUserIds()); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java
@@ -153,7 +153,7 @@ * @author jqs34 * @date 2023/6/18 17:01 */ MgtBulletinBoardVo shopTotal(); MgtBulletinBoardVo shopTotal(@Param("userIds") List<Long> userIds); /** * @description 获取平台商户统计 @@ -161,7 +161,7 @@ * @date 2023/6/21 16:25 * @return MgtPlTotalShopTotalVo */ MgtPlTotalShopTotalVo getPlTotalShopTotal(); MgtPlTotalShopTotalVo getPlTotalShopTotal(@Param("userIds") List<Long> userIds); /** * @description 获取统计关联shopId ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -1106,8 +1106,8 @@ * @date 2023/6/18 16:59 */ @Override public MgtBulletinBoardVo boardShopTotal(){ MgtBulletinBoardVo mgtBulletinBoardVoShop = shopMapper.shopTotal(); public MgtBulletinBoardVo boardShopTotal(List<Long> userIds){ MgtBulletinBoardVo mgtBulletinBoardVoShop = shopMapper.shopTotal(userIds); return mgtBulletinBoardVoShop; } @@ -1257,8 +1257,20 @@ mgtBasePlatformDto.setUserIdList(userIdList); } } //数据权限 List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId(); if(null != userIds){ List<Long> userIdList = mgtBasePlatformDto.getUserIdList(); if(null != userIdList){ userIdList.addAll(userIds); }else{ userIdList = userIds; } mgtBasePlatformDto.setUserIdList(userIdList); } //获取基础统计 MgtPlTotalShopTotalVo plTotalShopTotalVo = shopMapper.getPlTotalShopTotal(); MgtPlTotalShopTotalVo plTotalShopTotalVo = shopMapper.getPlTotalShopTotal(userIds); plTotalShopTotalVo.setSignTotal(0); List<Long> shopIdList = shopMapper.listShopIdByTotal(mgtBasePlatformDto); if (!shopIdList.isEmpty()) { @@ -1917,4 +1929,23 @@ public List<Shop> listShopByCityCode(List<String> cityCodes){ return shopMapper.listShopByCityCode(cityCodes); } /** * 根据员工id获取对应的门店 * @param userIds * @return */ @Override public List<Shop> getShopBySysUserIds(List<Long> userIds) { if(null == userIds && userIds.size() == 0){ return new ArrayList<>(); } QueryWrapper<Shop> queryWrapper = new QueryWrapper<Shop>().eq("del_flag", 0).ne("shop_status", -1); if(null != userIds && userIds.size() > 0){ queryWrapper.in("belong_user_id", userIds); } List<Shop> list = this.list(queryWrapper); return list; } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java
@@ -1,6 +1,7 @@ package com.ruoyi.shop.service.impl.task; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.utils.DateUtils; @@ -12,13 +13,16 @@ import com.ruoyi.shop.domain.pojo.task.TaskFile; import com.ruoyi.shop.domain.vo.StaffShopTaskPageVo; import com.ruoyi.shop.mapper.task.ShopTaskMapper; import com.ruoyi.shop.service.shop.ShopService; import com.ruoyi.shop.service.task.ShopTaskRecordService; import com.ruoyi.shop.service.task.ShopTaskService; import com.ruoyi.shop.service.task.TaskFileService; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.domain.poji.sys.SysStaff; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; import com.ruoyi.system.api.service.RemoteConfigService; import com.ruoyi.system.api.service.RemoteUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -51,6 +55,12 @@ @Resource private RemoteConfigService remoteConfigService; @Autowired private ShopService shopService; /** * 平台跟进商户 @@ -127,12 +137,18 @@ * @date 2023/6/18 17:08 */ @Override public MgtBulletinBoardVo boardTaskTotal(){ public MgtBulletinBoardVo boardTaskTotal(List<Long> userIds){ MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo(); LambdaQueryWrapper<ShopTask> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ShopTask::getDelFlag,0); queryWrapper.eq(ShopTask::getTaskStatus,1); queryWrapper.eq(ShopTask::getTaskDate,DateUtils.getDate()); if(null != userIds && userIds.size() > 0){ List<Shop> list = shopService.list(new QueryWrapper<Shop>().eq("del_flag", 0) .in("belong_user_id", userIds)); List<Long> collect = list.stream().map(Shop::getShopId).collect(Collectors.toList()); queryWrapper.in(ShopTask::getShopId, collect); } Integer followShopToday = this.count(queryWrapper); mgtBulletinBoardVo.setFollowShopToday(followShopToday); return mgtBulletinBoardVo; ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
@@ -14,6 +14,7 @@ import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.domain.vo.*; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -210,7 +211,7 @@ * @author jqs34 * @date 2023/6/18 17:01 */ MgtBulletinBoardVo boardShopTotal(); MgtBulletinBoardVo boardShopTotal(List<Long> userIds); /** * @description 商户进件 @@ -452,4 +453,12 @@ * @return List<Long> */ List<Shop> listShopByCityCode(List<String> cityCodes); /** * 根据员工id获取对应的门店 * @param userIds * @return */ List<Shop> getShopBySysUserIds(List<Long> userIds); } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskService.java
@@ -35,7 +35,7 @@ * @author jqs34 * @date 2023/6/18 17:09 */ MgtBulletinBoardVo boardTaskTotal(); MgtBulletinBoardVo boardTaskTotal(List<Long> userIds); /** * @description 员工端获取进行中商户任务数 ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml
@@ -17,9 +17,9 @@ server-addr: 47.109.78.184:5000 # server-addr: 127.0.0.1:8848 #pro namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test # namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd #dev # namespace: 6857cbd9-6088-4fe8-bb58-2b516d99876f config: @@ -27,9 +27,9 @@ server-addr: 47.109.78.184:5000 # server-addr: 127.0.0.1:8848 #pro namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test # namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd #dev # namespace: 6857cbd9-6088-4fe8-bb58-2b516d99876f # 配置文件格式 @@ -37,7 +37,11 @@ # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} --- spring: main: allow-circular-references: true wx: pay: @@ -53,3 +57,9 @@ callback_path: https://wxapp.hhhrt.cn #callback_path: http://8.137.105.173 feign: compression: request: min-request-size: 20480 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -667,6 +667,12 @@ SUM(CASE WHEN shop_type = 2 THEN 1 ELSE 0 END) AS agencyTotal FROM t_shop WHERE del_flag = 0 <if test="null != userIds and userIds.size() > 0"> and belong_user_id in <foreach collection="userIds" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </if> </select> <select id="getPlTotalShopTotal" resultType="com.ruoyi.shop.domain.vo.MgtPlTotalShopTotalVo"> @@ -677,6 +683,12 @@ SUM(CASE WHEN cooperative_flag = 0 THEN 1 ELSE 0 END) AS terminateTotal FROM t_shop WHERE del_flag = 0 <if test="null != userIds and userIds.size() > 0"> and belong_user_id in <foreach collection="userIds" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach> </if> </select> <select id="listShopIdByTotal" resultType="java.lang.Long"> ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java
@@ -474,4 +474,14 @@ qwH5LoginVo.setSysUser(sysUser); return R.ok(qwH5LoginVo); } /** * 获取当前用户权限范围内的员工id * @return */ @PostMapping("/getScopeOfAuthorityUserId") public List<Long> getScopeOfAuthorityUserId(){ return userService.getScopeOfAuthorityUserId(); } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/RecommendCooperationMapper.java
@@ -59,6 +59,6 @@ * @author jqs34 * @date 2023/6/18 16:54 */ MgtBulletinBoardVo customTotal(); MgtBulletinBoardVo customTotal(@Param("userIds") List<Long> userIds); } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/RecommendCooperationService.java
@@ -63,7 +63,7 @@ * @author jqs34 * @date 2023/6/18 16:47 */ MgtBulletinBoardVo boardMemberTotal(); MgtBulletinBoardVo boardMemberTotal(List<Long> userIds); ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java
@@ -1,13 +1,17 @@ package com.ruoyi.system.service.impl.config; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.constant.ConfigEnum; import com.ruoyi.system.api.constant.SecurityConstant; import com.ruoyi.system.api.domain.dto.BoardMemberTotalDto; import com.ruoyi.system.api.domain.poji.config.Activeness; import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.domain.vo.AppOtherConfigGetVo; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; import com.ruoyi.system.api.service.RemoteActivityService; @@ -22,6 +26,8 @@ import com.ruoyi.system.domain.vo.MgtOperLogPageVo; import com.ruoyi.system.mapper.config.CustomConfigMapper; import com.ruoyi.system.service.config.*; import com.ruoyi.system.service.sys.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -69,6 +75,12 @@ @Resource private RedisService redisService; @Autowired private ISysUserService sysUserService; /** * @param key @@ -663,25 +675,29 @@ */ @Override public MgtBulletinBoardVo getBulletinBoard(){ List<Long> userIds = sysUserService.getScopeOfAuthorityUserId(); // 创建 MgtBulletinBoardVo 对象 MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo(); // 获取会员信息 MgtBulletinBoardVo mgtBulletinBoardVoMember = remoteMemberService.boardMemberTotal().getData(); BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto(); boardMemberTotalDto.setUserIds(userIds); MgtBulletinBoardVo mgtBulletinBoardVoMember = remoteMemberService.boardMemberTotal(boardMemberTotalDto).getData(); mgtBulletinBoardVo.setMemberTotal(mgtBulletinBoardVoMember.getMemberTotal()); mgtBulletinBoardVo.setMemberToday(mgtBulletinBoardVoMember.getMemberToday()); // 获取推荐合作信息 MgtBulletinBoardVo mgtBulletinBoardVoCustom = recommendCooperationService.boardMemberTotal(); MgtBulletinBoardVo mgtBulletinBoardVoCustom = recommendCooperationService.boardMemberTotal(userIds); mgtBulletinBoardVo.setCustomTotal(mgtBulletinBoardVoCustom.getCustomTotal()); mgtBulletinBoardVo.setCustomToday(mgtBulletinBoardVoCustom.getCustomToday()); mgtBulletinBoardVo.setFollowUserToday(mgtBulletinBoardVoCustom.getFollowUserToday()); // 获取店铺信息 MgtBulletinBoardVo mgtBulletinBoardVoShop = remoteShopService.boardShopTotal().getData(); MgtBulletinBoardVo mgtBulletinBoardVoShop = remoteShopService.boardShopTotal(boardMemberTotalDto).getData(); mgtBulletinBoardVo.setShopTotal(mgtBulletinBoardVoShop.getShopTotal()); mgtBulletinBoardVo.setAgencyTotal(mgtBulletinBoardVoShop.getAgencyTotal()); mgtBulletinBoardVo.setDealerTotal(mgtBulletinBoardVoShop.getDealerTotal()); mgtBulletinBoardVo.setFollowShopToday(mgtBulletinBoardVoShop.getFollowShopToday()); // 获取订单信息 MgtBulletinBoardVo mgtBulletinBoardVoOrder = remoteOrderService.boardOrderTotal().getData(); MgtBulletinBoardVo mgtBulletinBoardVoOrder = remoteOrderService.boardOrderTotal(boardMemberTotalDto).getData(); mgtBulletinBoardVo.setSalesTotal(mgtBulletinBoardVoOrder.getSalesTotal()); mgtBulletinBoardVo.setUnUseOrderTotal(mgtBulletinBoardVoOrder.getUnUseOrderTotal()); mgtBulletinBoardVo.setActivityOrderTotal(mgtBulletinBoardVoOrder.getActivityOrderTotal()); ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/RecommendCooperationServiceImpl.java
@@ -106,8 +106,8 @@ * @date 2023/6/18 16:47 */ @Override public MgtBulletinBoardVo boardMemberTotal(){ MgtBulletinBoardVo mgtBulletinBoardVo = recommendCooperationMapper.customTotal(); public MgtBulletinBoardVo boardMemberTotal(List<Long> userIds){ MgtBulletinBoardVo mgtBulletinBoardVo = recommendCooperationMapper.customTotal(userIds); return mgtBulletinBoardVo; } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysUserServiceImpl.java
@@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl.sys; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; @@ -730,4 +731,39 @@ } userMapper.updateUser(sysUser); } /** * 获取当前员工权限范围内的员工id * @return */ @Override public List<Long> getScopeOfAuthorityUserId() { List<Long> userIds = new ArrayList<>(); Long userId = SecurityUtils.getUserId(); SysUser user = this.baseMapper.selectUserById(userId); String dataScope = user.getDataScope(); //没有配置默认查询自己 if(!SecurityUtils.isAdmin(userId) && StringUtils.isEmpty(dataScope)){ userIds.add(userId); } //管理员或者全部权限 if(SecurityUtils.isAdmin(userId) || (StringUtils.isNotEmpty(dataScope) && "1".equals(dataScope))){ return null; } //部分权限 if(StringUtils.isNotEmpty(dataScope) && "3".equals(dataScope)){ SysUser user1 = new SysUser(); user1.setUserType("00"); user1.setStatus("0"); user1.setDeptId(user.getDeptId()); List<SysUser> list = this.baseMapper.selectUserList(user1); userIds.addAll(list.stream().map(SysUser::getUserId).collect(Collectors.toList())); } //个人权限 if(StringUtils.isNotEmpty(dataScope) && "5".equals(dataScope)){ userIds.add(userId); } return userIds; } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysUserService.java
@@ -284,4 +284,11 @@ * @return void */ void frozenUser(MgtFrozenMemberDto mgtFrozenMemberDto); /** * 获取当前用户权限范围内的员工id * @return */ List<Long> getScopeOfAuthorityUserId(); } ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -21,9 +21,9 @@ server-addr: 47.109.78.184:5000 # server-addr: 127.0.0.1:8848 #pro namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test # namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd #dev # namespace: 6857cbd9-6088-4fe8-bb58-2b516d99876f config: @@ -31,9 +31,9 @@ server-addr: 47.109.78.184:5000 # server-addr: 127.0.0.1:8848 #pro namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test # namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd namespace: e1a7e419-e8c7-4d7d-8a0a-c00ab6ccfccd #dev # namespace: 6857cbd9-6088-4fe8-bb58-2b516d99876f # 配置文件格式 @@ -71,3 +71,7 @@ feign: compression: request: min-request-size: 20480 ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/RecommendCooperationMapper.xml
@@ -55,7 +55,13 @@ FROM t_recommend_cooperation WHERE del_flag = 0; del_flag = 0 <if test="null != userIds and userIds.size() > 0"> and allot_user_id in <foreach collection="userIds" separator="," index="index" item="item" open="(" close=")"> #{item} </foreach> </if> </select> </mapper> ruoyi-modules/ruoyi-system/src/main/resources/mapper/sys/SysUserMapper.xml
@@ -72,6 +72,9 @@ <if test="status != null and status != ''"> AND u.status = #{status} </if> <if test="userType != null and userType != ''"> AND u.user_type = #{userType} </if> <if test="phonenumber != null and phonenumber != ''"> AND u.phonenumber like concat('%', #{phonenumber}, '%') </if>