From b0b52cbabf7a4bc8e00fc328d14ac05336d0221e Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期六, 15 七月 2023 20:07:44 +0800 Subject: [PATCH] 员工端 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java | 9 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopCCEditDto.java | 23 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml | 13 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java | 3 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopECEditDto.java | 26 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ArticleServiceImpl.java | 10 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffShopController.java | 115 ++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java | 54 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CooperationServiceImpl.java | 10 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffMyShopTaskRecordPageVo.java | 65 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java | 11 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/BrowseRecordMapper.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseGetDto.java | 22 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java | 4 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java | 15 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java | 63 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskMapper.java | 25 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopTotalMapper.xml | 2 ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml | 8 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java | 10 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java | 3 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java | 3 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java | 5 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseBatchDto.java | 19 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml | 2 ruoyi-gateway/src/main/resources/bootstrap.yml | 12 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 284 +++++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 45 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopPageVo.java | 42 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java | 9 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberFixedTotalVo.java | 3 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseDto.java | 9 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java | 5 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffAddTaskDto.java | 29 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopTaskPageVo.java | 46 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffPageDto.java | 4 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java | 24 ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml | 8 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml | 9 ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml | 8 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteStaffFallbackFactory.java | 33 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopTaskPageDto.java | 22 ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml | 8 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java | 10 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java | 7 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java | 1 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java | 24 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java | 4 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml | 67 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/ExtendContactsVo.java | 22 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskRecordMapper.xml | 34 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/UserServiceRecordMapper.java | 8 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffAgencyPageDto.java | 19 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopPageDto.java | 50 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteSysStaffService.java | 23 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskRecordMapper.java | 23 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskRecordService.java | 23 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml | 141 ++ ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffAgencyTaskRecordPageVo.java | 60 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java | 75 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteUserService.java | 29 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopEstimateEditDto.java | 47 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffHomeShopTotalVo.java | 33 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/AgencyTaskRecordMapper.java | 14 ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml | 8 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java | 15 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java | 46 + ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java | 64 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskRecordServiceImpl.java | 96 ++ ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java | 2 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java | 103 ++ ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml | 13 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java | 5 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtFrozenShopDto.java | 22 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/StaffController.java | 2 ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml | 8 ruoyi-auth/src/main/resources/bootstrap.yml | 8 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 82 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java | 6 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/AgencyTaskRecordService.java | 14 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskService.java | 34 ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml | 8 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java | 22 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffTaskController.java | 106 ++ /dev/null | 33 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/task/ShopTaskRecord.java | 14 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java | 7 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java | 38 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/AgencyTaskRecordMapper.xml | 24 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/AgencyTaskRecordServiceImpl.java | 52 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java | 2 ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml | 8 ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml | 8 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java | 14 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml | 44 96 files changed, 2,402 insertions(+), 344 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseBatchDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseBatchDto.java new file mode 100644 index 0000000..bd4035d --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseBatchDto.java @@ -0,0 +1,19 @@ +package com.ruoyi.system.api.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName StaffBaseBatchDto + * @Description TODO + * @Author jqs + * @Date 2023/7/14 11:31 + * @Version 1.0 + */ +@Data +public class StaffBaseBatchDto extends StaffBaseDto{ + + @ApiModelProperty(value = "请求对象id集合 多个用,隔开") + private String ids; + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseDto.java index 186c606..2b49770 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseDto.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseDto.java @@ -3,12 +3,17 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @author cheny */ @Data public class StaffBaseDto { - @ApiModelProperty(value = "请求对象id集合 多个用,隔开") - private String ids; + @ApiModelProperty(value = "userId",hidden = true) + private Long userId; + + @ApiModelProperty(value = "部门员工list",hidden = true) + private List<Long> userIdList; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseGetDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseGetDto.java new file mode 100644 index 0000000..1a46c88 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseGetDto.java @@ -0,0 +1,22 @@ +package com.ruoyi.system.api.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @ClassName StaffBaseGetDto + * @Description TODO + * @Author jqs + * @Date 2023/7/14 18:29 + * @Version 1.0 + */ +@Data +public class StaffBaseGetDto extends StaffBaseDto{ + + @ApiModelProperty(value = "请求对象id") + @NotNull(message = "对象id为必传参数") + private String id; + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffPageDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffPageDto.java index d408d7b..a1e5d9a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffPageDto.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffPageDto.java @@ -7,7 +7,9 @@ * @author cheny */ @Data -public class StaffPageDto { +public class StaffPageDto extends StaffBaseDto{ + + @ApiModelProperty(name = "pagenum", value = "页码") private Integer pageNum = 1; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java index 4dadebc..a8ead45 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java @@ -1,16 +1,16 @@ package com.ruoyi.system.api.domain.poji.shop; -import com.baomidou.mybatisplus.annotation.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; /** * <p> @@ -269,7 +269,17 @@ @TableField("cooperative_flag") private Integer cooperativeFlag; + /** + * 扩展联系人 + */ + @TableField("extend_contacts") + private String extendContacts; + /** + * 进件标记 + */ + @TableField("auth_flag") + private Integer authFlag; @Override protected Serializable pkVal() { diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java index 99a56ab..9b7fd78 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java @@ -1,11 +1,9 @@ package com.ruoyi.system.api.domain.vo; -import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; -import java.util.List; /** * @author jqs34 @@ -29,7 +27,7 @@ @ApiModelProperty(value = "待处理订单") private Integer unHandleOrder; - @ApiModelProperty(value = "跟进任务") + @ApiModelProperty(value = "会员跟进任务") private Integer task; @ApiModelProperty(value = "店铺营业额") @@ -40,8 +38,5 @@ @ApiModelProperty(value = "剩余体验人数") private Integer explorationSurp; - - @ApiModelProperty(value = "多个商户id") - private List<Long> shopIds; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java index c8df9fc..e693c0a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java @@ -39,6 +39,9 @@ @ApiModelProperty(value = "会员调理") private List<MgtMapIntTotalVo> nurseTotalVos; + @ApiModelProperty(value = "会员等级") + private List<MgtMapIntTotalVo> memberLevelTotalVos; + @ApiModelProperty(value = "商品类型") private List<MgtMapIntTotalVo> goodsTypeTotalVos; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java index 2df8740..6eec4a0 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java @@ -133,6 +133,11 @@ return R.fail("积分变动失败:" + throwable.getMessage()); } + @Override + public R<Integer> getAreaNewMember(List<Long> shopIdList) { + return null; + } + }; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java index b012c43..358d52b 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java @@ -102,6 +102,11 @@ public R<Integer> getShopMarketingStatus(Long shopId) { return null; } + + @Override + public R<ShopRelUserVo> getShopByBelongUserId(Long userId) { + return R.fail("获取商户失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteStaffFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteStaffFallbackFactory.java new file mode 100644 index 0000000..ddd4c8c --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteStaffFallbackFactory.java @@ -0,0 +1,33 @@ +package com.ruoyi.system.api.factory; + +import com.ruoyi.system.api.service.RemoteSysStaffService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; + +/** + * @ClassName RemoteStaffFallbackFactory + * @Description TODO + * @Author jqs + * @Date 2023/7/14 10:30 + * @Version 1.0 + */ +public class RemoteStaffFallbackFactory implements FallbackFactory<RemoteSysStaffService> { + + private static final Logger log = LoggerFactory.getLogger(RemoteStaffFallbackFactory.class); + + @Override + public RemoteSysStaffService create(Throwable throwable) + { + log.error("员工服务调用失败:{}", throwable.getMessage()); + return new RemoteSysStaffService() + { + + @Override + public Boolean isLeader() { + return null; + } + }; + } + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java index 6824987..4d886f8 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java @@ -4,11 +4,15 @@ import com.ruoyi.system.api.domain.dto.AppEditUserDto; import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.model.LoginUser; +import com.ruoyi.system.api.model.QwH5LoginVo; +import com.ruoyi.system.api.model.QwUserDetailDto; import com.ruoyi.system.api.service.RemoteUserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; + +import java.util.List; /** * 用户服务 @@ -70,6 +74,17 @@ public R frozenUser(Long userId) { return R.fail("冻结用户失败:" + throwable.getMessage()); } + + @Override + public R<QwH5LoginVo> qwH5StaffLogin(QwUserDetailDto qwUserDetail) { + return R.fail("员工端登录信息获取失败:" + throwable.getMessage()); + } + + @Override + public R<List<Long>> getUserIdsByDept(Long userId) { + return null; + } + }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java index 36000e5..fb20ef8 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java @@ -204,4 +204,15 @@ */ @PostMapping("/member/changeIntegral") public R signShare(@RequestBody IntegralChangeDto integralChangeDto); + + + /** + * @description 统计商户今日新增会员 + * @author jqs + * @date 2023/7/14 20:00 + * @param shopIdList + * @return R<Integer> + */ + @PostMapping("/member/getAreaNewMember") + public R<Integer> getAreaNewMember(@RequestBody List<Long> shopIdList); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java index 0939dad..783d14d 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java @@ -138,4 +138,7 @@ */ @PostMapping("/shop/getShopMarketingStatus") public R<Integer> getShopMarketingStatus(@RequestBody Long shopId); + + @PostMapping("/shop/getShopByBelongUserId") + public R<ShopRelUserVo> getShopByBelongUserId(@RequestBody Long userId); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteSysStaffService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteSysStaffService.java index 6207213..2fac1ac 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteSysStaffService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteSysStaffService.java @@ -1,36 +1,21 @@ package com.ruoyi.system.api.service; -import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.ServiceNameConstants; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.system.api.model.LoginUser; +import com.ruoyi.system.api.factory.RemoteUserFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.*; - -import java.util.List; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; /** * 用户服务 * * @author jqs */ -@FeignClient(contextId = "remoteSysStaffService", value = ServiceNameConstants.SYSTEM_SERVICE/*, fallbackFactory = RemoteUserFallbackFactory.class*/) +@FeignClient(contextId = "remoteSysStaffService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class) public interface RemoteSysStaffService { - /** - * 通过用户名查询用户信息 - * - * @param username 用户名 - * @param source 请求来源 - * @return 结果 - */ - @GetMapping("/user/info/{username}") - public R<LoginUser> getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); @RequestMapping(value = "/staff/isLeader", method = RequestMethod.POST) public Boolean isLeader() ; - - @GetMapping("/user/dept/{deptId}") - public R<List<Long>> getUserIds(@PathVariable("deptId") Long deptId); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteUserService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteUserService.java index 9caedb6..9f6a132 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteUserService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteUserService.java @@ -7,8 +7,12 @@ import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.factory.RemoteUserFallbackFactory; import com.ruoyi.system.api.model.LoginUser; +import com.ruoyi.system.api.model.QwH5LoginVo; +import com.ruoyi.system.api.model.QwUserDetailDto; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 用户服务 @@ -39,9 +43,6 @@ public R<Boolean> registerUserInfo(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); - - - /** * @description: TODO * @author jqs34 @@ -60,6 +61,7 @@ @PostMapping("/user/getSysUserByMobile") public R<SysUser> getSysUserByMobile(@RequestBody String mobile); + /** * @description: 更新用户手机 * @author jqs34 @@ -68,7 +70,6 @@ */ @PostMapping("/user/registerUser") public R<SysUser> registerUser(@RequestBody SysUser sysUser); - /** @@ -95,6 +96,24 @@ * @param userId * @return R<Activeness> */ - @PostMapping("/config/frozenUser") + @PostMapping("/user/frozenUser") public R frozenUser(@RequestBody Long userId); + + /** + * @description 员工端登录 + * @author jqs + * @date 2023/7/14 10:04 + * @param qwUserDetail + * @return R<QwH5LoginVo> + */ + @PostMapping("/user/qwH5StaffLogin") + public R<QwH5LoginVo> qwH5StaffLogin(@RequestBody QwUserDetailDto qwUserDetail); + + /** + * 根据部门获取所有员工id + * @param userId + * @return + */ + @GetMapping("/user/getUserIdsByDept/{userId}") + public R<List<Long>> getUserIdsByDept(@PathVariable("userId") Long userId); } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java index a4a33db..0ca7174 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java @@ -1,6 +1,5 @@ package com.ruoyi.auth.controller; -import com.alibaba.fastjson.JSONObject; import com.ruoyi.auth.service.QywxInnerService; import com.ruoyi.auth.service.SysLoginService; import com.ruoyi.common.core.domain.R; @@ -56,21 +55,34 @@ } - @GetMapping("/h5/oauthUser") - @ApiOperation("通过code获取访问用户登录") - public R<OauthUserVo> oauthUser(@ApiParam(value = "成员授权获取到的code", required = true) @RequestParam("code") String code) throws IOException { + @GetMapping("/h5/oauthStaff") + @ApiOperation("通过code获取员工端用户登录") + public R<OauthUserVo> oauthStaff(@ApiParam(value = "成员授权获取到的code", required = true) @RequestParam("code") String code) throws IOException { // 通过code获取访问用户敏感信息 - JSONObject result = qywxInnerService.getOauthUser(code); + //JSONObject result = qywxInnerService.getOauthUser(code); //QwUserDetailDto qwUserDetail = JSONObject.parseObject(result.toJSONString(), QwUserDetailDto.class); QwUserDetailDto qwUserDetail = new QwUserDetailDto(); qwUserDetail.setMobile("13882237106"); - qwUserDetail.setUserid("146"); // 1、查数据库获取人员 QwH5LoginVo qwH5LoginVo = sysLoginService.qwH5Login(qwUserDetail); // 2、生成Token return R.ok(tokenService.createQwH5Token(qwH5LoginVo)); } + @GetMapping("/h5/oauthUser") + @ApiOperation("通过code获取商户端用户登录") + public R<OauthUserVo> oauthUser(@ApiParam(value = "成员授权获取到的code", required = true) @RequestParam("code") String code) throws IOException { + // 通过code获取访问用户敏感信息 + //JSONObject result = qywxInnerService.getOauthUser(code); + //QwUserDetailDto qwUserDetail = JSONObject.parseObject(result.toJSONString(), QwUserDetailDto.class); + QwUserDetailDto qwUserDetail = new QwUserDetailDto(); + qwUserDetail.setMobile("13882237106"); + // 1、查数据库获取人员 + QwH5LoginVo qwH5LoginVo = sysLoginService.qwH5StaffLogin(qwUserDetail); + // 2、生成Token + return R.ok(tokenService.createQwH5Token(qwH5LoginVo)); + } + @GetMapping("/h5/getAgentConfig") @ApiOperation("通过code获取访问用户登录") public R<AgentConfigVo> getAgentConfig(@ApiParam(value = "url", required = true) String url, @ApiParam(value = "type", required = false) String type) throws IOException { diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java index 760b528..c527bee 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java @@ -1,14 +1,5 @@ package com.ruoyi.auth.service; -import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; -import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; -import com.ruoyi.system.api.service.RemoteMemberService; -import com.ruoyi.system.api.service.RemoteShopService; -import com.ruoyi.system.api.domain.vo.ShopRelUserVo; -import com.ruoyi.system.api.model.*; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.SecurityConstants; @@ -21,8 +12,16 @@ import com.ruoyi.common.core.utils.ip.IpUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.api.service.RemoteUserService; +import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; import com.ruoyi.system.api.domain.poji.sys.SysUser; +import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; +import com.ruoyi.system.api.domain.vo.ShopRelUserVo; +import com.ruoyi.system.api.model.*; +import com.ruoyi.system.api.service.RemoteMemberService; +import com.ruoyi.system.api.service.RemoteShopService; +import com.ruoyi.system.api.service.RemoteUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * 登录校验方法 @@ -230,9 +229,52 @@ throw new ServiceException("未查询到商户信息"); } userInfo.setShopId(shopInfo.getShopId()); - recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功",Constants.FROM_SHOP); + return userInfo; + } + /** + * 企业微信H5登录 + */ + public QwH5LoginVo qwH5StaffLogin(QwUserDetailDto qwUserDetail) + { + // 查询用户信息 + R<QwH5LoginVo> userResult = remoteShopService.qwH5Login(qwUserDetail); + if (R.FAIL == userResult.getCode()) + { + throw new ServiceException(userResult.getMsg()); + } + QwH5LoginVo userInfo = userResult.getData(); + SysUser user = userInfo.getSysUser(); + String username = user.getUserName(); + // IP黑名单校验 + String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST)); + if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) + { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单",Constants.FROM_SHOP); + throw new ServiceException("很遗憾,访问IP已被列入系统黑名单"); + } + if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) + { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除",Constants.FROM_SHOP); + throw new ServiceException("对不起,您的账号:" + username + " 已被删除"); + } + if (UserStatus.DISABLE.getCode().equals(user.getStatus())) + { + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员",Constants.FROM_SHOP); + throw new ServiceException("对不起,您的账号:" + username + " 已停用"); + } + // 查询用户商户 + R<ShopRelUserVo> shopResult = remoteShopService.getShopByBelongUserId(user.getUserId()); + if (R.FAIL == userResult.getCode()) { + throw new ServiceException(userResult.getMsg()); + } + ShopRelUserVo shopInfo = shopResult.getData(); + if(null == shopInfo){ + throw new ServiceException("未查询到商户信息"); + } + userInfo.setShopId(shopInfo.getShopId()); + recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功",Constants.FROM_SHOP); return userInfo; } diff --git a/ruoyi-auth/src/main/resources/bootstrap.yml b/ruoyi-auth/src/main/resources/bootstrap.yml index 650d4e1..2f5a770 100644 --- a/ruoyi-auth/src/main/resources/bootstrap.yml +++ b/ruoyi-auth/src/main/resources/bootstrap.yml @@ -14,12 +14,12 @@ nacos: discovery: # 服务注册地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 config: # 配置中心地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-gateway/src/main/resources/bootstrap.yml b/ruoyi-gateway/src/main/resources/bootstrap.yml index fdae1b6..4a64425 100644 --- a/ruoyi-gateway/src/main/resources/bootstrap.yml +++ b/ruoyi-gateway/src/main/resources/bootstrap.yml @@ -14,12 +14,12 @@ nacos: discovery: # 服务注册地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 config: # 配置中心地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 @@ -35,8 +35,8 @@ datasource: ds1: nacos: - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 dataId: sentinel-ruoyi-gateway groupId: DEFAULT_GROUP data-type: json diff --git a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml index d4fcd40..423911f 100644 --- a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml @@ -18,12 +18,12 @@ nacos: discovery: # 服务注册地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 config: # 配置中心地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml index c1065bc..1367b5d 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml @@ -14,12 +14,12 @@ nacos: discovery: # 服务注册地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 config: # 配置中心地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml index b70af9b..91e477e 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml @@ -14,12 +14,12 @@ nacos: discovery: # 服务注册地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 config: # 配置中心地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml index 7b50681..d9a39cf 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml @@ -106,7 +106,7 @@ <select id="getRecommendActivity" resultType="com.ruoyi.goods.domain.pojo.activity.Activity"> SELECT * FROM t_activity WHERE del_flag = 0 AND recommend_flag = 1 AND NOW() BETWEEN activity_start_time AND activity_end_time - AND activity_status = 1 AND shop_flag = 1 OR (shop_flag = 2 AND FIND_IN_SET(#{shopId}, applicable_shop) > 0) + AND activity_status = 1 AND (shop_flag = 1 OR (shop_flag = 2 AND FIND_IN_SET(#{shopId}, applicable_shop) > 0)) ORDER BY activity_end_time - NOW() LIMIT 1; </select> diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml index 9a8a9ef..d24638a 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml @@ -223,26 +223,25 @@ <if test="param.keyword!=null and param.keyword != ''"> AND tg.goods_name LIKE CONCAT('%',#{param.keyword},'%') </if> - ORDER BY <if test="param.sort != null and param.sort != ''"> <choose> <when test="param.sort==1"> - salesPrice DESC,tg.create_time DESC + ORDER BY salesPrice DESC,tg.create_time DESC </when> <when test="param.sort==2"> - salesPrice ASC,tg.create_time DESC + ORDER BY salesPrice ASC,tg.create_time DESC </when> <when test="param.sort==3"> - tgt.buy_num_count ASC,tg.create_time DESC + ORDER BY tgt.buy_num_count ASC,tg.create_time DESC </when> <when test="param.sort==4"> - tgt.buy_num_count DESC,tg.create_time DESC + ORDER BY tgt.buy_num_count DESC,tg.create_time DESC </when> <when test="param.sort==5"> - tg.create_time DESC + ORDER BY tg.create_time DESC </when> <otherwise> - tg.create_time DESC + ORDER BY tg.create_time DESC </otherwise> </choose> </if> diff --git a/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml index 89bee3a..e2cda09 100644 --- a/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml @@ -14,12 +14,12 @@ nacos: discovery: # 服务注册地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 config: # 配置中心地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java index c3d5632..c6da197 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java @@ -303,4 +303,18 @@ memberService.changeIntegral(integralChangeDto); return R.ok(); } + + /** + * @description 统计商户今日新增会员 + * @author jqs + * @date 2023/7/14 20:00 + * @param shopIdList + * @return R<Integer> + */ + @PostMapping("/getAreaNewMember") + public R<Integer> getAreaNewMember(@RequestBody List<Long> shopIdList) + { + Integer count = memberService.getAreaNewMember(shopIdList); + return R.ok(count); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberFixedTotalVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberFixedTotalVo.java index e206030..97962ff 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberFixedTotalVo.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberFixedTotalVo.java @@ -38,6 +38,9 @@ @ApiModelProperty(value = "会员调理") private List<MgtMapIntTotalVo> nurseTotalVos; + @ApiModelProperty(value = "会员等级") + private List<MgtMapIntTotalVo> memberLevelTotalVos; + @ApiModelProperty(value = "商品类型") private List<MgtMapIntTotalVo> goodsTypeTotalVos; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java index a018e75..adb11c2 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java @@ -59,6 +59,9 @@ @ApiModelProperty(value = "会员调理") private List<MgtMapIntTotalVo> nurseTotalVos; + @ApiModelProperty(value = "会员等级") + private List<MgtMapIntTotalVo> memberLevelTotalVos; + @ApiModelProperty(value = "商品类型") private List<MgtMapIntTotalVo> goodsTypeTotalVos; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/BrowseRecordMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/BrowseRecordMapper.java index e483829..8e27fd7 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/BrowseRecordMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/BrowseRecordMapper.java @@ -39,5 +39,5 @@ * @param merMemberBrowsePageDto * @return List<MerMemberBrowsePageVo> */ - List<MerMemberBrowsePageVo> pageMerMemberBrowse(Page page, MerMemberBrowsePageDto merMemberBrowsePageDto); + List<MerMemberBrowsePageVo> pageMerMemberBrowse(Page page, @Param("param")MerMemberBrowsePageDto merMemberBrowsePageDto); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java index 181ff9b..1f325ff 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java @@ -159,6 +159,15 @@ */ List<MgtMapIntTotalVo> getTotalMemberTotalNurse(@Param("param") MgtBaseShopDto mgtBaseShopDto); + /** + * @description 会员人数统计 + * @author jqs + * @date 2023/6/19 15:26 + * @param + * @return MgtTotalMemberTotalVo + */ + List<MgtMapIntTotalVo> getTotalMemberTotalLevel(@Param("param") MgtBaseShopDto mgtBaseShopDto); + /** * @description 会员人数统计 @@ -236,6 +245,15 @@ * @return MgtTotalMemberTotalVo */ List<MgtMapIntTotalVo> getPlTotalMemberTotalNurse(@Param("param") MgtBasePlatformDto mgtBasePlatformDto); + + /** + * @description 会员人数统计 + * @author jqs + * @date 2023/6/19 15:26 + * @param + * @return MgtTotalMemberTotalVo + */ + List<MgtMapIntTotalVo> getPlTotalMemberTotalLevel(@Param("param") MgtBasePlatformDto mgtBasePlatformDto); /** * @description 会员人数统计 @@ -322,6 +340,15 @@ List<MgtMapIntTotalVo> getMerMemberTotalNurse(@Param("param") MerTotalDto merTotalDto); /** + * @description 会员调理问题人数统计 + * @author jqs + * @date 2023/6/19 15:26 + * @param + * @return MgtTotalMemberTotalVo + */ + List<MgtMapIntTotalVo> getMerMemberTotalLevel(@Param("param") MerTotalDto merTotalDto); + + /** * @description 会员商品类型人数统计 * @author jqs * @date 2023/6/19 15:26 @@ -370,10 +397,19 @@ * @description 获取各年龄层用户 * @author jqs * @date 2023/7/4 9:55 - * @param ageType + * @param merTotalDto * @return List<Long> */ List<Long> listOrderAgeUser(@Param("param") MerTotalDto merTotalDto); + + /** + * @description 统计商户今日新增会员 + * @author jqs + * @date 2023/7/14 19:54 + * @param shopIdList + * @return Integer + */ + Integer getAreaNewMember(@Param("shopIdList")List<Long> shopIdList); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java index e352993..cf18fe6 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java @@ -39,7 +39,7 @@ /** * 定时检查优惠券过期 */ - @Scheduled(cron="5 0 * * * ?") + @Scheduled(cron="2 0 * * * ?") private void timingCheckMemberCoupon(){ if(schedulerUtils.getSchedulerRun()) { log.info("定时检查优惠券过期任务开始执行"); diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java index cf95a7c..2dbd752 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java @@ -84,8 +84,6 @@ @Resource private RemoteOrderService orderService; - @Resource - private MemberNurseService memberNurseService; @Resource private RemoteConfigService remoteConfigService; @@ -325,27 +323,22 @@ switch (editType) { case 1: member.setNickName(editValue); - member.setUpdateTime(new Date()); - member.setUpdateUserId(appEditUserDto.getUserId()); - this.saveOrUpdate(member); break; case 2: + member.setAvatar(editValue); break; case 3: member.setGender(Integer.valueOf(editValue)); - member.setUpdateTime(new Date()); - member.setUpdateUserId(appEditUserDto.getUserId()); - this.saveOrUpdate(member); break; case 4: member.setBirthday(editValue); - member.setUpdateTime(new Date()); - member.setUpdateUserId(appEditUserDto.getUserId()); - this.saveOrUpdate(member); break; default: break; } + member.setUpdateTime(new Date()); + member.setUpdateUserId(appEditUserDto.getUserId()); + this.saveOrUpdate(member); sysUserService.editUserInfo(appEditUserDto); } @@ -1152,6 +1145,12 @@ nurseTotalVos = listRemoveNull(nurseTotalVos); mgtTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos); } + //获取不同等级的会员数 + List<MgtMapIntTotalVo> memberLevelTotalVos = memberMapper.getTotalMemberTotalLevel(mgtBaseShopDto); + if (memberLevelTotalVos != null && memberLevelTotalVos.size() > 0) { + memberLevelTotalVos = listRemoveNull(memberLevelTotalVos); + mgtTotalMemberTotalVo.setMemberLevelTotalVos(memberLevelTotalVos); + } // 获取不同商品类型的会员数 List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getTotalMemberTotalGoodsType(mgtBaseShopDto); if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { @@ -1257,6 +1256,12 @@ if (nurseTotalVos != null && nurseTotalVos.size() > 0) { nurseTotalVos = listRemoveNull(nurseTotalVos); plTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos); + } + //获取不同等级的会员数 + List<MgtMapIntTotalVo> memberLevelTotalVos = memberMapper.getPlTotalMemberTotalLevel(mgtBasePlatformDto); + if (memberLevelTotalVos != null && memberLevelTotalVos.size() > 0) { + memberLevelTotalVos = listRemoveNull(memberLevelTotalVos); + plTotalMemberTotalVo.setMemberLevelTotalVos(memberLevelTotalVos); } // 获取不同商品类型的会员数 List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getPlTotalMemberTotalGoodsType(mgtBasePlatformDto); @@ -1513,6 +1518,12 @@ if (nurseTotalVos != null && nurseTotalVos.size() > 0) { nurseTotalVos = listRemoveNull(nurseTotalVos); memberFixedTotalVo.setNurseTotalVos(nurseTotalVos); + } + //获取不同等级的会员数 + List<MgtMapIntTotalVo> memberLevelTotalVos = memberMapper.getMerMemberTotalLevel(merTotalDto); + if (memberLevelTotalVos != null && memberLevelTotalVos.size() > 0) { + memberLevelTotalVos = listRemoveNull(memberLevelTotalVos); + memberFixedTotalVo.setMemberLevelTotalVos(memberLevelTotalVos); } // 获取不同商品类型的会员数 List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getMerMemberTotalGoodsType(merTotalDto); @@ -1815,4 +1826,16 @@ integralRecordService.saveOrUpdate(integralRecord); return completeFlag; } + + /** + * @description 统计商户今日新增会员 + * @author jqs + * @date 2023/7/14 19:54 + * @param shopIdList + * @return Integer + */ + @Override + public Integer getAreaNewMember(List<Long> shopIdList){ + return memberMapper.getAreaNewMember(shopIdList); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java index 3b0e3ca..7b7f93f 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java @@ -348,4 +348,13 @@ * @return void */ Boolean changeIntegral(IntegralChangeDto integralChangeDto); + + /** + * @description 统计商户今日新增会员 + * @author jqs + * @date 2023/7/14 19:54 + * @param shopIdList + * @return Integer + */ + Integer getAreaNewMember(List<Long> shopIdList); } diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml index 73eb18f..58dc3e4 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml @@ -14,12 +14,12 @@ nacos: discovery: # 服务注册地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 config: # 配置中心地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml index 07c9973..1b9d21d 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml @@ -430,6 +430,22 @@ GROUP BY member_nurse </select> + <select id="getTotalMemberTotalLevel" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> + SELECT level mapKey, COUNT(*) mapValue + FROM t_member + WHERE (level IS NOT NULL OR level != '') + <if test="param.shopId != null and param.shopId != ''"> + AND relation_shop_id = #{param.shopId} + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND create_time >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND create_time <= #{param.endDate} + </if> + GROUP BY level + </select> + <select id="getTotalMemberTotalGoodsType" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT goods_type mapKey, COUNT(*) mapValue FROM ( @@ -584,6 +600,25 @@ ) x WHERE member_nurse IS NOT NULL OR member_nurse != '' GROUP BY member_nurse + </select> + + <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 != '') + <if test="param.shopIdList != null and param.shopIdList.size() > 0"> + AND relation_shop_id IN + <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND create_time >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND create_time <= #{param.endDate} + </if> + GROUP BY level </select> <select id="getPlTotalMemberTotalGoodsType" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> @@ -786,6 +821,28 @@ GROUP BY member_nurse </select> + <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 != '') + <if test="param.shopId != null and param.shopId != ''"> + AND relation_shop_id = #{param.shopId} + </if> + <if test="param.shopIdList != null and param.shopIdList.size() > 0"> + AND relation_shop_id IN + <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND create_time >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND create_time <= #{param.endDate} + </if> + GROUP BY level + </select> + <select id="getMerMemberTotalGoodsType" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT goods_type mapKey, COUNT(*) mapValue FROM ( @@ -945,4 +1002,14 @@ AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) >= 51 </if> </select> + + <select id="getAreaNewMember" resultType="java.lang.Integer"> + SELECT COUNT(member_id) + FROM t_member + WHERE del_flag = 0 AND binding_flag = 1 AND DATE(binding_time) = CURDATE() + AND relation_shop_id IN + <foreach collection="shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java index 27aa8ac..ed2f151 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java @@ -56,6 +56,7 @@ return R.ok(appSureOrderVo); } + @RequestMapping(value = "/panicBuyGoods", method = RequestMethod.POST) @ApiOperation(value = "抢购商品") public R<AppPanicBuyVo> panicBuyGoods(@RequestBody AppPanicBuyDto appPanicBuyDto) { diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/UserServiceRecordMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/UserServiceRecordMapper.java index 22129f5..b396354 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/UserServiceRecordMapper.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/UserServiceRecordMapper.java @@ -63,11 +63,5 @@ * @return Integer */ Integer countShopServicePerson(@Param("shopId")Long shopId); - /** - * @description 商户端统计商户到店人数 - * @author cheny - * @param shopIds - * @return Integer - */ - Integer countShopServicePersons(List<Long> shopIds); + } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index 6b2ad45..6120b1d 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -152,14 +152,19 @@ BigDecimal orderPayDeposit = new BigDecimal("0.00"); BigDecimal orderPayMoney = new BigDecimal("0.00"); // 遍历购买商品列表 + HashSet<String> userCouponIdSet = new HashSet<>(); for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { appSureOrderGoodsVo = new AppSureOrderGoodsVo(); + discountMoney = BigDecimal.ZERO; useCoupon = 0; goodsId = appBuyGoodsDto.getGoodsId(); buyNum = appBuyGoodsDto.getBuyNum(); memberCouponId = appBuyGoodsDto.getMemberCouponId(); // 获取商品信息 goods = remoteGoodsService.getGoods(goodsId).getData(); + if(goods.getGoodsStatus()!=1){ + throw new ServiceException(AppErrorConstant.GOODS_DOWN); + } // 设置订单商品信息 appSureOrderGoodsVo.setGoodsId(goodsId); appSureOrderGoodsVo.setGoodsName(goods.getGoodsName()); @@ -183,7 +188,7 @@ goodsTotalPrice = goodsPrice.multiply(buyNumBig); goodsRealPrice = goodsTotalPrice; // 处理优惠券 - if (memberCouponId != null) { + if (StringUtils.isNotBlank(memberCouponId)) { appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) { couponType = appMemberCouponVo.getCouponType(); @@ -193,16 +198,25 @@ discountMoney = appMemberCouponVo.getDiscountMoney(); goodsRealPrice = goodsTotalPrice.subtract(discountMoney); useCoupon = 1; + userCouponIdSet.add(memberCouponId); + appSureOrderGoodsVo.setMemberCouponId(memberCouponId); } } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) { discountPercent = appMemberCouponVo.getDiscountPercent(); goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP); discountMoney = goodsRealPrice.subtract(goodsTotalPrice); useCoupon = 1; + userCouponIdSet.add(memberCouponId); + appSureOrderGoodsVo.setMemberCouponId(memberCouponId); } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) { discountMoney = appMemberCouponVo.getDiscountMoney(); goodsRealPrice = goodsTotalPrice.subtract(discountMoney); + if(goodsRealPrice.compareTo(BigDecimal.ZERO)<0){ + goodsRealPrice = BigDecimal.ZERO; + } useCoupon = 1; + userCouponIdSet.add(memberCouponId); + appSureOrderGoodsVo.setMemberCouponId(memberCouponId); } } } @@ -220,33 +234,60 @@ couponDiscount = couponDiscount.add(discountMoney); orderPayDeposit = orderPayDeposit.add(goodsDeposit); orderPayMoney = orderPayMoney.add(goodsRealPrice); + appSureOrderGoodsVoList.add(appSureOrderGoodsVo); + } + //处理优惠券列表 + if (appMemberCouponVoList != null && !appMemberCouponVoList.isEmpty()) { // 获取商品关联优惠券 appGoodsMemberCouponVoList = new ArrayList<>(); - if (appMemberCouponVoList != null && !appMemberCouponVoList.isEmpty()) { + for(AppSureOrderGoodsVo sureOrderGoodsVo : appSureOrderGoodsVoList){ for (AppMemberCouponVo entity : appMemberCouponVoList) { if (StringUtils.isBlank(entity.getRelGoodsIds())) { if (entity.getCouponType() == 1 && entity.getMoneyThreshold() != null && entity.getDiscountMoney() != null) { moneyThreshold = entity.getMoneyThreshold(); - if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) { - appGoodsMemberCouponVoList.add(entity); + if (sureOrderGoodsVo.getGoodsTotalPrice().compareTo(moneyThreshold) >= 0) { + if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + }else{ + if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + } + } } }else{ - appGoodsMemberCouponVoList.add(entity); + if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + }else{ + if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + } + } } - } else if (entity.getRelGoodsIds().contains(goodsId)) { + } else if (entity.getRelGoodsIds().contains(sureOrderGoodsVo.getGoodsId())) { if (entity.getCouponType() == 1 && entity.getMoneyThreshold() != null && entity.getDiscountMoney() != null) { moneyThreshold = entity.getMoneyThreshold(); - if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) { - appGoodsMemberCouponVoList.add(entity); + if (sureOrderGoodsVo.getGoodsTotalPrice().compareTo(moneyThreshold) >= 0) { + if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + }else{ + if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + } + } } }else{ - appGoodsMemberCouponVoList.add(entity); + if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + }else{ + if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + } + } } } } - appSureOrderGoodsVo.setAppMemberCouponVoList(appGoodsMemberCouponVoList); + sureOrderGoodsVo.setAppMemberCouponVoList(appGoodsMemberCouponVoList); } - appSureOrderGoodsVoList.add(appSureOrderGoodsVo); } // 设置订单相关金额 appSureOrderVo.setOrderGoodsMoney(orderGoodsMoney); @@ -297,6 +338,9 @@ throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL); } Goods goods = remoteGoodsService.getGoods(goodsId).getData(); + if(goods.getGoodsStatus()!=1){ + throw new ServiceException(AppErrorConstant.GOODS_DOWN); + } appPanicBuyVo.setGoodsId(goodsId); appPanicBuyVo.setGoodsName(goods.getGoodsName()); appPanicBuyVo.setGoodsIntroduction(goods.getGoodsIntroduction()); @@ -913,18 +957,10 @@ */ @Override public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) { - List<Long> shopIds = merHomeShopTotalVo.getShopIds(); - if (null != shopIds && shopIds.size() != 0) { - Integer todayShop = userServiceRecordMapper.countShopServicePersons(shopIds); - merHomeShopTotalVo = orderMapper.getMerHomeShopsTotalVo(shopIds); - merHomeShopTotalVo.setTodayShop(todayShop); - }else{ - Long shopId = merHomeShopTotalVo.getShopId(); - Integer todayShop = userServiceRecordService.countShopServicePerson(shopId); - merHomeShopTotalVo.setTodayShop(todayShop); - merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId); - - } + Long shopId = merHomeShopTotalVo.getShopId(); + Integer todayShop = userServiceRecordService.countShopServicePerson(shopId); + merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId); + merHomeShopTotalVo.setTodayShop(todayShop); return merHomeShopTotalVo; } diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml index 8db7a2e..79ddc73 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml @@ -14,12 +14,12 @@ nacos: discovery: # 服务注册地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 config: # 配置中心地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index 23e3b35..65e6944 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml @@ -1264,7 +1264,7 @@ IFNULL(SUM(CASE WHEN order_status = 2 THEN 1 ELSE 0 END),0) unHandleOrder, IFNULL(SUM(pay_money),0) shopTurnover FROM t_order - WHERE del_flag = 0 AND shopId = #{shopId} + WHERE del_flag = 0 AND shop_id = #{shopId} </select> <select id="getMerHomeShopsTotalVo" resultType="com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo"> diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml index 53af0b0..35f7d29 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml @@ -142,13 +142,4 @@ WHERE shop_id = #{shopId} AND DATE(create_time) = CURDATE() </select> - <select id="countShopServicePersons" resultType="java.lang.Integer"> - SELECT COUNT(DISTINCT user_id) - FROM t_user_service_record - WHERE shop_id in - <foreach item="id" collection="list" open="(" separator="," close=")"> - #{id} - </foreach> - AND DATE(create_time) = CURDATE() - </select> </mapper> diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java index 6daa718..77213f8 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java @@ -101,6 +101,16 @@ return R.ok(shopRelUserVo); } + @PostMapping("/getShopByBelongUserId") + public R<ShopRelUserVo> getShopByBelongUserId(@RequestBody Long userId) + { + Shop shop = shopService.getShopByBelongUserId(userId); + Optional.ofNullable(shop).orElseThrow(() -> new ServiceException("未查询到商户信息")); + ShopRelUserVo shopRelUserVo = new ShopRelUserVo(); + shopRelUserVo.setShopId(shop.getShopId()); + return R.ok(shopRelUserVo); + } + /** * @description 删除商户标签 * @author jqs diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java index d2a9d9c..dcc54e9 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java @@ -128,6 +128,16 @@ return R.ok(); } + @RequestMapping(value = "/frozenMgtShop", method = RequestMethod.POST) + @Log(title = "商户管理", businessType = BusinessType.UPDATE,operContent = "终止合作") + @ApiOperation(value = "冻结商户") + public R frozenMgtShop(@RequestBody MgtFrozenShopDto mgtFrozenShopDto) { + Long userId = SecurityUtils.getUserId(); + mgtFrozenShopDto.setUserId(userId); + shopService.frozenMgtShop(mgtFrozenShopDto); + return R.ok(); + } + @RequestMapping(value = "/changeMgtCooperationTime", method = RequestMethod.POST) @Log(title = "商户管理", businessType = BusinessType.UPDATE,operContent = "修改合作时间") @ApiOperation(value = "修改合作时间") diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java index 8688535..e99018c 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java @@ -84,4 +84,6 @@ List<MgtMemberFollowPageVo> mgtMemberFollowPageVoList = memberTaskRecordService.pageMgtMemberFollow(mgtMemberTaskPageDto); return R.ok(mgtMemberFollowPageVoList); } + + } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffController.java deleted file mode 100644 index 09adae9..0000000 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffController.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.ruoyi.shop.controller.staff; - -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.shop.domain.dto.MgtShopPageDto; -import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; -import com.ruoyi.shop.domain.vo.MgtShopPageVo; -import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo; -import com.ruoyi.shop.service.shop.ShopService; -import com.ruoyi.system.api.domain.poji.shop.Shop; -import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; -import com.ruoyi.system.api.service.RemoteSysStaffService; -import com.ruoyi.system.api.service.RemoteUserService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; - - -@Api(value = "员工端商户接口", tags = "员工端商户接口", description = "员工端商户接口") -@RestController -@RequestMapping("/staff/shop") -public class StaffController { - - @Resource - private ShopService shopService; - @Resource - private RemoteUserService sysUserService; - @Resource - private RemoteSysStaffService remoteSysStaffService; - - /** - * 未完成实际统计 - * @return - */ - @RequestMapping(value = "/getStaffHomeTotal", method = RequestMethod.POST) - @ApiOperation(value = "获取员工端商铺统计(首页)") - public R<MerHomeShopTotalVo> getStaffHomeTotal() { - Long userId = SecurityUtils.getUserId(); - MerHomeShopTotalVo merHomeShopTotalVo = shopService.getStaffHomeTotal(userId); - return R.ok(merHomeShopTotalVo); - } - - @RequestMapping(value = "/list", method = RequestMethod.POST) - @ApiOperation(value = "获取商户端商业统计") - public R getShopByUserId(@RequestBody MgtShopPageDto mgtShopPageDto) { - Long userId = SecurityUtils.getUserId(); - if (remoteSysStaffService.isLeader()) { - Long deptId = sysUserService.getSysUser(userId).getData().getDeptId(); - List<Long> userIds = remoteSysStaffService.getUserIds(deptId).getData(); - if(userIds.size()==0){ - return R.ok("未关联商户"); - } - mgtShopPageDto.setIds(userIds); - } else { - mgtShopPageDto.setBelongUserId(userId); - } - Page<MgtShopPageVo> page = new Page<>(); - page.setSize(mgtShopPageDto.getPageSize()); - page.setCurrent(mgtShopPageDto.getPageNum()); - List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto); - return R.ok(page.setRecords(mgtShopPageVoList)); - } - - @RequestMapping(value = "/editShop", method = RequestMethod.POST) - @ApiOperation(value = "修改商户") - public R<Boolean> editShopStatus(Shop shop) { - return R.ok(shopService.updateById(shop)); - } -} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffShopController.java new file mode 100644 index 0000000..3e9330d --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffShopController.java @@ -0,0 +1,115 @@ +package com.ruoyi.shop.controller.staff; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.shop.domain.dto.StaffShopCCEditDto; +import com.ruoyi.shop.domain.dto.StaffShopECEditDto; +import com.ruoyi.shop.domain.dto.StaffShopEstimateEditDto; +import com.ruoyi.shop.domain.dto.StaffShopPageDto; +import com.ruoyi.shop.domain.vo.StaffHomeShopTotalVo; +import com.ruoyi.shop.domain.vo.StaffShopInfoGetVo; +import com.ruoyi.shop.domain.vo.StaffShopPageVo; +import com.ruoyi.shop.domain.vo.StaffShopSimpleTotalVo; +import com.ruoyi.shop.service.shop.ShopService; +import com.ruoyi.system.api.domain.dto.StaffBaseGetDto; +import com.ruoyi.system.api.service.RemoteSysStaffService; +import com.ruoyi.system.api.service.RemoteUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + + +@Api(value = "员工端商户接口", tags = "员工端商户接口", description = "员工端商户接口") +@RestController +@RequestMapping("/staff/shop") +public class StaffShopController { + + @Resource + private ShopService shopService; + @Resource + private RemoteUserService sysUserService; + @Resource + private RemoteSysStaffService remoteSysStaffService; + + /** + * 未完成实际统计 + * @return + */ + @RequestMapping(value = "/getStaffHomeTotal", method = RequestMethod.POST) + @ApiOperation(value = "获取员工端商铺统计(首页)") + public R<StaffHomeShopTotalVo> getStaffHomeTotal() { + Long userId = SecurityUtils.getUserId(); + StaffHomeShopTotalVo staffHomeShopTotalVo = shopService.getStaffHomeTotal(userId); + return R.ok(staffHomeShopTotalVo); + } + + @RequestMapping(value = "/listStaffShop", method = RequestMethod.POST) + @ApiOperation(value = "分页获取员工端商户列表") + public R<Page<StaffShopPageVo>> listStaffShop(@RequestBody StaffShopPageDto staffShopPageDto) { + Long userId = SecurityUtils.getUserId(); + if (remoteSysStaffService.isLeader()) { + List<Long> userIds = sysUserService.getUserIdsByDept(userId).getData(); + userIds.add(userId); + staffShopPageDto.setUserIdList(userIds); + } else { + staffShopPageDto.setBelongUserId(userId); + } + Page<StaffShopPageVo> page = new Page<>(); + page.setSize(staffShopPageDto.getPageSize()); + page.setCurrent(staffShopPageDto.getPageNum()); + List<StaffShopPageVo> staffShopPageVoList = shopService.pageStaffShop(page,staffShopPageDto); + return R.ok(page.setRecords(staffShopPageVoList)); + } + + @RequestMapping(value = "/getStaffSimpleTotal", method = RequestMethod.POST) + @ApiOperation(value = "获取员工端商铺数量统计") + public R<StaffShopSimpleTotalVo> getStaffSimpleTotal() { + Long userId = SecurityUtils.getUserId(); + StaffShopSimpleTotalVo staffShopSimpleTotalVo = shopService.getStaffSimpleTotal(userId); + return R.ok(staffShopSimpleTotalVo); + } + + @RequestMapping(value = "/getStaffShopInfo", method = RequestMethod.POST) + @ApiOperation(value = "获取员工端商户信息") + public R<StaffShopInfoGetVo> getStaffShopInfo(@RequestBody StaffBaseGetDto staffBaseGetDto) { + Long userId = SecurityUtils.getUserId(); + StaffShopInfoGetVo staffShopInfoGetVo = shopService.getStaffShopInfo(Long.valueOf(staffBaseGetDto.getId())); + return R.ok(staffShopInfoGetVo); + } + + @RequestMapping(value = "/editShopEstimate", method = RequestMethod.POST) + @ApiOperation(value = "修改店铺评估") + public R editShopEstimate(@RequestBody StaffShopEstimateEditDto staffShopEstimateEditDto) { + Long userId = SecurityUtils.getUserId(); + staffShopEstimateEditDto.setUserId(userId); + shopService.editShopEstimate(staffShopEstimateEditDto); + return R.ok(); + } + + @RequestMapping(value = "/editExtendContacts", method = RequestMethod.POST) + @ApiOperation(value = "修改店铺扩展联系人") + public R editExtendContacts(@RequestBody StaffShopECEditDto staffShopECEditDto) { + Long userId = SecurityUtils.getUserId(); + staffShopECEditDto.setUserId(userId); + shopService.editExtendContacts(staffShopECEditDto); + return R.ok(); + } + + @RequestMapping(value = "/editShopCustomStatus", method = RequestMethod.POST) + @ApiOperation(value = "修改店铺状态") + public R editShopCustomStatus(@RequestBody StaffShopCCEditDto staffShopCCEditDto) { + Long userId = SecurityUtils.getUserId(); + staffShopCCEditDto.setUserId(userId); + shopService.editShopCustomStatus(staffShopCCEditDto); + return R.ok(); + } + + +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffTaskController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffTaskController.java new file mode 100644 index 0000000..295168d --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffTaskController.java @@ -0,0 +1,106 @@ +package com.ruoyi.shop.controller.staff; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.shop.domain.dto.StaffAddTaskDto; +import com.ruoyi.shop.domain.dto.StaffAgencyPageDto; +import com.ruoyi.shop.domain.dto.StaffShopTaskPageDto; +import com.ruoyi.shop.domain.vo.StaffAgencyTaskRecordPageVo; +import com.ruoyi.shop.domain.vo.StaffMyShopTaskRecordPageVo; +import com.ruoyi.shop.domain.vo.StaffShopTaskPageVo; +import com.ruoyi.shop.service.task.AgencyTaskRecordService; +import com.ruoyi.shop.service.task.ShopTaskRecordService; +import com.ruoyi.shop.service.task.ShopTaskService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @ClassName StaffTaskController + * @Description TODO + * @Author jqs + * @Date 2023/7/14 18:57 + * @Version 1.0 + */ +@Api(value = "员工端任务接口", tags = "员工端任务接口", description = "员工端任务接口") +@RestController +@RequestMapping("/staff/task") +public class StaffTaskController { + + + @Resource + private AgencyTaskRecordService agencyTaskRecordService; + + @Resource + private ShopTaskRecordService shopTaskRecordService; + + @Resource + private ShopTaskService shopTaskService; + + + @RequestMapping(value = "/pageStaffAgencyTaskRecord", method = RequestMethod.POST) + @ApiOperation(value = "员工端分页获取经销商跟进任务记录列表") + public R<Page<StaffAgencyTaskRecordPageVo>> pageStaffAgencyTaskRecord(@RequestBody StaffAgencyPageDto staffAgencyPageDto) { + Long userId = SecurityUtils.getUserId(); + staffAgencyPageDto.setUserId(userId); + Page<StaffAgencyTaskRecordPageVo> page = new Page<>(); + page.setSize(staffAgencyPageDto.getPageSize()); + page.setCurrent(staffAgencyPageDto.getPageNum()); + List<StaffAgencyTaskRecordPageVo> agencyTaskRecordPageVoList = agencyTaskRecordService.pageStaffAgencyTaskRecord(page,staffAgencyPageDto); + return R.ok(page.setRecords(agencyTaskRecordPageVoList)); + } + + + @RequestMapping(value = "/pageStaffMyShopTaskRecord", method = RequestMethod.POST) + @ApiOperation(value = "员工端分页获取我的跟进任务记录列表") + public R<Page<StaffMyShopTaskRecordPageVo>> pageStaffMyShopTaskRecord(@RequestBody StaffShopTaskPageDto staffShopTaskPageDto){ + Long userId = SecurityUtils.getUserId(); + staffShopTaskPageDto.setUserId(userId); + Page<StaffMyShopTaskRecordPageVo> page = new Page<>(); + page.setSize(staffShopTaskPageDto.getPageSize()); + page.setCurrent(staffShopTaskPageDto.getPageNum()); + List<StaffMyShopTaskRecordPageVo> myShopTaskRecordPageVoList= shopTaskRecordService.pageStaffMyShopTaskRecord(page,staffShopTaskPageDto); + return R.ok(page.setRecords(myShopTaskRecordPageVoList)); + } + + @RequestMapping(value = "/pageStaffShopTaskRecord", method = RequestMethod.POST) + @ApiOperation(value = "员工端分页获取商户跟进任务记录列表") + public R<Page<StaffMyShopTaskRecordPageVo>> pageStaffShopTaskRecord(@RequestBody StaffShopTaskPageDto staffShopTaskPageDto){ + Long userId = SecurityUtils.getUserId(); + staffShopTaskPageDto.setUserId(userId); + Page<StaffMyShopTaskRecordPageVo> page = new Page<>(); + page.setSize(staffShopTaskPageDto.getPageSize()); + page.setCurrent(staffShopTaskPageDto.getPageNum()); + List<StaffMyShopTaskRecordPageVo> myShopTaskRecordPageVoList= shopTaskRecordService.pageStaffShopTaskRecord(page,staffShopTaskPageDto); + return R.ok(page.setRecords(myShopTaskRecordPageVoList)); + } + + @RequestMapping(value = "/pageStaffShopTask", method = RequestMethod.POST) + @ApiOperation(value = "员工端分页获取跟进任务列表") + public R<Page<StaffShopTaskPageVo>> pageStaffShopTask(@RequestBody StaffShopTaskPageDto staffShopTaskPageDto){ + Long userId = SecurityUtils.getUserId(); + staffShopTaskPageDto.setUserId(userId); + Page<StaffShopTaskPageVo> page = new Page<>(); + page.setSize(staffShopTaskPageDto.getPageSize()); + page.setCurrent(staffShopTaskPageDto.getPageNum()); + List<StaffShopTaskPageVo> shopTaskPageVoList= shopTaskService.pageStaffShopTask(page,staffShopTaskPageDto); + return R.ok(page.setRecords(shopTaskPageVoList)); + } + + @RequestMapping(value = "/staffAddTask", method = RequestMethod.POST) + @ApiOperation(value = "新建任务") + public R staffAddTask(@RequestBody StaffAddTaskDto staffAddTaskDto) { + Long userId = SecurityUtils.getUserId(); + staffAddTaskDto.setUserId(userId); + shopTaskService.staffAddTask(staffAddTaskDto); + return R.ok(); + } + +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtFrozenShopDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtFrozenShopDto.java new file mode 100644 index 0000000..23630c0 --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtFrozenShopDto.java @@ -0,0 +1,22 @@ +package com.ruoyi.shop.domain.dto; + +import com.ruoyi.system.api.domain.dto.MgtBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName MgtFrozenShopDto + * @Description TODO + * @Author jqs + * @Date 2023/7/15 13:51 + * @Version 1.0 + */ +@Data +public class MgtFrozenShopDto extends MgtBaseDto { + + @ApiModelProperty(value = "商户id") + private Long shopId; + + @ApiModelProperty(value="冻结状态0解冻1冻结") + private Integer frozenFlag; +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java index e6ab8b7..8638fe9 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java @@ -4,8 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.List; - /** * @author jqs34 * @ClassName MgtShopPageDto @@ -94,6 +92,4 @@ @ApiModelProperty(value = "商铺id") private Integer shopId; - @ApiModelProperty(value = "多个用户的id") - private List<Long> ids; } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffAddTaskDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffAddTaskDto.java new file mode 100644 index 0000000..d6cf932 --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffAddTaskDto.java @@ -0,0 +1,29 @@ +package com.ruoyi.shop.domain.dto; + +import com.ruoyi.system.api.domain.dto.StaffBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName StaffAddTaskDto + * @Description TODO + * @Author jqs + * @Date 2023/7/15 18:06 + * @Version 1.0 + */ +@Data +public class StaffAddTaskDto extends StaffBaseDto { + + @ApiModelProperty(value="任务时间") + private Long shopId; + + @ApiModelProperty(value="任务时间") + private String taskDate; + + @ApiModelProperty(value="任务标题") + private String taskTitle; + + @ApiModelProperty(value="紧急程度") + private String emergencyState; + +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffAgencyPageDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffAgencyPageDto.java new file mode 100644 index 0000000..d9b3e47 --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffAgencyPageDto.java @@ -0,0 +1,19 @@ +package com.ruoyi.shop.domain.dto; + +import com.ruoyi.system.api.domain.dto.StaffPageDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName StaffAgencyPageDto + * @Description TODO + * @Author jqs + * @Date 2023/7/14 19:17 + * @Version 1.0 + */ +@Data +public class StaffAgencyPageDto extends StaffPageDto { + + @ApiModelProperty(value = "代理商id") + private Long agencyId; +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopCCEditDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopCCEditDto.java new file mode 100644 index 0000000..4c70d6d --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopCCEditDto.java @@ -0,0 +1,23 @@ +package com.ruoyi.shop.domain.dto; + +import com.ruoyi.system.api.domain.dto.StaffBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName StaffShopCCEditDto + * @Description TODO + * @Author jqs + * @Date 2023/7/15 11:38 + * @Version 1.0 + */ +@Data +public class StaffShopCCEditDto extends StaffBaseDto { + + @ApiModelProperty(value = "商户id") + private Long shopId; + + @ApiModelProperty(value = "店铺设置状态") + private String shopCustomStatus; + +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopECEditDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopECEditDto.java new file mode 100644 index 0000000..bea5d08 --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopECEditDto.java @@ -0,0 +1,26 @@ +package com.ruoyi.shop.domain.dto; + +import com.ruoyi.shop.domain.vo.ExtendContactsVo; +import com.ruoyi.system.api.domain.dto.StaffBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName ShopExtendContactsEditDto + * @Description TODO + * @Author jqs + * @Date 2023/7/15 11:03 + * @Version 1.0 + */ +@Data +public class StaffShopECEditDto extends StaffBaseDto { + + @ApiModelProperty(value = "商户id") + private Long shopId; + + @ApiModelProperty(value="额外联系人") + private List<ExtendContactsVo> extendContactsVoList; + +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopEstimateEditDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopEstimateEditDto.java new file mode 100644 index 0000000..2d25731 --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopEstimateEditDto.java @@ -0,0 +1,47 @@ +package com.ruoyi.shop.domain.dto; + +import com.ruoyi.system.api.domain.dto.StaffBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName StaffShopEstimateEditDto + * @Description TODO + * @Author jqs + * @Date 2023/7/15 10:17 + * @Version 1.0 + */ +@Data +public class StaffShopEstimateEditDto extends StaffBaseDto { + + @ApiModelProperty(value = "商户id") + private Long shopId; + + @ApiModelProperty(value="扶持能力1.有2.没有") + private Integer supportingCapacityFlag; + + @ApiModelProperty(value="店面操作人数1.1人2.1人以上") + private Integer operationPersonFlag; + + @ApiModelProperty(value="执行力1.强2.弱") + private Integer executiveForceFlag; + + @ApiModelProperty(value="格局1.大2.小") + private Integer patternFlag; + + @ApiModelProperty(value="人脉1.宽2.窄") + private Integer connectionFlag; + + @ApiModelProperty(value="经济能力1.强2.差") + private Integer economicAbilityFlag; + + @ApiModelProperty(value="与合作商关系1.好2.差") + private Integer relationPartner; + + @ApiModelProperty(value="曾从事事业") + private String businessHistory; + + + + +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopPageDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopPageDto.java index a197112..5feb091 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopPageDto.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopPageDto.java @@ -17,9 +17,11 @@ @ApiModelProperty(value = "商户类型1经销商2代理商") private Integer shopType; - //合作商状态 + @ApiModelProperty(value = "店铺设置状态") + private String shopCustomStatus; - //合作商等级 + @ApiModelProperty(value = "店铺等级") + private String shopLevel; @ApiModelProperty(value = "归属员工") private Long belongUserId; @@ -30,20 +32,8 @@ @ApiModelProperty(value = "签约结束时间") private String signEndTime; - @ApiModelProperty(value = "签约区域code") - private String signAreaCode; - @ApiModelProperty(value = "推荐人") private String recommendPerson; - - @ApiModelProperty(value = "店铺地址省code") - private String shopProvinceCode; - - @ApiModelProperty(value = "店铺地址市code") - private String shopCityCode; - - @ApiModelProperty(value = "店铺地址区code") - private String shopAreaCode; @ApiModelProperty(value = "签约省code") private String signProvinceCode; @@ -51,19 +41,25 @@ @ApiModelProperty(value = "签约市code") private String signCityCode; - @ApiModelProperty(value = "商户状态0冻结1正常2终止合作") - private Integer shopStatus; + @ApiModelProperty(value = "扶持能力1.有2.没有") + private Integer supportingCapacityFlag; -// @ApiModelProperty(value = "来源渠道") -// private String shopSource; -// -// @ApiModelProperty(value = "店铺设置状态") -// private String shopCustomStatus; -// -// @ApiModelProperty(value = "到期标记") -// private Integer expireFlag; -// -// @ApiModelProperty(value = "商户标签 多个,隔开") -// private String shopTags; + @ApiModelProperty(value = "店面操作人数1.1人2.1人以上") + private Integer operationPersonFlag; + + @ApiModelProperty(value = "执行力1.强2.弱") + private Integer executiveForceFlag; + + @ApiModelProperty(value = "格局1.大2.小") + private Integer patternFlag; + + @ApiModelProperty(value = "人脉1.宽2.窄") + private Integer connectionFlag; + + @ApiModelProperty(value = "经济能力1.强2.差") + private Integer economicAbilityFlag; + + @ApiModelProperty(value = "与合作商关系1.好2.差") + private Integer relationPartner; } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopTaskPageDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopTaskPageDto.java new file mode 100644 index 0000000..9a6ecdc --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopTaskPageDto.java @@ -0,0 +1,22 @@ +package com.ruoyi.shop.domain.dto; + +import com.ruoyi.system.api.domain.dto.StaffPageDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName StaffShopTaskPageDto + * @Description TODO + * @Author jqs + * @Date 2023/7/14 19:37 + * @Version 1.0 + */ +@Data +public class StaffShopTaskPageDto extends StaffPageDto { + + @ApiModelProperty(value = "代理商id") + private Long shopId; + + @ApiModelProperty(value = "任务状态0未开始1待处理2已处理3已过期") + private Integer taskStatus; +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/task/ShopTaskRecord.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/task/ShopTaskRecord.java index 317f30b..0be86fd 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/task/ShopTaskRecord.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/task/ShopTaskRecord.java @@ -1,16 +1,16 @@ package com.ruoyi.shop.domain.pojo.task; -import com.baomidou.mybatisplus.annotation.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; /** * <p> @@ -72,6 +72,8 @@ @TableField("create_time") private Date createTime; + @TableField("custom_follow_type") + private String customFollowType; @Override protected Serializable pkVal() { diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/ExtendContactsVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/ExtendContactsVo.java new file mode 100644 index 0000000..6eea970 --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/ExtendContactsVo.java @@ -0,0 +1,22 @@ +package com.ruoyi.shop.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName ExtendContactsVo + * @Description TODO + * @Author jqs + * @Date 2023/7/15 10:48 + * @Version 1.0 + */ +@Data +public class ExtendContactsVo { + + @ApiModelProperty(value="联系人姓名") + private String name; + + @ApiModelProperty(value="联系人电话") + private String phone; + +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java index 0b10ac0..cbbe8b3 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java @@ -92,4 +92,10 @@ @Excel(name = "店铺设置状态", width = 30) @ApiModelProperty(value="店铺设置状态") private String shopCustomStatus; + + @ApiModelProperty(value="冻结状态0解冻1冻结") + private Integer frozenFlag; + + @ApiModelProperty(value="合作状态0终止1开启") + private Integer cooperativeFlag; } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffAgencyTaskRecordPageVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffAgencyTaskRecordPageVo.java new file mode 100644 index 0000000..f259404 --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffAgencyTaskRecordPageVo.java @@ -0,0 +1,60 @@ +package com.ruoyi.shop.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @ClassName StaffAgencyTaskRecordPageVo + * @Description TODO + * @Author jqs + * @Date 2023/7/14 19:15 + * @Version 1.0 + */ +@Data +public class StaffAgencyTaskRecordPageVo { + + @ApiModelProperty(value = "用户id") + private Long userId; + + @ApiModelProperty(value = "用户名称") + private String userName; + + @ApiModelProperty(value = "用户头像") + private String userPicture; + + @ApiModelProperty(value = "跟进id") + private Long followId; + + @ApiModelProperty(value = "任务id") + private String taskId; + + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty(value="跟踪类型1电话2手动") + private Integer followType; + + @ApiModelProperty(value="电话时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date callTime; + + @ApiModelProperty(value="跟踪内容") + private String followContent; + + @ApiModelProperty(value="拨打电话") + private String callPhone; + + @ApiModelProperty(value="跟进图片地址") + private List<String> picture; + + @ApiModelProperty(value="跟进视频地址") + private List<String> video; + + @ApiModelProperty(value="跟进音频地址") + private List<String> audio; +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffHomeShopTotalVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffHomeShopTotalVo.java new file mode 100644 index 0000000..990a7ef --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffHomeShopTotalVo.java @@ -0,0 +1,33 @@ +package com.ruoyi.shop.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName StaffHomeShopTotalVo + * @Description TODO + * @Author jqs + * @Date 2023/7/14 17:06 + * @Version 1.0 + */ +@Data +public class StaffHomeShopTotalVo { + + @ApiModelProperty(value = "待跟进客户") + private Integer followMember; + + @ApiModelProperty(value = "新增客户") + private Integer newMember; + + @ApiModelProperty(value = "合作商跟进任务") + private Integer shopTask; + + @ApiModelProperty(value = "合作商总数") + private Integer shopTotal; + + @ApiModelProperty(value = "代理商数") + private Integer agencyTotal; + + @ApiModelProperty(value = "经销商数") + private Integer dealerTotal; +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffMyShopTaskRecordPageVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffMyShopTaskRecordPageVo.java new file mode 100644 index 0000000..7245b26 --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffMyShopTaskRecordPageVo.java @@ -0,0 +1,65 @@ +package com.ruoyi.shop.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @ClassName StaffMyShopTaskRecordPageVo + * @Description TODO + * @Author jqs + * @Date 2023/7/14 19:34 + * @Version 1.0 + */ +@Data +public class StaffMyShopTaskRecordPageVo { + + @ApiModelProperty(value = "用户id") + private Long userId; + + @ApiModelProperty(value = "用户名称") + private String userName; + + @ApiModelProperty(value = "用户头像") + private String userPicture; + + @ApiModelProperty(value = "跟进id") + private Long followId; + + @ApiModelProperty(value = "任务id") + private String taskId; + + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty(value="跟踪类型1电话2手动") + private String followType; + + @ApiModelProperty(value="跟进类型") + private String customFollowType; + + @ApiModelProperty(value="电话时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date callTime; + + @ApiModelProperty(value="跟踪内容") + private String followContent; + + @ApiModelProperty(value="拨打电话") + private String callPhone; + + @ApiModelProperty(value="跟进图片地址") + private List<String> picture; + + @ApiModelProperty(value="跟进视频地址") + private List<String> video; + + @ApiModelProperty(value="跟进音频地址") + private List<String> audio; + + +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java new file mode 100644 index 0000000..337dd95 --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java @@ -0,0 +1,103 @@ +package com.ruoyi.shop.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @ClassName StaffShopInfoGetVo + * @Description TODO + * @Author jqs + * @Date 2023/7/14 16:47 + * @Version 1.0 + */ +@Data +public class StaffShopInfoGetVo { + + + @ApiModelProperty(value = "今日预约") + private Integer todayReservation; + + @ApiModelProperty(value = "待处理订单") + private Integer unHandleOrder; + + @ApiModelProperty(value = "合作商跟进任务") + private Integer shopTask; + + @ApiModelProperty(value = "店铺营业额") + private BigDecimal shopTurnover; + + @ApiModelProperty(value = "剩余周期人数") + private Integer cycleSurp; + + @ApiModelProperty(value = "剩余体验人数") + private Integer explorationSurp; + + @ApiModelProperty(value = "区域会员新增") + private Integer newAreaMember; + + @ApiModelProperty(value = "区域营业额") + private BigDecimal areaTurnover; + + @ApiModelProperty(value = "商户id") + private Long shopId; + + @ApiModelProperty(value="商户名称") + private String shopName; + + @ApiModelProperty(value="商户封面") + private String shopPicture; + + @ApiModelProperty(value="营业开始时间") + private String businessStartTime; + + @ApiModelProperty(value="营业结束时间") + private String businessEndTime; + + @ApiModelProperty(value="店主姓名") + private String shopownerName; + + @ApiModelProperty(value="店主联系方式") + private String shopownerPhone; + + @ApiModelProperty(value="额外联系人") + private List<ExtendContactsVo> extendContactsVoList; + + @ApiModelProperty(value="店铺地址") + private String shopAddress; + + @ApiModelProperty(value = "店铺设置状态") + private String shopCustomStatus; + + @ApiModelProperty(value="商户标签") + private String shopTags; + + @ApiModelProperty(value="扶持能力1.有2.没有") + private Integer supportingCapacityFlag; + + @ApiModelProperty(value="店面操作人数1.1人2.1人以上") + private Integer operationPersonFlag; + + @ApiModelProperty(value="执行力1.强2.弱") + private Integer executiveForceFlag; + + @ApiModelProperty(value="格局1.大2.小") + private Integer patternFlag; + + @ApiModelProperty(value="人脉1.宽2.窄") + private Integer connectionFlag; + + @ApiModelProperty(value="经济能力1.强2.差") + private Integer economicAbilityFlag; + + @ApiModelProperty(value="与合作商关系1.好2.差") + private Integer relationPartner; + + @ApiModelProperty(value="曾从事事业") + private String businessHistory; + + @ApiModelProperty(value="冻结状态0解冻1冻结") + private Integer frozenFlag; +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoVo.java deleted file mode 100644 index 539f4e2..0000000 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoVo.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.ruoyi.shop.domain.vo; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.util.Date; - -@Data -public class StaffShopInfoVo { - @ApiModelProperty(value = "商户id") - private Long shopId; - - @ApiModelProperty(value="商户名称") - private String shopName; - - @ApiModelProperty(value="店铺区域全称") - private String shopAreaName; - - @ApiModelProperty(value="店铺详细地址") - private String shopAddress; - - @ApiModelProperty(value="店主姓名") - private String shopownerName; - - @ApiModelProperty(value="联系电话") - private String shopownerPhone; - - @ApiModelProperty(value="合作期限") - private Date cooperationEndTime; - - @ApiModelProperty(value="所属经销商") - private String belongShopName; -} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopPageVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopPageVo.java new file mode 100644 index 0000000..d2df932 --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopPageVo.java @@ -0,0 +1,42 @@ +package com.ruoyi.shop.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName StaffShopPageVo + * @Description TODO + * @Author jqs + * @Date 2023/7/14 15:12 + * @Version 1.0 + */ +@Data +public class StaffShopPageVo { + + @ApiModelProperty(value = "商户id") + private Long shopId; + + @ApiModelProperty(value="商户名称") + private String shopName; + + @ApiModelProperty(value="店铺地址") + private String shopAddress; + + @ApiModelProperty(value="店主姓名") + private String shopownerName; + + @ApiModelProperty(value="店主联系方式") + private String shopownerPhone; + + @ApiModelProperty(value="合作期限") + private String cooperationTime; + + @ApiModelProperty(value="商户封面") + private String shopPicture; + + @ApiModelProperty(value="所属经销商") + private String belongShopName; + + @ApiModelProperty(value="商户状态") + private Integer shopStatus; +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java new file mode 100644 index 0000000..81047bd --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java @@ -0,0 +1,24 @@ +package com.ruoyi.shop.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName StaffShopSimpleTotalVo + * @Description TODO + * @Author jqs + * @Date 2023/7/14 15:49 + * @Version 1.0 + */ +@Data +public class StaffShopSimpleTotalVo { + + @ApiModelProperty(value = "总数") + private Integer shopTotal; + + @ApiModelProperty(value = "准店铺") + private Integer closeTotal; + + @ApiModelProperty(value = "开业中") + private Integer openTotal; +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopTaskPageVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopTaskPageVo.java new file mode 100644 index 0000000..708da88 --- /dev/null +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopTaskPageVo.java @@ -0,0 +1,46 @@ +package com.ruoyi.shop.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @ClassName StaffShopTaskPageVo + * @Description TODO + * @Author jqs + * @Date 2023/7/15 14:44 + * @Version 1.0 + */ +@Data +public class StaffShopTaskPageVo { + + @ApiModelProperty(value = "任务id") + private String taskId; + + @ApiModelProperty(value = "任务时间") + private String taskDate; + + @ApiModelProperty(value="任务内容") + private String taskContent; + + @ApiModelProperty(value="紧急情况") + private String emergencyState; + + @ApiModelProperty(value="今日标记") + private Integer todayFlag; + + @ApiModelProperty(value = "用户id") + private Long userId; + + @ApiModelProperty(value = "用户名称") + private String userName; + + @ApiModelProperty(value = "用户头像") + private String userPicture; + + @ApiModelProperty(value="跟进时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date followTime; +} diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java index 8f3a7af..2ccd4a4 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java @@ -23,6 +23,15 @@ * @since 2023-04-25 */ public interface ShopMapper extends BaseMapper<Shop> { + + /** + * @description + * @author jqs + * @date 2023/7/15 10:39 + * @param shop + * @return int + */ + int updateShop(Shop shop); /** * 分页获取商户 * @param page @@ -192,4 +201,41 @@ * @return List<MgtMapIntTotalVo> */ List<MgtMapIntTotalVo> listShopRecommendRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); + + /** + * @description 员工端获取商户列表 + * @author jqs + * @date 2023/7/14 15:26 + * @param page + * @param staffShopPageDto + * @return List<StaffShopPageVo> + */ + List<StaffShopPageVo> pageStaffShop(Page page, @Param("param")StaffShopPageDto staffShopPageDto); + + /** + * @description 获取员工端商户数量统计 + * @author jqs + * @date 2023/7/14 15:51 + * @param userIdList + * @return StaffShopSimpleTotalVo + */ + StaffShopSimpleTotalVo getStaffSimpleTotal(@Param("userIdList")List<Long> userIdList); + + /** + * @description 获取员工端商户数量统计 + * @author jqs + * @date 2023/7/14 18:18 + * @param userIdList + * @return StaffHomeShopTotalVo + */ + StaffHomeShopTotalVo getStaffHomeTotal(@Param("userIdList")List<Long> userIdList); + + /** + * @description 更新扩展联系人 + * @author jqs + * @date 2023/7/15 11:12 + * @param shop + * @return void + */ + void updateExtendContacts(Shop shop); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/AgencyTaskRecordMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/AgencyTaskRecordMapper.java index 188fedc..913d487 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/AgencyTaskRecordMapper.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/AgencyTaskRecordMapper.java @@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.shop.domain.dto.MerAgencyTaskPageDto; import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; +import com.ruoyi.shop.domain.dto.StaffAgencyPageDto; import com.ruoyi.shop.domain.pojo.task.AgencyTaskRecord; import com.ruoyi.shop.domain.vo.MerAgencyTaskRecordPageVo; import com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo; +import com.ruoyi.shop.domain.vo.StaffAgencyTaskRecordPageVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -34,4 +36,16 @@ * @return */ List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(@Param("param")MgtShopTaskPageDto mgtShopTaskPageDto); + + /** + * @description 员工端分页获取经销商跟进任务记录列表 + * @author jqs + * @date 2023/7/14 19:24 + * @param page + * @param staffAgencyPageDto + * @return List<StaffAgencyTaskRecordPageVo> + */ + List<StaffAgencyTaskRecordPageVo> pageStaffAgencyTaskRecord(Page page, @Param("param")StaffAgencyPageDto staffAgencyPageDto); + + } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java index 4229f77..b74bd7a 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java @@ -30,7 +30,7 @@ /** - * @description 获取进行中任务数 + * @description 商户端获取进行中任务数 * @author jqs * @date 2023/6/26 13:45 * @param shopId @@ -48,5 +48,5 @@ */ MemberTaskSimpleVo getLastMemberTask(@Param("userId")Long userId); - Integer getMembersIngTotal(List<Long> shopIds); + } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskMapper.java index a79ab8e..eede950 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskMapper.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskMapper.java @@ -1,10 +1,10 @@ package com.ruoyi.shop.mapper.task; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; -import com.ruoyi.shop.domain.pojo.task.ShopTask; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.shop.domain.dto.StaffShopTaskPageDto; +import com.ruoyi.shop.domain.pojo.task.ShopTask; +import com.ruoyi.shop.domain.vo.StaffShopTaskPageVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -19,5 +19,22 @@ */ public interface ShopTaskMapper extends BaseMapper<ShopTask> { + /** + * @description 员工端获取进行中商户任务数 + * @author jqs + * @param shopIds + * @return Integer + */ + Integer getShopIngTotal(@Param("shopIds") List<Long> shopIds); + + /** + * @description 分页获取员工跟进任务 + * @author jqs + * @date 2023/7/15 15:09 + * @param page + * @param staffShopTaskPageDto + * @return List<StaffShopTaskPageVo> + */ + List<StaffShopTaskPageVo> pageStaffShopTask(Page page, @Param("param")StaffShopTaskPageDto staffShopTaskPageDto); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskRecordMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskRecordMapper.java index ad221a9..0bc7bdc 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskRecordMapper.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskRecordMapper.java @@ -1,9 +1,12 @@ package com.ruoyi.shop.mapper.task; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; +import com.ruoyi.shop.domain.dto.StaffShopTaskPageDto; import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord; import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo; +import com.ruoyi.shop.domain.vo.StaffMyShopTaskRecordPageVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -24,4 +27,24 @@ * @return */ List<MgtShopTaskRecordPageVo> pageMgtShopFollow(@Param("param") MgtShopTaskPageDto mgtShopTaskPageDto); + + /** + * @description 员工端分页获取我的跟进任务记录列表 + * @author jqs + * @date 2023/7/14 19:40 + * @param page + * @param staffShopTaskPageDto + * @return List<StaffMyShopTaskRecordPageVo> + */ + List<StaffMyShopTaskRecordPageVo> pageStaffMyShopTaskRecord(Page page, @Param("param")StaffShopTaskPageDto staffShopTaskPageDto); + + /** + * @description 员工端分页获取商户跟进任务记录列表 + * @author jqs + * @date 2023/7/15 17:05 + * @param page + * @param staffShopTaskPageDto + * @return List<StaffMyShopTaskRecordPageVo> + */ + List<StaffMyShopTaskRecordPageVo> pageStaffShopTaskRecord(Page page, @Param("param")StaffShopTaskPageDto staffShopTaskPageDto); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java index e268b21..1eb0023 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.shop.service.impl.shop; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -18,6 +19,7 @@ import com.ruoyi.shop.service.shop.*; import com.ruoyi.shop.service.task.MemberTaskService; import com.ruoyi.shop.service.task.ShopFileService; +import com.ruoyi.shop.service.task.ShopTaskService; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.poji.config.SysTag; @@ -99,10 +101,10 @@ private ShopTransferRecordService shopTransferRecordService; @Resource - private RemoteUserService remoteUserService; + private RemoteSysStaffService remoteSysStaffService; @Resource - private RemoteSysStaffService remoteSysStaffService; + private ShopTaskService shopTaskService; /** * 获取商户详情 @@ -200,6 +202,7 @@ shop.setCreateUserId(mgtEditShopDto.getUserId()); shop.setFrozenFlag(0); shop.setCooperativeFlag(0); + shop.setAuthFlag(0); newShop = true; } BeanUtils.copyProperties(mgtEditShopDto,shop); @@ -380,18 +383,55 @@ throw new ServiceException(AppErrorConstant.COOPERATION_TIME_ERROR); }*/ shop.setCooperativeFlag(1); - if(shop.getShopStatus()==2&&shop.getFrozenFlag()==0){ - shop.setShopStatus(1); - }else if(shop.getShopStatus()==2&&shop.getFrozenFlag()==1){ - shop.setShopStatus(0); - } }else{ shop.setCooperativeFlag(0); - shop.setShopStatus(2); } + shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag())); shop.setUpdateTime(new Date()); shop.setUpdateUserId(mgtTerminateCooperationDto.getUserId()); this.saveOrUpdate(shop); + } + + /** + * @description 冻结商户 + * @author jqs + * @date 2023/7/15 13:56 + * @param mgtFrozenShopDto + * @return void + */ + @Override + public void frozenMgtShop(MgtFrozenShopDto mgtFrozenShopDto){ + Shop shop = this.getById(mgtFrozenShopDto.getShopId()); + if(mgtFrozenShopDto.getFrozenFlag()==1){ + shop.setFrozenFlag(1); + }else{ + shop.setFrozenFlag(0); + } + shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag())); + } + + /** + * @description 处理商户状态 + * @author jqs + * @date 2023/7/15 14:09 + * @param + * @return Integer + */ + private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag){ + Integer shopStatus = 1; + if(frozenFlag == 1){ + shopStatus = 0; + return shopStatus; + } + if(authFlag == 0){ + shopStatus = 3; + return shopStatus; + } + if(cooperativeFlag == 0){ + shopStatus = 2; + return shopStatus; + } + return shopStatus; } @@ -670,37 +710,31 @@ * @return */ @Override - public MerHomeShopTotalVo getStaffHomeTotal(Long userId){ + public StaffHomeShopTotalVo getStaffHomeTotal(Long userId){ List<Long> userIds = null; List<Long> shopIds = null; //如果是leader 查询leader下面所有的员工下的所有shopId if(remoteSysStaffService.isLeader()){ - Long deptId = sysUserService.getSysUser(userId).getData().getDeptId(); - userIds = remoteSysStaffService.getUserIds(deptId).getData(); + userIds = sysUserService.getUserIdsByDept(userId).getData(); //根据用户所有id查询关联的商户id MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto(); mgtBasePlatformDto.setUserIdList(userIds); shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto); + Shop shop = this.getShopByBelongUserId(userId); + shopIds.add(shop.getShopId()); }else { //普通员工查询商户归属的shopId - MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); - mgtShopIdByCodeDto.setBelongUserId(userId); - shopIds = shopMapper.getShopIdByCode(mgtShopIdByCodeDto); + Shop shop = this.getShopByBelongUserId(userId); + shopIds.add(shop.getShopId()); } - //分别查询 - MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo(); - merHomeShopTotalVo.setShopIds(shopIds); - MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); - merHomeShopTotalVo.setTodayShop(null!=orderVo?orderVo.getTodayShop():0); - merHomeShopTotalVo.setUnHandleOrder(null!=orderVo?orderVo.getUnHandleOrder():0); - merHomeShopTotalVo.setShopTurnover(null!=orderVo?orderVo.getShopTurnover():BigDecimal.ZERO); - ShopTotal shopTotal = shopTotalService.shopsTotalByIds(shopIds); - merHomeShopTotalVo.setCycleSurp(null!=shopTotal?shopTotal.getUseableCyclePerson():0); - merHomeShopTotalVo.setExplorationSurp(null!=shopTotal?shopTotal.getUseableExperiencePerson():0); - Integer taskCount = memberTaskService.getMembersIngTotal(shopIds); - merHomeShopTotalVo.setTask(taskCount); - return merHomeShopTotalVo; - } + //分别查询 + StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(shopIds); + Integer shopTaskCount = shopTaskService.getShopIngTotal(shopIds); + staffHomeShopTotalVo.setFollowMember(0); + staffHomeShopTotalVo.setNewMember(0); + staffHomeShopTotalVo.setShopTask(shopTaskCount); + return staffHomeShopTotalVo; + } /** * 获取商户端 * @param userId @@ -1058,4 +1092,198 @@ }).collect(Collectors.toList()); return simpleShopVoList; } + + /** + * @description 获取用户管理商户 + * @author jqs + * @date 2023/7/14 10:00 + * @param userId + * @return Shop + */ + @Override + public Shop getShopByBelongUserId(Long userId){ + LambdaQueryWrapper<Shop> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Shop::getDelFlag,0); + queryWrapper.eq(Shop::getBelongUserId,userId); + return this.getOne(queryWrapper,false); + } + + /** + * @description 员工端获取商户列表 + * @author jqs + * @date 2023/7/14 15:26 + * @param page + * @param staffShopPageDto + * @return List<StaffShopPageVo> + */ + @Override + public List<StaffShopPageVo> pageStaffShop(Page page, StaffShopPageDto staffShopPageDto){ + List<StaffShopPageVo> staffShopPageVoList = shopMapper.pageStaffShop(page, staffShopPageDto); + return staffShopPageVoList; + } + + /** + * @description 获取员工端商户数量统计 + * @author jqs + * @date 2023/7/14 15:51 + * @param userId + * @return StaffShopSimpleTotalVo + */ + @Override + public StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId){ + List<Long> userIdList = null; + if(remoteSysStaffService.isLeader()){ + userIdList = sysUserService.getUserIdsByDept(userId).getData(); + userIdList.add(userId); + }else { + userIdList.add(userId); + } + return shopMapper.getStaffSimpleTotal(userIdList); + } + + /** + * @description 员工端获取商户详情 + * @author jqs + * @date 2023/7/14 18:32 + * @param shopId + * @return StaffShopInfoGetVo + */ + @Override + public StaffShopInfoGetVo getStaffShopInfo(Long shopId) { + // 创建员工商店信息对象 + StaffShopInfoGetVo staffShopInfoGetVo = new StaffShopInfoGetVo(); + // 通过商店ID获取商店信息 + Shop shop = this.getByShopId(shopId); + // 获取商店文件列表 + List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shopId); + // 初始化商店图片 + String shopPicture = null; + // 遍历商店文件列表,获取商店图片 + if (shopFileList != null && !shopFileList.isEmpty()) { + for (ShopFile shopFile : shopFileList) { + if (shopFile.getFileType() == 1) { + shopPicture = shopFile.getFileUrl(); + break; + } + } + } + // 创建商店总览对象,并设置商店ID + MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo(); + merHomeShopTotalVo.setShopId(shopId); + // 通过远程订单服务获取商店总览信息 + MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); + // 获取商店总计信息 + ShopTotal shopTotal = shopTotalService.getById(shopId); + // 获取商店任务计数 + Integer taskCount = memberTaskService.getMemberIngTotal(shopId); + // 设置员工商店信息对象的属性 + staffShopInfoGetVo.setTodayReservation(0); + staffShopInfoGetVo.setUnHandleOrder(orderVo.getUnHandleOrder()); + staffShopInfoGetVo.setShopTask(taskCount); + staffShopInfoGetVo.setShopTurnover(orderVo.getShopTurnover()); + staffShopInfoGetVo.setCycleSurp(shopTotal.getUseableCyclePerson()); + staffShopInfoGetVo.setExplorationSurp(shopTotal.getUseableExperiencePerson()); + staffShopInfoGetVo.setShopId(shopId); + staffShopInfoGetVo.setShopName(shop.getShopName()); + staffShopInfoGetVo.setShopPicture(shopPicture); + staffShopInfoGetVo.setBusinessStartTime(shop.getBusinessStartTime()); + staffShopInfoGetVo.setBusinessEndTime(shop.getBusinessEndTime()); + staffShopInfoGetVo.setShopownerName(shop.getShopownerName()); + staffShopInfoGetVo.setShopownerPhone(shop.getShopownerPhone()); + staffShopInfoGetVo.setShopAddress(shop.getShopAreaName() + shop.getShopAddress()); + staffShopInfoGetVo.setShopCustomStatus(shop.getShopCustomStatus()); + staffShopInfoGetVo.setShopTags(shop.getShopTags()); + staffShopInfoGetVo.setSupportingCapacityFlag(shop.getSupportingCapacityFlag()); + staffShopInfoGetVo.setOperationPersonFlag(shop.getOperationPersonFlag()); + staffShopInfoGetVo.setExecutiveForceFlag(shop.getExecutiveForceFlag()); + staffShopInfoGetVo.setPatternFlag(shop.getPatternFlag()); + staffShopInfoGetVo.setConnectionFlag(shop.getConnectionFlag()); + staffShopInfoGetVo.setEconomicAbilityFlag(shop.getEconomicAbilityFlag()); + staffShopInfoGetVo.setRelationPartner(shop.getRelationPartner()); + staffShopInfoGetVo.setBusinessHistory(shop.getBusinessHistory()); + staffShopInfoGetVo.setNewAreaMember(0); + staffShopInfoGetVo.setAreaTurnover(BigDecimal.ZERO); + staffShopInfoGetVo.setFrozenFlag(shop.getFrozenFlag()); + // 如果商店类型为1,则获取该商店ID列表的新区域成员和总订单金额 + if (shop.getShopType() == 1) { + List<Long> shopIdList = this.listShopIdByShopId(shop.getShopId()); + if (shopIdList != null && !shopIdList.isEmpty()) { + Integer count = remoteMemberService.getAreaNewMember(shopIdList).getData(); + staffShopInfoGetVo.setNewAreaMember(count); + ShopTotal shopTotalAll = shopTotalService.shopsTotalByIds(shopIdList); + staffShopInfoGetVo.setAreaTurnover(shopTotalAll.getTotalOrderMoney()); + } + } + // 如果商店的扩展联系方式不为空,则设置员工商店信息对象的扩展联系方式列表 + String extendContacts = shop.getExtendContacts(); + if (StringUtils.isNotBlank(extendContacts)) { + List<ExtendContactsVo> extendContactsVoList = JSON.parseArray(extendContacts, ExtendContactsVo.class); + staffShopInfoGetVo.setExtendContactsVoList(extendContactsVoList); + } + // 返回员工商店信息对象 + return staffShopInfoGetVo; + } + + /** + * @description 修改商户评估 + * @author jqs + * @date 2023/7/15 10:18 + * @param staffShopEstimateEditDto + * @return void + */ + @Override + public void editShopEstimate(StaffShopEstimateEditDto staffShopEstimateEditDto){ + Shop shop = new Shop(); + shop.setShopId(staffShopEstimateEditDto.getShopId()); + shop.setSupportingCapacityFlag(staffShopEstimateEditDto.getSupportingCapacityFlag()); + shop.setOperationPersonFlag(staffShopEstimateEditDto.getOperationPersonFlag()); + shop.setExecutiveForceFlag(staffShopEstimateEditDto.getExecutiveForceFlag()); + shop.setPatternFlag(staffShopEstimateEditDto.getPatternFlag()); + shop.setConnectionFlag(staffShopEstimateEditDto.getConnectionFlag()); + shop.setEconomicAbilityFlag(staffShopEstimateEditDto.getEconomicAbilityFlag()); + shop.setRelationPartner(staffShopEstimateEditDto.getRelationPartner()); + shop.setBusinessHistory(staffShopEstimateEditDto.getBusinessHistory()); + shop.setUpdateUserId(staffShopEstimateEditDto.getUserId()); + shop.setUpdateTime(new Date()); + shopMapper.updateShop(shop); + } + + /** + * @description 修改店铺扩展联系人 + * @author jqs + * @date 2023/7/15 11:06 + * @param staffShopECEditDto + * @return void + */ + @Override + public void editExtendContacts(StaffShopECEditDto staffShopECEditDto){ + Shop shop = new Shop(); + String extendContacts = null; + List<ExtendContactsVo> extendContactsVoList = staffShopECEditDto.getExtendContactsVoList(); + if(extendContactsVoList!=null&&!extendContactsVoList.isEmpty()){ + extendContacts = JSON.toJSONString(extendContactsVoList); + } + shop.setExtendContacts(extendContacts); + shop.setShopId(staffShopECEditDto.getShopId()); + shop.setUpdateUserId(staffShopECEditDto.getUserId()); + shop.setUpdateTime(new Date()); + shopMapper.updateExtendContacts(shop); + } + + /** + * @description 修改店铺状态 + * @author jqs + * @date 2023/7/15 11:51 + * @param staffShopCCEditDto + * @return void + */ + @Override + public void editShopCustomStatus(StaffShopCCEditDto staffShopCCEditDto){ + Shop shop = new Shop(); + shop.setShopCustomStatus(staffShopCCEditDto.getShopCustomStatus()); + shop.setShopId(staffShopCCEditDto.getShopId()); + shop.setUpdateUserId(staffShopCCEditDto.getUserId()); + shop.setUpdateTime(new Date()); + shopMapper.updateShop(shop); + } } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/AgencyTaskRecordServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/AgencyTaskRecordServiceImpl.java index e189c4a..5379e85 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/AgencyTaskRecordServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/AgencyTaskRecordServiceImpl.java @@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.shop.domain.dto.MerAgencyTaskPageDto; import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; +import com.ruoyi.shop.domain.dto.StaffAgencyPageDto; import com.ruoyi.shop.domain.pojo.task.AgencyTaskRecord; import com.ruoyi.shop.domain.pojo.task.TaskFile; import com.ruoyi.shop.domain.vo.MerAgencyTaskRecordPageVo; import com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo; +import com.ruoyi.shop.domain.vo.StaffAgencyTaskRecordPageVo; import com.ruoyi.shop.mapper.task.AgencyTaskRecordMapper; import com.ruoyi.shop.service.task.AgencyTaskRecordService; import com.ruoyi.shop.service.task.TaskFileService; @@ -121,4 +123,54 @@ } return mgtAgencyTaskRecordPageVoList; } + + /** + * @description 员工端分页获取经销商跟进任务记录列表 + * @author jqs + * @date 2023/7/14 19:24 + * @param page + * @param staffAgencyPageDto + * @return List<StaffAgencyTaskRecordPageVo> + */ + @Override + public List<StaffAgencyTaskRecordPageVo> pageStaffAgencyTaskRecord(Page page, StaffAgencyPageDto staffAgencyPageDto){ + List<StaffAgencyTaskRecordPageVo> agencyTaskRecordPageVoList = agencyTaskRecordMapper.pageStaffAgencyTaskRecord(page, staffAgencyPageDto); + if(agencyTaskRecordPageVoList!=null&&!agencyTaskRecordPageVoList.isEmpty()){ + Long followId; + List<TaskFile> taskFileList; + List<String> picture = new ArrayList<>(); + List<String> video = new ArrayList<>(); + List<String> audio = new ArrayList<>(); + Long userId; + SysUser sysUser; + for(StaffAgencyTaskRecordPageVo staffAgencyTaskRecordPageVo : agencyTaskRecordPageVoList){ + //获取任务用户信息 + userId = staffAgencyTaskRecordPageVo.getUserId(); + sysUser = remoteUserService.getSysUser(userId).getData(); + staffAgencyTaskRecordPageVo.setUserName(sysUser.getNickName()); + staffAgencyTaskRecordPageVo.setUserPicture(sysUser.getAvatar()); + //获取任务详情文件 + followId = staffAgencyTaskRecordPageVo.getFollowId(); + taskFileList = taskFileService.listByFollowIdAndFollowType(followId,1); + if(taskFileList!=null&&!taskFileList.isEmpty()){ + picture = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList()); + } + taskFileList = taskFileService.listByFollowIdAndFollowType(followId,2); + if(taskFileList!=null&&!taskFileList.isEmpty()){ + video = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList()); + } + taskFileList = taskFileService.listByFollowIdAndFollowType(followId,3); + if(taskFileList!=null&&!taskFileList.isEmpty()){ + audio = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList()); + } + staffAgencyTaskRecordPageVo.setPicture(picture); + staffAgencyTaskRecordPageVo.setVideo(video); + staffAgencyTaskRecordPageVo.setAudio(audio); + } + } + + return agencyTaskRecordPageVoList; + } + + } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java index 3dae1f3..5d26bdc 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java @@ -213,10 +213,7 @@ return memberTaskMapper.getMemberIngTotal(shopId); } - @Override - public Integer getMembersIngTotal(List<Long> shopIds) { - return memberTaskMapper.getMembersIngTotal(shopIds); - } + /** * @description 获取最近任务 diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskRecordServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskRecordServiceImpl.java index 6ad00c5..2917a4c 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskRecordServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskRecordServiceImpl.java @@ -1,10 +1,13 @@ package com.ruoyi.shop.service.impl.task; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; +import com.ruoyi.shop.domain.dto.StaffShopTaskPageDto; import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord; import com.ruoyi.shop.domain.pojo.task.TaskFile; import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo; +import com.ruoyi.shop.domain.vo.StaffMyShopTaskRecordPageVo; import com.ruoyi.shop.mapper.task.ShopTaskRecordMapper; import com.ruoyi.shop.service.task.ShopTaskRecordService; import com.ruoyi.shop.service.task.TaskFileService; @@ -80,6 +83,97 @@ return mgtShopTaskRecordPageVoList; } + /** + * @description 员工端分页获取我的跟进任务记录列表 + * @author jqs + * @date 2023/7/14 19:40 + * @param page + * @param staffShopTaskPageDto + * @return List<StaffMyShopTaskRecordPageVo> + */ + @Override + public List<StaffMyShopTaskRecordPageVo> pageStaffMyShopTaskRecord(Page page, StaffShopTaskPageDto staffShopTaskPageDto){ + List<StaffMyShopTaskRecordPageVo> myShopTaskRecordPageVoList = shopTaskRecordMapper.pageStaffMyShopTaskRecord(page, staffShopTaskPageDto); + if(myShopTaskRecordPageVoList!=null&&!myShopTaskRecordPageVoList.isEmpty()){ + Long followId; + List<TaskFile> taskFileList; + List<String> picture = new ArrayList<>(); + List<String> video = new ArrayList<>(); + List<String> audio = new ArrayList<>(); + Long userId; + SysUser sysUser; + for(StaffMyShopTaskRecordPageVo staffMyShopTaskRecordPageVo : myShopTaskRecordPageVoList){ + //获取任务用户信息 + userId = staffMyShopTaskRecordPageVo.getUserId(); + sysUser = remoteUserService.getSysUser(userId).getData(); + staffMyShopTaskRecordPageVo.setUserName(sysUser.getNickName()); + staffMyShopTaskRecordPageVo.setUserPicture(sysUser.getAvatar()); + //获取任务详情文件 + followId = staffMyShopTaskRecordPageVo.getFollowId(); + taskFileList = taskFileService.listByFollowIdAndFollowType(followId,1); + if(taskFileList!=null&&!taskFileList.isEmpty()){ + picture = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList()); + } + taskFileList = taskFileService.listByFollowIdAndFollowType(followId,2); + if(taskFileList!=null&&!taskFileList.isEmpty()){ + video = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList()); + } + taskFileList = taskFileService.listByFollowIdAndFollowType(followId,3); + if(taskFileList!=null&&!taskFileList.isEmpty()){ + audio = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList()); + } + staffMyShopTaskRecordPageVo.setPicture(picture); + staffMyShopTaskRecordPageVo.setVideo(video); + staffMyShopTaskRecordPageVo.setAudio(audio); + } + } + return myShopTaskRecordPageVoList; + } - + /** + * @description 员工端分页获取商户跟进任务记录列表 + * @author jqs + * @date 2023/7/15 17:05 + * @param page + * @param staffShopTaskPageDto + * @return List<StaffMyShopTaskRecordPageVo> + */ + @Override + public List<StaffMyShopTaskRecordPageVo> pageStaffShopTaskRecord(Page page, StaffShopTaskPageDto staffShopTaskPageDto){ + List<StaffMyShopTaskRecordPageVo> myShopTaskRecordPageVoList = shopTaskRecordMapper.pageStaffShopTaskRecord(page, staffShopTaskPageDto); + if(myShopTaskRecordPageVoList!=null&&!myShopTaskRecordPageVoList.isEmpty()){ + Long followId; + List<TaskFile> taskFileList; + List<String> picture = new ArrayList<>(); + List<String> video = new ArrayList<>(); + List<String> audio = new ArrayList<>(); + Long userId; + SysUser sysUser; + for(StaffMyShopTaskRecordPageVo staffMyShopTaskRecordPageVo : myShopTaskRecordPageVoList){ + //获取任务用户信息 + userId = staffMyShopTaskRecordPageVo.getUserId(); + sysUser = remoteUserService.getSysUser(userId).getData(); + staffMyShopTaskRecordPageVo.setUserName(sysUser.getNickName()); + staffMyShopTaskRecordPageVo.setUserPicture(sysUser.getAvatar()); + //获取任务详情文件 + followId = staffMyShopTaskRecordPageVo.getFollowId(); + taskFileList = taskFileService.listByFollowIdAndFollowType(followId,1); + if(taskFileList!=null&&!taskFileList.isEmpty()){ + picture = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList()); + } + taskFileList = taskFileService.listByFollowIdAndFollowType(followId,2); + if(taskFileList!=null&&!taskFileList.isEmpty()){ + video = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList()); + } + taskFileList = taskFileService.listByFollowIdAndFollowType(followId,3); + if(taskFileList!=null&&!taskFileList.isEmpty()){ + audio = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList()); + } + staffMyShopTaskRecordPageVo.setPicture(picture); + staffMyShopTaskRecordPageVo.setVideo(video); + staffMyShopTaskRecordPageVo.setAudio(audio); + } + } + return myShopTaskRecordPageVoList; + } } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java index 102f604..86adad3 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java @@ -1,25 +1,32 @@ package com.ruoyi.shop.service.impl.task; 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.DateUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.shop.domain.dto.MgtFollowShopTaskDto; +import com.ruoyi.shop.domain.dto.StaffAddTaskDto; +import com.ruoyi.shop.domain.dto.StaffShopTaskPageDto; import com.ruoyi.shop.domain.pojo.task.ShopTask; import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord; 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.task.ShopTaskRecordService; import com.ruoyi.shop.service.task.ShopTaskService; import com.ruoyi.shop.service.task.TaskFileService; +import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; +import com.ruoyi.system.api.service.RemoteUserService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.ParseException; import java.time.LocalDate; import java.util.Date; +import java.util.List; /** * <p> @@ -32,6 +39,8 @@ @Service public class ShopTaskServiceImpl extends ServiceImpl<ShopTaskMapper, ShopTask> implements ShopTaskService { + @Resource + private ShopTaskMapper shopTaskMapper; @Resource private ShopTaskRecordService shopTaskRecordService; @@ -39,7 +48,8 @@ @Resource private TaskFileService taskFileService; - + @Resource + private RemoteUserService remoteUserService; /** * 平台跟进商户 @@ -53,7 +63,6 @@ shopTask.setTaskId(taskId); shopTask.setDelFlag(0); shopTask.setShopId(mgtFollowShopTaskDto.getShopId()); - shopTask.setFollowType(mgtFollowShopTaskDto.getFollowType()); shopTask.setNextFollowDate(DateUtils.toDate(LocalDate.now())); shopTask.setTaskTitle(mgtFollowShopTaskDto.getTaskTitle()); shopTask.setEmergencyState(mgtFollowShopTaskDto.getEmergencyState()); @@ -67,6 +76,7 @@ shopTaskRecord.setTaskId(taskId); shopTaskRecord.setUserId(mgtFollowShopTaskDto.getUserId()); shopTaskRecord.setFollowType(2); + shopTaskRecord.setCustomFollowType(mgtFollowShopTaskDto.getFollowType()); shopTaskRecord.setFollowContent(mgtFollowShopTaskDto.getFollowContent()); shopTaskRecord.setCreateTime(new Date()); shopTaskRecordService.saveOrUpdate(shopTaskRecord); @@ -92,7 +102,6 @@ shopNextTask.setTaskId(nextTaskId); shopNextTask.setDelFlag(0); shopNextTask.setShopId(mgtFollowShopTaskDto.getShopId()); - shopNextTask.setFollowType(mgtFollowShopTaskDto.getFollowType()); shopNextTask.setTaskTitle(mgtFollowShopTaskDto.getNextTaskTitle()); shopNextTask.setEmergencyState(mgtFollowShopTaskDto.getEmergencyState()); shopNextTask.setCreateTime(new Date()); @@ -124,4 +133,52 @@ mgtBulletinBoardVo.setFollowShopToday(followShopToday); return mgtBulletinBoardVo; } + + /** + * @description 员工端获取进行中商户任务数 + * @author jqs + * @param shopIds + * @return Integer + */ + @Override + public Integer getShopIngTotal(List<Long> shopIds){ + return shopTaskMapper.getShopIngTotal(shopIds); + } + + /** + * @description 分页获取员工跟进任务 + * @author jqs + * @date 2023/7/15 15:09 + * @param page + * @param staffShopTaskPageDto + * @return List<StaffShopTaskPageVo> + */ + @Override + public List<StaffShopTaskPageVo> pageStaffShopTask(Page page, StaffShopTaskPageDto staffShopTaskPageDto){ + List<StaffShopTaskPageVo> shopTaskPageVoList = shopTaskMapper.pageStaffShopTask(page, staffShopTaskPageDto); + if(shopTaskPageVoList!=null&&shopTaskPageVoList.size()>0){ + Long userId; + SysUser sysUser; + for(StaffShopTaskPageVo staffShopTaskPageVo : shopTaskPageVoList){ + //获取任务用户信息 + userId = staffShopTaskPageVo.getUserId(); + sysUser = remoteUserService.getSysUser(userId).getData(); + staffShopTaskPageVo.setUserName(sysUser.getNickName()); + staffShopTaskPageVo.setUserPicture(sysUser.getAvatar()); + } + } + return shopTaskPageVoList; + } + + /** + * @description 员工端新增任务 + * @author jqs + * @date 2023/7/15 19:06 + * @param staffAddTaskDto + * @return void + */ + @Override + public void staffAddTask(StaffAddTaskDto staffAddTaskDto){ + ShopTask shopTask = new ShopTask(); + } } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java index afed314..b334032 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java @@ -54,6 +54,15 @@ void terminateMgtCooperation(MgtTerminateCooperationDto mgtTerminateCooperationDto); /** + * @description 冻结商户 + * @author jqs + * @date 2023/7/15 13:56 + * @param mgtFrozenShopDto + * @return void + */ + void frozenMgtShop(MgtFrozenShopDto mgtFrozenShopDto); + + /** * 分页获取商户 * @param page * @param mgtShopPageDto @@ -98,7 +107,7 @@ Shop getByShopId(Long shopId); - MerHomeShopTotalVo getStaffHomeTotal(Long userId); + StaffHomeShopTotalVo getStaffHomeTotal(Long userId); /** * 获取商户端首页统计 @@ -252,4 +261,68 @@ * @return List<MgtSimpleShopVo> */ List<MgtSimpleShopVo> listShopByShop(Long shopId); + + /** + * @description 获取用户管理商户 + * @author jqs + * @date 2023/7/14 10:00 + * @param userId + * @return Shop + */ + Shop getShopByBelongUserId(Long userId); + + /** + * @description 员工端获取商户列表 + * @author jqs + * @date 2023/7/14 15:26 + * @param page + * @param staffShopPageDto + * @return List<StaffShopPageVo> + */ + List<StaffShopPageVo> pageStaffShop(Page page, StaffShopPageDto staffShopPageDto); + + /** + * @description 获取员工端商户数量统计 + * @author jqs + * @date 2023/7/14 15:51 + * @param userId + * @return StaffShopSimpleTotalVo + */ + StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId); + + /** + * @description 员工端获取商户详情 + * @author jqs + * @date 2023/7/14 18:32 + * @param shopId + * @return StaffShopInfoGetVo + */ + StaffShopInfoGetVo getStaffShopInfo(Long shopId); + + /** + * @description 修改商户评估 + * @author jqs + * @date 2023/7/15 10:18 + * @param staffShopEstimateEditDto + * @return void + */ + void editShopEstimate(StaffShopEstimateEditDto staffShopEstimateEditDto); + + /** + * @description 修改店铺扩展联系人 + * @author jqs + * @date 2023/7/15 11:06 + * @param staffShopECEditDto + * @return void + */ + void editExtendContacts(StaffShopECEditDto staffShopECEditDto); + + /** + * @description 修改店铺状态 + * @author jqs + * @date 2023/7/15 11:51 + * @param staffShopCCEditDto + * @return void + */ + void editShopCustomStatus(StaffShopCCEditDto staffShopCCEditDto); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/AgencyTaskRecordService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/AgencyTaskRecordService.java index 67e3e8c..4ce77ea 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/AgencyTaskRecordService.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/AgencyTaskRecordService.java @@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.shop.domain.dto.MerAgencyTaskPageDto; import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; +import com.ruoyi.shop.domain.dto.StaffAgencyPageDto; import com.ruoyi.shop.domain.pojo.task.AgencyTaskRecord; import com.ruoyi.shop.domain.vo.MerAgencyTaskRecordPageVo; import com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo; +import com.ruoyi.shop.domain.vo.StaffAgencyTaskRecordPageVo; import java.util.List; @@ -35,4 +37,16 @@ * @return */ List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(MgtShopTaskPageDto mgtShopTaskPageDto); + + /** + * @description 员工端分页获取经销商跟进任务记录列表 + * @author jqs + * @date 2023/7/14 19:24 + * @param page + * @param staffAgencyPageDto + * @return List<StaffAgencyTaskRecordPageVo> + */ + List<StaffAgencyTaskRecordPageVo> pageStaffAgencyTaskRecord(Page page, StaffAgencyPageDto staffAgencyPageDto); + + } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java index 9add6bd..937c370 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java @@ -62,11 +62,4 @@ */ MemberTaskSimpleVo getLastMemberTask(Long userId); - /** - * @description 员工端获取进行中任务数 - * @author jqs - * @param shopIds - * @return Integer - */ - Integer getMembersIngTotal(List<Long> shopIds); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskRecordService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskRecordService.java index 1123f30..1e1db32 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskRecordService.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskRecordService.java @@ -1,9 +1,12 @@ package com.ruoyi.shop.service.task; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; +import com.ruoyi.shop.domain.dto.StaffShopTaskPageDto; import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord; import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo; +import com.ruoyi.shop.domain.vo.StaffMyShopTaskRecordPageVo; import java.util.List; @@ -23,4 +26,24 @@ * @return */ List<MgtShopTaskRecordPageVo> pageMgtShopFollow(MgtShopTaskPageDto mgtShopTaskPageDto); + + /** + * @description 员工端分页获取我的跟进任务记录列表 + * @author jqs + * @date 2023/7/14 19:40 + * @param page + * @param staffShopTaskPageDto + * @return List<StaffMyShopTaskRecordPageVo> + */ + List<StaffMyShopTaskRecordPageVo> pageStaffMyShopTaskRecord(Page page, StaffShopTaskPageDto staffShopTaskPageDto); + + /** + * @description 员工端分页获取商户跟进任务记录列表 + * @author jqs + * @date 2023/7/15 17:05 + * @param page + * @param staffShopTaskPageDto + * @return List<StaffMyShopTaskRecordPageVo> + */ + List<StaffMyShopTaskRecordPageVo> pageStaffShopTaskRecord(Page page, StaffShopTaskPageDto staffShopTaskPageDto); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskService.java index 4511459..1789e67 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskService.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskService.java @@ -1,9 +1,15 @@ package com.ruoyi.shop.service.task; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.shop.domain.dto.MgtFollowShopTaskDto; +import com.ruoyi.shop.domain.dto.StaffAddTaskDto; +import com.ruoyi.shop.domain.dto.StaffShopTaskPageDto; import com.ruoyi.shop.domain.pojo.task.ShopTask; +import com.ruoyi.shop.domain.vo.StaffShopTaskPageVo; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; + +import java.util.List; /** * <p> @@ -29,4 +35,32 @@ * @date 2023/6/18 17:09 */ MgtBulletinBoardVo boardTaskTotal(); + + /** + * @description 员工端获取进行中商户任务数 + * @author jqs + * @param shopIds + * @return Integer + */ + Integer getShopIngTotal(List<Long> shopIds); + + + /** + * @description 分页获取员工跟进任务 + * @author jqs + * @date 2023/7/15 15:09 + * @param page + * @param staffShopTaskPageDto + * @return List<StaffShopTaskPageVo> + */ + List<StaffShopTaskPageVo> pageStaffShopTask(Page page, StaffShopTaskPageDto staffShopTaskPageDto); + + /** + * @description 员工端新增任务 + * @author jqs + * @date 2023/7/15 19:06 + * @param staffAddTaskDto + * @return void + */ + void staffAddTask(StaffAddTaskDto staffAddTaskDto); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml index def416e..5e8dd18 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml @@ -14,12 +14,12 @@ nacos: discovery: # 服务注册地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 config: # 配置中心地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml index ddc4a28..d858f22 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml @@ -305,18 +305,12 @@ WHEN 2 THEN "终止合作" END shopStatus, tsm.shop_marketing_total shopActivityCount, - ts.shop_custom_status shopCustomStatus + ts.shop_custom_status shopCustomStatus, + ts.frozen_flag frozenFlag, + ts.cooperative_flag cooperativeFlag FROM t_shop ts LEFT JOIN t_shop_marketing tsm ON tsm.shop_id = ts.shop_id WHERE ts.del_flag = 0 - - <if test="param.ids != null and !param.ids.isEmpty()"> - AND ts.belong_user_id in - <foreach item="id" collection="param.ids" open="(" separator="," close=")"> - #{id} - </foreach> - </if> - <if test="param.shopType!=null and param.shopType!=''"> AND ts.shop_type = #{param.shopType} </if> @@ -580,7 +574,7 @@ ts.shop_id FROM t_shop ts WHERE ts.del_flag = 0 - <if test="param.userIdList!=null and param.userIdList!=''"> + <if test="param.userIdList!=null and param.userIdList.size()>0"> AND ts.belong_user_id IN <foreach collection="param.userIdList" item="item" open="(" separator="," close=")"> #{item} @@ -608,7 +602,7 @@ ts.shop_id FROM t_shop ts WHERE ts.del_flag = 0 - <if test="param.userIdList!=null and param.userIdList!=''"> + <if test="param.userIdList!=null and param.userIdList.size()>0"> AND ts.belong_user_id IN <foreach collection="param.userIdList" item="item" open="(" separator="," close=")"> #{item} @@ -632,7 +626,7 @@ COUNT(ts.shop_id) mapValue FROM t_shop ts WHERE ts.del_flag = 0 - <if test="param.userIdList!=null and param.userIdList!=''"> + <if test="param.userIdList!=null and param.userIdList.size()>0"> AND ts.belong_user_id IN <foreach collection="param.userIdList" item="item" open="(" separator="," close=")"> #{item} @@ -662,7 +656,7 @@ COUNT(ts.shop_id) mapValue FROM t_shop ts WHERE ts.del_flag = 0 - <if test="param.userIdList!=null and param.userIdList!=''"> + <if test="param.userIdList!=null and param.userIdList.size()>0"> AND ts.belong_user_id IN <foreach collection="param.userIdList" item="item" open="(" separator="," close=")"> #{item} @@ -692,7 +686,7 @@ COUNT(ts.shop_id) mapValue FROM t_shop ts WHERE ts.del_flag = 0 - <if test="param.userIdList!=null and param.userIdList!=''"> + <if test="param.userIdList!=null and param.userIdList.size()>0"> AND ts.belong_user_id IN <foreach collection="param.userIdList" item="item" open="(" separator="," close=")"> #{item} @@ -724,7 +718,7 @@ FROM t_shop ts INNER JOIN t_shop_total tst ON ts.shop_id = tst.shop_id WHERE ts.del_flag = 0 - <if test="param.userIdList!=null and param.userIdList!=''"> + <if test="param.userIdList!=null and param.userIdList.size()>0"> AND ts.belong_user_id IN <foreach collection="param.userIdList" item="item" open="(" separator="," close=")"> #{item} @@ -754,7 +748,7 @@ COUNT(ts.shop_id) mapValue FROM t_shop ts WHERE ts.del_flag = 0 - <if test="param.userIdList!=null and param.userIdList!=''"> + <if test="param.userIdList!=null and param.userIdList.size()>0"> AND ts.belong_user_id IN <foreach collection="param.userIdList" item="item" open="(" separator="," close=")"> #{item} @@ -778,4 +772,119 @@ GROUP BY ts.recommend_person ORDER BY COUNT(ts.shop_id) DESC </select> + + <select id="pageStaffShop" resultType="com.ruoyi.shop.domain.vo.StaffShopPageVo"> + SELECT + ts.shop_id shopId, + ts.sign_time signTime, + ts.shop_name shopName, + ts.shop_tags shopTags, + CONCAT(ts.cooperation_start_time,'-',ts.cooperation_end_time) cooperationTime, + CONCAT(ts.shop_area_name,ts.shop_address) shopAddress, + ts.shopowner_name shopownerName, + ts.shopowner_phone shopownerPhone, + ts.shop_status shopStatus, + tsf.file_url shopPicture, + tbs.shop_name belongShopName + 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 + WHERE ts.del_flag = 0 + <if test="param.shopType!=null and param.shopType!=''"> + AND ts.shop_type = #{param.shopType} + </if> + <if test="param.signStartTime!=null and param.signStartTime!=''"> + AND ts.sign_time >= #{param.signStartTime} + </if> + <if test="param.signEndTime!=null and param.signEndTime!=''"> + AND ts.sign_time <= #{param.signEndTime} + </if> + <if test="param.signProvinceCode!=null and param.signProvinceCode!=''"> + AND ts.sign_province_code = #{param.signProvinceCode} + </if> + <if test="param.signCityCode!=null and param.signCityCode!=''"> + AND ts.sign_city_code = #{param.signCityCode} + </if> + <if test="param.recommendPerson!=null and param.recommendPerson!=''"> + AND ts.recommend_person = #{param.recommendPerson} + </if> + <if test="param.belongUserId!=null and param.belongUserId!=''"> + AND ts.belong_user_id = #{param.belongUserId} + </if> + <if test="param.userIdList!=null and param.userIdList.size()>0"> + AND ts.belong_user_id IN + <foreach item="id" collection="param.userIdList" open="(" separator="," close=")"> + #{id} + </foreach> + </if> + <if test="param.shopCustomStatus!=null and param.shopCustomStatus!=''"> + AND FIND_IN_SET(#{param.shopCustomStatus},ts.shop_custom_status) > 0 + </if> + <if test="param.supportingCapacityFlag!=null and param.supportingCapacityFlag!=''"> + AND ts.supporting_capacity_flag = #{param.supportingCapacityFlag} + </if> + <if test="param.operationPersonFlag!=null and param.operationPersonFlag!=''"> + AND ts.operation_person_flag = #{param.operationPersonFlag} + </if> + <if test="param.executiveForceFlag!=null and param.executiveForceFlag!=''"> + AND ts.executive_force_flag = #{param.executiveForceFlag} + </if> + <if test="param.patternFlag!=null and param.patternFlag!=''"> + AND ts.pattern_flag = #{param.patternFlag} + </if> + <if test="param.connectionFlag!=null and param.connectionFlag!=''"> + AND ts.connection_flag = #{param.connectionFlag} + </if> + <if test="param.economicAbilityFlag!=null and param.economicAbilityFlag!=''"> + AND ts.economic_ability_flag = #{param.economicAbilityFlag} + </if> + <if test="param.relationPartner!=null and param.relationPartner!=''"> + AND ts.relation_partner = #{param.relationPartner} + </if> + <if test="param.keyword!=null and param.keyword!=''"> + AND (ts.shop_name LIKE CONCAT('%',#{param.keyword},'%') OR ts.shopowner_name LIKE CONCAT('%',#{param.keyword},'%') + OR ts.shopowner_phone LIKE CONCAT('%',#{param.keyword},'%') OR ts.shop_number LIKE CONCAT('%',#{param.keyword},'%') + OR tbs.shop_name LIKE CONCAT('%',#{param.keyword},'%')) + </if> + ORDER BY ts.create_time DESC + </select> + + <select id="getStaffSimpleTotal" resultType="com.ruoyi.shop.domain.vo.StaffShopSimpleTotalVo"> + SELECT + COUNT(shop_id) shopTotal, + SUM(CASE shop_status WHEN 0 THEN 1 WHEN 2 THEN 1 WHEN 3 THEN 1 ELSE 0 END) closeTotal, + SUM(CASE shop_status WHEN 1 THEN 1 ELSE 0 END) openTotal + FROM t_shop ts + WHERE ts.del_flag = 0 + AND ts.belong_user_id IN + <foreach item="id" collection="userIdList" open="(" separator="," close=")"> + #{id} + </foreach> + </select> + + <select id="getStaffHomeTotal" resultType="com.ruoyi.shop.domain.vo.StaffHomeShopTotalVo"> + SELECT + COUNT(shop_id) shopTotal, + SUM(CASE shop_type WHEN 1 THEN 1 ELSE 0 END) dealerTotal, + SUM(CASE shop_type WHEN 2 THEN 1 ELSE 0 END) agencyTotal + FROM t_shop ts + WHERE ts.del_flag = 0 + AND ts.belong_user_id IN + <foreach item="id" collection="userIdList" open="(" separator="," close=")"> + #{id} + </foreach> + </select> + + <update id="updateExtendContacts"> + update t_shop SET + <if test="extendContacts!=null and extendContacts != ''"> + extend_contacts = #{extendContacts}, + </if> + <if test="extendContacts ==null or extendContacts == ''"> + extend_contacts = null, + </if> + <if test="updateTime != null">update_time = #{updateTime},</if> + <if test="updateUserId != null">update_user_id = #{updateUserId},</if> + WHERE shop_id = #{shopId} + </update> </mapper> diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopTotalMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopTotalMapper.xml index 00a34c3..554d73f 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopTotalMapper.xml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopTotalMapper.xml @@ -35,7 +35,7 @@ sum(total_goods_money) totalGoodsMoney FROM t_shop_total - <if test="list!=null and list!=''"> + <if test="list!=null and list.size()>0"> where shop_id IN <foreach collection="list" item="id" open="(" separator="," close=")"> #{id} diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/AgencyTaskRecordMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/AgencyTaskRecordMapper.xml index a68a64e..2c27681 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/AgencyTaskRecordMapper.xml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/AgencyTaskRecordMapper.xml @@ -26,7 +26,7 @@ FROM t_agency_task tmt INNER JOIN t_agency_task_record tmtr ON tmtr.task_id = tmt.task_id WHERE tmt.del_flag = 0 AND tmt.shop_id = #{param.shopId} AND tmt.agency_id = #{param.agencyId} - ORDER BY tmt.task_date DESC + ORDER BY tmtr.create_time DESC </select> <select id="pageMgtAgencyFollow" resultType="com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo"> @@ -44,6 +44,26 @@ INNER JOIN t_shop ts ON ts.shop_id = tmt.shop_id INNER JOIN t_shop_file tsf ON tsf.shop_id = ts.shop_id AND tsf.del_flag = 0 AND tsf.file_type = 1 WHERE tmt.del_flag = 0 AND tmt.agency_id = #{param.shopId} AND tmt.task_date = #{param.taskDate} - ORDER BY tmt.task_date DESC + ORDER BY tmtr.create_time DESC </select> + + <select id="pageStaffAgencyTaskRecord" resultType="com.ruoyi.shop.domain.vo.StaffAgencyTaskRecordPageVo"> + SELECT + tmtr.user_id userId, + tmtr.id followId, + tmtr.task_id taskId, + tmt.create_time createTime, + tmtr.follow_type followType, + tmtr.call_time callTime, + tmtr.follow_content followContent, + tmtr.call_phone callPhone + FROM t_agency_task tmt + INNER JOIN t_agency_task_record tmtr ON tmtr.task_id = tmt.task_id + INNER JOIN t_shop ts ON ts.shop_id = tmt.shop_id + INNER JOIN t_shop_file tsf ON tsf.shop_id = ts.shop_id AND tsf.del_flag = 0 AND tsf.file_type = 1 + WHERE tmt.del_flag = 0 AND tmt.agency_id = #{param.agencyId} + ORDER BY tmtr.create_time DESC + </select> + + </mapper> diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml index 19eb288..26f0f93 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml @@ -99,18 +99,7 @@ WHERE del_flag = 0 AND task_status = 1 AND shop_id = #{shopId} AND task_date = DATE(NOW()) </select> - <select id="getMembersIngTotal" resultType="java.lang.Integer"> - SELECT COUNT(task_id) - FROM t_member_task - WHERE del_flag = 0 AND task_status = 1 - <if test="list!=null and list!=''"> - AND shop_id IN - <foreach collection="list" item="id" open="(" separator="," close=")"> - #{id} - </foreach> - </if> - AND task_date = DATE(NOW()) - </select> + <select id="getLastMemberTask" resultType="com.ruoyi.system.api.domain.vo.MemberTaskSimpleVo"> SELECT diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml index 155b59b..ead6951 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml @@ -87,22 +87,36 @@ </foreach> </delete> - <select id="pageMgtAgencyFollow" resultType="com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo"> - SELECT - tmtr.user_id userId, - tmtr.id followId, - tmtr.task_id taskId, - tmtr.create_time createTime, - tmtr.follow_type followType, - tmtr.call_time callTime, - tmtr.follow_content followContent, - tmtr.call_phone callPhone - FROM t_agency_task tmt - INNER JOIN t_agency_task_record tmtr ON tmtr.task_id = tmt.task_id - WHERE tmt.del_flag = 0 AND tmt.agency_id = #{param.shopId} - ORDER BY tmtr.create_time DESC + + <select id="getShopIngTotal" resultType="java.lang.Integer"> + SELECT COUNT(task_id) + FROM t_shop_task + WHERE del_flag = 0 AND task_status = 1 + <if test="shopIds!=null and shopIds!=''"> + AND shop_id IN + <foreach collection="shopIds" item="id" open="(" separator="," close=")"> + #{id} + </foreach> + </if> + AND task_date = DATE(NOW()) </select> - + <select id="pageStaffShopTask" resultType="com.ruoyi.shop.domain.vo.StaffShopTaskPageVo"> + SELECT + tst.task_id taskId, + tst.task_date taskDate, + tst.follow_content taskContent, + tst.emergency_state emergencyState, + CASE WHEN tst.task_date = DATE(now()) THEN 1 ELSE 0 END todayFlag, + tstr.user_id userId, + tstr.create_time followTime + FROM t_shop_task tst + LEFT JOIN t_shop_task_record tstr ON tstr.task_id = tst.task_id + WHERE tst.del_flag = 0 AND tst.shop_id = #{param.shopId} AND tstr.id = (SELECT MAX(id) FROM t_shop_task_record WHERE task_id = tst.task_id) + <if test="param.taskStatus!=null and param.taskStatus != ''"> + AND tst.task_status = #{param.taskStatus} + </if> + ORDER BY tst.task_status ASC + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskRecordMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskRecordMapper.xml index b52b993..e7138ca 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskRecordMapper.xml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskRecordMapper.xml @@ -9,6 +9,7 @@ tmtr.task_id taskId, tmtr.create_time createTime, CASE tmtr.follow_type WHEN 1 THEN "电话跟进" WHEN 2 THEN "手动跟进" END followType, + tmtr.custom_follow_type customFollowType, tmtr.follow_content followContent, tmtr.call_time callTime, tmtr.call_phone callPhone @@ -18,4 +19,37 @@ ORDER BY tmtr.create_time DESC </select> + <select id="pageStaffMyShopTaskRecord" resultType="com.ruoyi.shop.domain.vo.StaffMyShopTaskRecordPageVo"> + SELECT + tmtr.user_id userId, + tmtr.id followId, + tmtr.task_id taskId, + tmtr.create_time createTime, + CASE tmtr.follow_type WHEN 1 THEN "电话跟进" WHEN 2 THEN "手动跟进" END followType, + tmtr.custom_follow_type customFollowType, + tmtr.follow_content followContent, + tmtr.call_time callTime, + tmtr.call_phone callPhone + FROM t_shop_task tmt + INNER JOIN t_shop_task_record tmtr ON tmtr.task_id = tmt.task_id + WHERE tmt.del_flag = 0 AND tmt.shop_id = #{param.shopId} AND tmtr.user_id = #{param.userId} + ORDER BY tmtr.create_time DESC + </select> + + <select id="pageStaffShopTaskRecord" resultType="com.ruoyi.shop.domain.vo.StaffMyShopTaskRecordPageVo"> + SELECT + tmtr.user_id userId, + tmtr.id followId, + tmtr.task_id taskId, + tmtr.create_time createTime, + CASE tmtr.follow_type WHEN 1 THEN "电话跟进" WHEN 2 THEN "手动跟进" END followType, + tmtr.follow_content followContent, + tmtr.call_time callTime, + tmtr.call_phone callPhone + FROM t_shop_task tmt + INNER JOIN t_shop_task_record tmtr ON tmtr.task_id = tmt.task_id + WHERE tmt.del_flag = 0 AND tmt.shop_id = #{param.shopId} + ORDER BY tmtr.create_time DESC + </select> + </mapper> diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/staff/StaffController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/StaffController.java similarity index 95% rename from ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/staff/StaffController.java rename to ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/StaffController.java index 9a5aaec..7f8c6d6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/staff/StaffController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/StaffController.java @@ -1,4 +1,4 @@ -package com.ruoyi.system.controller.staff; +package com.ruoyi.system.controller.conslole; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.domain.pojo.staff.SysStaff; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java index d7c5674..02d824b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java @@ -1,6 +1,7 @@ package com.ruoyi.system.controller.sys; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; @@ -16,7 +17,11 @@ import com.ruoyi.system.api.domain.poji.sys.SysRole; import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.model.LoginUser; +import com.ruoyi.system.api.model.QwH5LoginVo; +import com.ruoyi.system.api.model.QwUserDetailDto; import com.ruoyi.system.domain.dto.UserMenuEditDto; +import com.ruoyi.system.domain.pojo.staff.SysStaff; +import com.ruoyi.system.service.staff.SysStaffService; import com.ruoyi.system.service.sys.*; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ArrayUtils; @@ -27,8 +32,8 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -59,22 +64,26 @@ @Autowired private ISysConfigService configService; + @Autowired + private SysStaffService sysStaffService; + /** * 根据部门获取所有员工id - * @param deptId + * @param userId * @return */ - @GetMapping("/dept/{deptId}") - public R<List<Long>> getUserIds(@PathVariable("deptId") Long deptId) + @GetMapping("/getUserIdsByDept/{userId}") + public R<List<Long>> getUserIdsByDept(@PathVariable("userId") Long userId) { - SysUser sysUser = new SysUser(); - sysUser.setDeptId(deptId); - List<SysUser> userList = userService.selectUserList(sysUser); - List<Long> userIds = new ArrayList<>(); - for (int i = 0; i < userList.size(); i++) { - userIds.add(userList.get(i).getUserId()); - } + SysUser loginSysUser = userService.selectUserById(userId); + SysUser querySysUser = new SysUser(); + querySysUser.setDelFlag("0"); + querySysUser.setDeptId(loginSysUser.getDeptId()); + List<SysUser> userList = userService.selectUserList(querySysUser); + List<Long> userIds = userList.stream().map(sysUser->{ + return sysUser.getUserId(); + }).collect(Collectors.toList()); return R.ok(userIds); } @@ -416,4 +425,27 @@ userService.frozenUser(userId); return R.ok(); } + + /** + * @description 员工端登录 + * @author jqs + * @date 2023/7/14 10:04 + * @param qwUserDetail + * @return R<QwH5LoginVo> + */ + @PostMapping("/qwH5StaffLogin") + public R<QwH5LoginVo> qwH5StaffLogin(@RequestBody QwUserDetailDto qwUserDetail) + { + String mobile = qwUserDetail.getMobile(); + SysStaff sysStaff = sysStaffService.getByMobile(mobile); + Long userId = sysStaff.getUserId(); + SysUser sysUser = userService.selectUserById(userId); + Optional.ofNullable(sysUser).orElseThrow(() -> new ServiceException("登录失败,未查询到用户")); + // 构造登录返回信息 + QwH5LoginVo qwH5LoginVo = new QwH5LoginVo(); + qwH5LoginVo.setUserid(qwUserDetail.getUserid()); + qwH5LoginVo.setMobile(qwUserDetail.getMobile()); + qwH5LoginVo.setSysUser(sysUser); + return R.ok(qwH5LoginVo); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ArticleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ArticleServiceImpl.java index f414ccb..b8b8d68 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ArticleServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ArticleServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; @@ -19,6 +20,8 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.nio.charset.StandardCharsets; +import java.util.Base64; import java.util.Date; import java.util.List; @@ -90,7 +93,12 @@ article.setArticleSort(mgtArticleEditDto.getArticleSort()); article.setArticleTitle(mgtArticleEditDto.getArticleTitle()); article.setArticleIntroduce(mgtArticleEditDto.getArticleIntroduce()); - article.setArticleDetail(mgtArticleEditDto.getArticleDetail()); + String articleDetail = mgtArticleEditDto.getArticleDetail(); + if(StringUtils.isNotBlank(articleDetail)){ + byte[] decodedBytes = Base64.getDecoder().decode(articleDetail); + articleDetail = new String(decodedBytes, StandardCharsets.UTF_8); + article.setArticleDetail(articleDetail); + } article.setArticleCover(mgtArticleEditDto.getArticleCover()); article.setArticleVideo(mgtArticleEditDto.getArticleVideo()); article.setUpdateTime(new Date()); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CooperationServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CooperationServiceImpl.java index 30613ce..3230888 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CooperationServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CooperationServiceImpl.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.system.domain.dto.MgtCooperationEditDto; import com.ruoyi.system.domain.pojo.config.Cooperation; import com.ruoyi.system.mapper.config.CooperationMapper; @@ -9,6 +10,8 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.nio.charset.StandardCharsets; +import java.util.Base64; import java.util.Date; /** @@ -42,7 +45,12 @@ Cooperation cooperation = new Cooperation(); cooperation.setDelFlag(0); cooperation.setTopPicture(mgtCooperationEditDto.getCooperationPicture()); - cooperation.setCooperDetail(mgtCooperationEditDto.getCooperationDetail()); + String cooperationDetail = mgtCooperationEditDto.getCooperationDetail(); + if(StringUtils.isNotBlank(cooperationDetail)){ + byte[] decodedBytes = Base64.getDecoder().decode(cooperationDetail); + cooperationDetail = new String(decodedBytes, StandardCharsets.UTF_8); + cooperation.setCooperDetail(cooperationDetail); + } cooperation.setCreateTime(new Date()); cooperation.setCreateUserId(mgtCooperationEditDto.getUserId()); this.saveOrUpdate(cooperation); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java index 5bb8b99..8e8b95f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java @@ -179,4 +179,19 @@ public List<MgtStaffPageVo> pageMgtStaff(Page page, MgtStaffPageDto mgtStaffPageDto){ return sysStaffMapper.pageMgtStaff(page, mgtStaffPageDto); } + + /** + * @description + * @author jqs + * @date 2023/7/14 9:52 + * @param mobile + * @return SysStaff + */ + @Override + public SysStaff getByMobile(String mobile){ + LambdaQueryWrapper<SysStaff> queryWrapper = new LambdaQueryWrapper(); + queryWrapper.eq(SysStaff::getDelFlag,0); + queryWrapper.eq(SysStaff::getStaffMobile,mobile); + return this.getOne(queryWrapper,false); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java index 7fca57e..4557a81 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java @@ -75,4 +75,13 @@ * @return List<MgtStaffPageVo> */ List<MgtStaffPageVo> pageMgtStaff(Page page, MgtStaffPageDto mgtStaffPageDto); + + /** + * @description + * @author jqs + * @date 2023/7/14 9:53 + * @param mobile + * @return SysStaff + */ + SysStaff getByMobile(String mobile); } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml index a310a03..0cd36c2 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml @@ -14,12 +14,12 @@ nacos: discovery: # 服务注册地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 config: # 配置中心地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml b/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml index 16510ce..f9c405e 100644 --- a/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml +++ b/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml @@ -14,12 +14,12 @@ nacos: discovery: # 服务注册地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 config: # 配置中心地址 - #server-addr: 47.109.78.184:5000 - server-addr: 127.0.0.1:8848 + server-addr: 47.109.78.184:5000 + #server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 -- Gitblit v1.7.1