ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseBatchDto.java
New file @@ -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; } 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; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseGetDto.java
New file @@ -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; } 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; 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() { 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; } 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; 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; } }; } 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()); } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteStaffFallbackFactory.java
New file @@ -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; } }; } } 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; } }; } } 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); } 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); } 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); } 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); } 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 { 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; } 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 # 共享配置 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 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 # 共享配置 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 # 共享配置 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 # 共享配置 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> 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> 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 # 共享配置 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); } } 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; 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; 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); } 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); } 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("定时检查优惠券过期任务开始执行"); 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); } } 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); } 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 # 共享配置 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> 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) { 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); } 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; } 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 # 共享配置 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"> 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> 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 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 = "修改合作时间") 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); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffController.java
File was deleted ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffShopController.java
New file @@ -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(); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffTaskController.java
New file @@ -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(); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtFrozenShopDto.java
New file @@ -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; } 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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffAddTaskDto.java
New file @@ -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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffAgencyPageDto.java
New file @@ -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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopCCEditDto.java
New file @@ -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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopECEditDto.java
New file @@ -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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopEstimateEditDto.java
New file @@ -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; } 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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopTaskPageDto.java
New file @@ -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; } 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() { ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/ExtendContactsVo.java
New file @@ -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; } 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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffAgencyTaskRecordPageVo.java
New file @@ -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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffHomeShopTotalVo.java
New file @@ -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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffMyShopTaskRecordPageVo.java
New file @@ -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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java
New file @@ -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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoVo.java
File was deleted ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopPageVo.java
New file @@ -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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java
New file @@ -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; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopTaskPageVo.java
New file @@ -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; } 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); } 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); } 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); } 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); } 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); } 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); } } 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; } } 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 获取最近任务 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; } } 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(); } } 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); } 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); } 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); } 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); } 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); } 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 # 共享配置 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> 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} 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> 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 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> 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> ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/StaffController.java
File was renamed from ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/staff/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; 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); } } 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()); 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); 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); } } 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); } 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 # 共享配置 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 # 共享配置