From 86f2f7e0023bfc56b2c20f2c594dc6a935a41a9d Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期一, 25 十一月 2024 11:41:27 +0800
Subject: [PATCH] 11.25
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsCategoryController.java | 19 +
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java | 396 +++++++++++-----------
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OrderFallbackFactory.java | 39 ++
ruoyi-service/ruoyi-account/pom.xml | 4
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java | 1
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java | 44 ++
ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java | 4
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java | 2
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java | 84 ++++
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OrderClient.java | 24 +
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java | 57 +++
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/BannerController.java | 44 ++
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/IndexConfigSetDto.java | 23 +
ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java | 5
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Technician.java | 7
/dev/null | 75 ----
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SystemConfigController.java | 37 +
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/GoodsEvaluate.java | 6
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 2
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java | 150 ++++++++
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 33 +
21 files changed, 756 insertions(+), 300 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/GoodsEvaluate.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/GoodsEvaluate.java
index b4c2140..745cad0 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/GoodsEvaluate.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/GoodsEvaluate.java
@@ -10,6 +10,7 @@
import lombok.EqualsAndHashCode;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
@@ -39,10 +40,13 @@
@ApiModelProperty(value = "用户id")
@TableField("app_user_id")
private Long appUserId;
+ @ApiModelProperty(value = "订单id")
+ @TableField("order_id")
+ private Long orderId;
@ApiModelProperty(value = "评分")
@TableField("grade")
- private Integer grade;
+ private BigDecimal grade;
@ApiModelProperty(value = "评价内容")
@TableField("comment")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Technician.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Technician.java
index 3483578..73960e5 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Technician.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Technician.java
@@ -7,6 +7,7 @@
import lombok.EqualsAndHashCode;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
@@ -69,6 +70,12 @@
@ApiModelProperty(value = "添加时间")
@TableField("create_time")
private LocalDateTime createTime;
+ @ApiModelProperty("服务次数")
+ @TableField(exist = false)
+ private Integer serveCount;
+ @ApiModelProperty("平均分")
+ @TableField(exist = false)
+ private BigDecimal grade;
}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/IndexConfigSetDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/IndexConfigSetDto.java
new file mode 100644
index 0000000..00a8f45
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/IndexConfigSetDto.java
@@ -0,0 +1,23 @@
+package com.ruoyi.other.api.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class IndexConfigSetDto {
+ @ApiModelProperty("公司理念")
+ private String companyWant;
+ @ApiModelProperty("宣传图片1")
+ private String pic1;
+ @ApiModelProperty("跳转类型1 - 1无2外部链接3商品详情4秒杀商品详情5领卷中心")
+ private Integer direct1;
+ @ApiModelProperty("宣传图片2")
+ private String pic2;
+ @ApiModelProperty("跳转类型2 - 1无2外部链接3商品详情4秒杀商品详情5领卷中心")
+ private String direct2;
+ @ApiModelProperty("公司简介")
+ private String companyInfo;
+
+
+
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OrderFallbackFactory.java
new file mode 100644
index 0000000..762b040
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OrderFallbackFactory.java
@@ -0,0 +1,39 @@
+package com.ruoyi.other.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.dto.ExchangeBackDto;
+import com.ruoyi.common.core.dto.ExchangeDto;
+
+import com.ruoyi.other.api.feignClient.OrderClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 充电订单服务降级处理
+ *
+ * @author ruoyi
+ */
+@Component
+public class OrderFallbackFactory implements FallbackFactory<OrderClient>
+{
+ private static final Logger log = LoggerFactory.getLogger(OrderFallbackFactory.class);
+
+
+ @Override
+ public OrderClient create(Throwable cause) {
+ log.error("商品订单调用失败:{}", cause.getMessage());
+ return new OrderClient() {
+
+
+ @Override
+ public R getOrderIdsByTechId(Integer id) {
+ return R.fail("根据技师id查订单ids失败:" + cause.getMessage());
+ }
+
+ };
+ }
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OrderClient.java
new file mode 100644
index 0000000..75929d3
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OrderClient.java
@@ -0,0 +1,24 @@
+package com.ruoyi.other.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.dto.ExchangeBackDto;
+import com.ruoyi.common.core.dto.ExchangeDto;
+
+import com.ruoyi.other.api.factory.OrderFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 后台订单服务
+ * @author ruoyi
+ */
+@FeignClient(contextId = "OrderClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = OrderFallbackFactory.class)
+public interface OrderClient {
+ @PostMapping(value = "/management/give/vip")
+ public R<List<Long>> getOrderIdsByTechId(@RequestParam("id") Integer id);
+
+
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java
new file mode 100644
index 0000000..6ee36aa
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java
@@ -0,0 +1,150 @@
+package com.ruoyi.system.api.model;
+
+
+import java.io.Serializable;
+import java.util.Set;
+
+/**
+ * 用户信息
+ *
+ * @author ruoyi
+ */
+public class LoginUser implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 用户唯一标识
+ */
+ private String token;
+
+ /**
+ * 用户名id
+ */
+ private Long userid;
+
+ /**
+ * 用户名
+ */
+ private String username;
+
+ /**
+ * 登录时间
+ */
+ private Long loginTime;
+
+ /**
+ * 过期时间
+ */
+ private Long expireTime;
+
+ /**
+ * 登录IP地址
+ */
+ private String ipaddr;
+
+ /**
+ * 权限列表
+ */
+ private Set<String> permissions;
+
+ /**
+ * 角色列表
+ */
+ private Set<String> roles;
+
+ /**
+ * 用户信息
+ */
+ private SysUser sysUser;
+
+ public String getToken()
+ {
+ return token;
+ }
+
+ public void setToken(String token)
+ {
+ this.token = token;
+ }
+
+ public Long getUserid()
+ {
+ return userid;
+ }
+
+ public void setUserid(Long userid)
+ {
+ this.userid = userid;
+ }
+
+ public String getUsername()
+ {
+ return username;
+ }
+
+ public void setUsername(String username)
+ {
+ this.username = username;
+ }
+
+ public Long getLoginTime()
+ {
+ return loginTime;
+ }
+
+ public void setLoginTime(Long loginTime)
+ {
+ this.loginTime = loginTime;
+ }
+
+ public Long getExpireTime()
+ {
+ return expireTime;
+ }
+
+ public void setExpireTime(Long expireTime)
+ {
+ this.expireTime = expireTime;
+ }
+
+ public String getIpaddr()
+ {
+ return ipaddr;
+ }
+
+ public void setIpaddr(String ipaddr)
+ {
+ this.ipaddr = ipaddr;
+ }
+
+ public Set<String> getPermissions()
+ {
+ return permissions;
+ }
+
+ public void setPermissions(Set<String> permissions)
+ {
+ this.permissions = permissions;
+ }
+
+ public Set<String> getRoles()
+ {
+ return roles;
+ }
+
+ public void setRoles(Set<String> roles)
+ {
+ this.roles = roles;
+ }
+
+ public SysUser getSysUser()
+ {
+ return sysUser;
+ }
+
+ public void setSysUser(SysUser sysUser)
+ {
+ this.sysUser = sysUser;
+ }
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java
new file mode 100644
index 0000000..be73042
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java
@@ -0,0 +1,57 @@
+package com.ruoyi.system.api.model;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 用户信息 小程序登录使用
+ *
+ * @author 无关风月
+ */
+@Data
+public class LoginUserApplet implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 用户唯一标识
+ */
+ private String token;
+ /**
+ * 用户姓名
+ */
+ private String name;
+
+ /**
+ * 用户名id
+ */
+ private Long userId;
+ private String userIdStr;
+
+ /**
+ * 用户手机号
+ */
+ private String phone;
+ /**
+ * 登录时间
+ */
+ private Long loginTime;
+
+ /**
+ * 过期时间
+ */
+ private Long expireTime;
+
+ /**
+ * 登录IP地址
+ */
+ private String ipaddr;
+ /**
+ * 头像
+ */
+ private String avatar;
+ /**
+ * 地址
+ */
+ private String address;
+}
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
index c443059..53ed3c5 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
@@ -14,7 +14,6 @@
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.RemoteUserService;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.model.LoginUser;
diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java
index a3220ef..2d674db 100644
--- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java
+++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java
@@ -4,6 +4,8 @@
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.system.api.model.SysOperLog;
import org.apache.commons.lang3.ArrayUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
@@ -27,7 +29,7 @@
import com.ruoyi.common.log.filter.PropertyPreExcludeFilter;
import com.ruoyi.common.log.service.AsyncLogService;
import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.system.api.domain.SysOperLog;
+
/**
* 操作日志记录处理
diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java
index e44b648..3b712b3 100644
--- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java
+++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java
@@ -1,11 +1,10 @@
package com.ruoyi.common.log.service;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.ruoyi.system.api.model.SysOperLog;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.constant.SecurityConstants;
-import com.ruoyi.system.api.RemoteLogService;
-import com.ruoyi.system.api.domain.SysOperLog;
+
import javax.annotation.Resource;
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
index d748b39..d62ea0c 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -6,6 +6,7 @@
import javax.servlet.http.HttpServletRequest;
import com.ruoyi.common.core.exception.user.UserAppletException;
+import com.ruoyi.system.api.model.LoginUser;
import com.ruoyi.system.api.model.LoginUserApplet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -18,7 +19,6 @@
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.system.api.model.LoginUser;
/**
* token验证处理
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/DictUtils.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/DictUtils.java
deleted file mode 100644
index 8282fdc..0000000
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/DictUtils.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.ruoyi.common.security.utils;
-
-import java.util.Collection;
-import java.util.List;
-import com.alibaba.fastjson2.JSONArray;
-import com.ruoyi.common.core.constant.CacheConstants;
-import com.ruoyi.common.core.utils.SpringUtils;
-import com.ruoyi.common.core.utils.StringUtils;
-import com.ruoyi.common.redis.service.RedisService;
-import com.ruoyi.system.api.domain.SysDictData;
-
-/**
- * 字典工具类
- *
- * @author ruoyi
- */
-public class DictUtils
-{
- /**
- * 设置字典缓存
- *
- * @param key 参数键
- * @param dictDatas 字典数据列表
- */
- public static void setDictCache(String key, List<SysDictData> dictDatas)
- {
- SpringUtils.getBean(RedisService.class).setCacheObject(getCacheKey(key), dictDatas);
- }
-
- /**
- * 获取字典缓存
- *
- * @param key 参数键
- * @return dictDatas 字典数据列表
- */
- public static List<SysDictData> getDictCache(String key)
- {
- JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(getCacheKey(key));
- if (StringUtils.isNotNull(arrayCache))
- {
- return arrayCache.toList(SysDictData.class);
- }
- return null;
- }
-
- /**
- * 删除指定字典缓存
- *
- * @param key 字典键
- */
- public static void removeDictCache(String key)
- {
- SpringUtils.getBean(RedisService.class).deleteObject(getCacheKey(key));
- }
-
- /**
- * 清空字典缓存
- */
- public static void clearDictCache()
- {
- Collection<String> keys = SpringUtils.getBean(RedisService.class).keys(CacheConstants.SYS_DICT_KEY + "*");
- SpringUtils.getBean(RedisService.class).deleteObject(keys);
- }
-
- /**
- * 设置cache key
- *
- * @param configKey 参数键
- * @return 缓存键key
- */
- public static String getCacheKey(String configKey)
- {
- return CacheConstants.SYS_DICT_KEY + configKey;
- }
-}
diff --git a/ruoyi-service/ruoyi-account/pom.xml b/ruoyi-service/ruoyi-account/pom.xml
index 4c62224..7e756da 100644
--- a/ruoyi-service/ruoyi-account/pom.xml
+++ b/ruoyi-service/ruoyi-account/pom.xml
@@ -117,6 +117,10 @@
<version>2.6</version>
<scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
</dependencies>
<build>
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
index de53754..563464b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -1,8 +1,20 @@
package com.ruoyi.account.controller;
+import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.service.AppUserService;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.service.TokenService;
+import org.junit.Test;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import javax.annotation.Resource;
+import java.util.List;
/**
* <p>
@@ -15,6 +27,27 @@
@RestController
@RequestMapping("/app-user")
public class AppUserController {
+ @Resource
+ private TokenService tokenService;
+ @Resource
+ private AppUserService appUserService;
+ @PostMapping("/index")
+ @ApiOperation(value = "个人中心首页", tags = {"小程序-个人中心首页"})
+ @Test
+ public void index(){
+ System.err.println("=-====");
+// Long userId = tokenService.getLoginUserApplet().getUserId();
+ }
+ public void test(Long userId,Integer count){
+ List<AppUser> list = appUserService.lambdaQuery().eq(AppUser::getInviteUserId, userId).list();
+ count = count + list.size();
+ for (AppUser appUser : list) {
+ test(appUser.getId(),count);
+ }
+
+
+ }
+
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java
index 4ec9510..16c080e 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java
@@ -2,11 +2,9 @@
import com.alibaba.fastjson.JSON;
import com.ruoyi.account.api.model.AppUser;
-import com.ruoyi.account.service.IAppUserService;
import com.ruoyi.common.core.constant.TokenConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
-import com.ruoyi.system.api.domain.SysUser;
import org.apache.logging.log4j.core.config.Order;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java
new file mode 100644
index 0000000..2482d4a
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java
@@ -0,0 +1,44 @@
+package com.ruoyi.account.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 服务类
+ * </p>
+ *
+ * @author luodangjia
+ * @since 2024-08-06
+ */
+public interface TAppUserService extends IService<TAppUser> {
+
+ /**
+ * 微信小程序登录用户封装
+ * @param appletUserDecodeData
+ * @return
+ */
+ Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData,Long inviteUserId);
+
+ /**
+ * 支付宝小程序登录用户封装
+ * @param response
+ * @return
+ */
+// Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserInfoShareResponse userInfo);
+ Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,String phone,Long inviteUserId);
+
+ /**
+ * 封装用户信息和token
+ * @param appUser
+ * @return
+ */
+ Map<String, Object> getUserInfo(TAppUser appUser);
+
+ /**
+ * 账号判断
+ * @param status
+ */
+ public void throwInfo(Integer status);
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java
index 7322624..7cf2c31 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java
@@ -1,203 +1,203 @@
-package com.ruoyi.account.util.weChat;
-
-import cn.hutool.http.HttpRequest;
-import cn.hutool.http.HttpResponse;
-import cn.hutool.http.HttpUtil;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 微信工具类
- */
-@Slf4j
-@Component
-public class WeChatUtil {
-
- @Value("${wx.appletsAppid}")
- private String wxAppletsAppid;
-
- @Value("${wx.appletsAppSecret}")
- private String wxAppletsAppSecret;
-
- @Value("{wx.officialAccountAppSecret}")
- private String officialAccountAppSecret;
-
- @Value("${wx.appid}")
- private String webAppId;
-
- @Value("${wx.appSecret}")
- private String webAppSecret;
-
-
- /**
- * 小程序使用jscode获取openid
- * @param jscode
- * @return
- */
- public Map<String, Object> code2Session(String jscode) throws Exception{
- String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret
- + "&js_code=" + jscode + "&grant_type=authorization_code";
- HttpRequest get = HttpUtil.createGet(url);
- HttpResponse response = get.execute();
- int status = response.getStatus();
- if(200 != status){
- throw new RuntimeException(response.body());
- }
- JSONObject jsonObject = JSON.parseObject(response.body());
- int errcode = jsonObject.getIntValue("errcode");
- Map<String, Object> map = new HashMap<>();
- map.put("errcode", errcode);
- if(errcode == 0){//成功
- map.put("openid", jsonObject.getString("openid"));
- map.put("sessionKey", jsonObject.getString("session_key"));
- map.put("unionid", jsonObject.getString("unionid"));
- return map;
- }
- if(errcode == -1){//系统繁忙,此时请开发者稍候再试
- map.put("msg", jsonObject.getString("errmsg"));
- return map;
- }
- if(errcode == 40029){//code 无效
- map.put("msg", jsonObject.getString("errmsg"));
- return map;
- }
- if(errcode == 45011){//频率限制,每个用户每分钟100次
- map.put("msg", jsonObject.getString("errmsg"));
- return map;
- }
- return null;
- }
-
-
- /**
- * 获取微信小程序token
- * @return
- */
- public String getWxAppletsAccessToken() throws Exception{
- String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret;
- HttpRequest get = HttpUtil.createGet(url);
- HttpResponse response = get.execute();
- if(response.getStatus() != 200){
- return "";
- }
- JSONObject jsonObject = JSON.parseObject(response.body());
- return jsonObject.getString("access_token");
- }
-
-
- /**
- * 网站应用登录
- * @param code
- * @return
- */
- public Map<String, String> webAccessToken(String code) throws Exception{
- String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + webAppId + "&secret=" + webAppSecret + "&code=" + code + "&grant_type=authorization_code";
- HttpRequest get = HttpUtil.createGet(url);
- HttpResponse response = get.execute();
- if(response.getStatus() != 200){
- return null;
- }
- JSONObject jsonObject = JSON.parseObject(response.body());
- int errcode = jsonObject.getIntValue("errcode");
- Map<String, String> map = new HashMap<>();
- if(errcode == 0){//成功
- map.put("access_token", jsonObject.getString("access_token"));
- map.put("openid", jsonObject.getString("openid"));
- map.put("refresh_token", jsonObject.getString("refresh_token"));
- map.put("unionid", jsonObject.getString("unionid"));
- return map;
- }
- if(errcode == -1){//系统繁忙,此时请开发者稍候再试
- map.put("msg", jsonObject.getString("errmsg"));
- return map;
- }
- if(errcode == 40029){//code 无效
- map.put("msg", jsonObject.getString("errmsg"));
- return map;
- }
- if(errcode == 45011){//频率限制,每个用户每分钟100次
- map.put("msg", jsonObject.getString("errmsg"));
- return map;
- }
- return map;
- }
-
-
- /**
- * 获取微信个人信息
- * @param access_token
- * @param openid
- * @return
- */
- public Map<String, Object> getUserInfo(String access_token, String openid) throws Exception{
- String url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openid;
- HttpRequest get = HttpUtil.createGet(url);
- HttpResponse response = get.execute();
- if(response.getStatus() != 200){
- return null;
- }
- JSONObject jsonObject = JSON.parseObject(response.body());
- int errcode = jsonObject.getIntValue("errcode");
- Map<String, Object> map = new HashMap<>();
- if(errcode == 0){//成功
- map.put("nickname", jsonObject.getString("nickname"));
- map.put("openid", jsonObject.getString("openid"));
- map.put("sex", jsonObject.getString("sex"));
- map.put("headimgurl", jsonObject.getString("headimgurl"));
- return map;
- }
- if(errcode == -1){//系统繁忙,此时请开发者稍候再试
- map.put("msg", jsonObject.getString("errmsg"));
- return map;
- }
- if(errcode == 40029){//code 无效
- map.put("msg", jsonObject.getString("errmsg"));
- return map;
- }
- if(errcode == 45011){//频率限制,每个用户每分钟100次
- map.put("msg", jsonObject.getString("errmsg"));
- return map;
- }
- return map;
- }
-
-
-
-
+//package com.ruoyi.account.util.weChat;
+//
+//import cn.hutool.http.HttpRequest;
+//import cn.hutool.http.HttpResponse;
+//import cn.hutool.http.HttpUtil;
+//import com.alibaba.fastjson.JSON;
+//import com.alibaba.fastjson.JSONObject;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.stereotype.Component;
+//import java.util.HashMap;
+//import java.util.Map;
+//
+///**
+// * 微信工具类
+// */
+//@Slf4j
+//@Component
+//public class WeChatUtil {
+//
+// @Value("${wx.appletsAppid}")
+// private String wxAppletsAppid;
+//
+// @Value("${wx.appletsAppSecret}")
+// private String wxAppletsAppSecret;
+//
+// @Value("{wx.officialAccountAppSecret}")
+// private String officialAccountAppSecret;
+//
+// @Value("${wx.appid}")
+// private String webAppId;
+//
+// @Value("${wx.appSecret}")
+// private String webAppSecret;
+//
+//
// /**
-// * 获取小程序二维码
-// * @param page 跳转页 例如 pages/index/index
-// * @param scene 参数 a=1&b=2
+// * 小程序使用jscode获取openid
+// * @param jscode
+// * @return
// */
-// public InputStream getwxacodeunlimit(String page, String scene){
-// try {
-// String token = getWxAppletsAccessToken();
-// if(StringUtils.isEmpty(token)){
-// System.err.println("获取接口调用凭证失败");
-// }
-// String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + token;
-// Map<String, Object> param = new HashMap<>();
-// param.put("scene", scene);
-// param.put("page", page);
-// HttpHeaders httpHeaders = new HttpHeaders();
-// MediaType type=MediaType.parseMediaType("application/json;charset=UTF-8");
-// httpHeaders.setContentType(type);
-// HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(param, httpHeaders);
-// ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class, new Object[0]);
-// String body1 = exchange.getBody();
-//// System.err.println(body1);
-// ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
-// byte[] body = entity.getBody();
-//// System.err.println(Base64.encodeBase64String(body));
-// return new ByteArrayInputStream(body);
-// }catch (Exception e){
-// e.printStackTrace();
+// public Map<String, Object> code2Session(String jscode) throws Exception{
+// String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret
+// + "&js_code=" + jscode + "&grant_type=authorization_code";
+// HttpRequest get = HttpUtil.createGet(url);
+// HttpResponse response = get.execute();
+// int status = response.getStatus();
+// if(200 != status){
+// throw new RuntimeException(response.body());
+// }
+// JSONObject jsonObject = JSON.parseObject(response.body());
+// int errcode = jsonObject.getIntValue("errcode");
+// Map<String, Object> map = new HashMap<>();
+// map.put("errcode", errcode);
+// if(errcode == 0){//成功
+// map.put("openid", jsonObject.getString("openid"));
+// map.put("sessionKey", jsonObject.getString("session_key"));
+// map.put("unionid", jsonObject.getString("unionid"));
+// return map;
+// }
+// if(errcode == -1){//系统繁忙,此时请开发者稍候再试
+// map.put("msg", jsonObject.getString("errmsg"));
+// return map;
+// }
+// if(errcode == 40029){//code 无效
+// map.put("msg", jsonObject.getString("errmsg"));
+// return map;
+// }
+// if(errcode == 45011){//频率限制,每个用户每分钟100次
+// map.put("msg", jsonObject.getString("errmsg"));
+// return map;
// }
// return null;
// }
-}
+//
+//
+// /**
+// * 获取微信小程序token
+// * @return
+// */
+// public String getWxAppletsAccessToken() throws Exception{
+// String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret;
+// HttpRequest get = HttpUtil.createGet(url);
+// HttpResponse response = get.execute();
+// if(response.getStatus() != 200){
+// return "";
+// }
+// JSONObject jsonObject = JSON.parseObject(response.body());
+// return jsonObject.getString("access_token");
+// }
+//
+//
+// /**
+// * 网站应用登录
+// * @param code
+// * @return
+// */
+// public Map<String, String> webAccessToken(String code) throws Exception{
+// String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + webAppId + "&secret=" + webAppSecret + "&code=" + code + "&grant_type=authorization_code";
+// HttpRequest get = HttpUtil.createGet(url);
+// HttpResponse response = get.execute();
+// if(response.getStatus() != 200){
+// return null;
+// }
+// JSONObject jsonObject = JSON.parseObject(response.body());
+// int errcode = jsonObject.getIntValue("errcode");
+// Map<String, String> map = new HashMap<>();
+// if(errcode == 0){//成功
+// map.put("access_token", jsonObject.getString("access_token"));
+// map.put("openid", jsonObject.getString("openid"));
+// map.put("refresh_token", jsonObject.getString("refresh_token"));
+// map.put("unionid", jsonObject.getString("unionid"));
+// return map;
+// }
+// if(errcode == -1){//系统繁忙,此时请开发者稍候再试
+// map.put("msg", jsonObject.getString("errmsg"));
+// return map;
+// }
+// if(errcode == 40029){//code 无效
+// map.put("msg", jsonObject.getString("errmsg"));
+// return map;
+// }
+// if(errcode == 45011){//频率限制,每个用户每分钟100次
+// map.put("msg", jsonObject.getString("errmsg"));
+// return map;
+// }
+// return map;
+// }
+//
+//
+// /**
+// * 获取微信个人信息
+// * @param access_token
+// * @param openid
+// * @return
+// */
+// public Map<String, Object> getUserInfo(String access_token, String openid) throws Exception{
+// String url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openid;
+// HttpRequest get = HttpUtil.createGet(url);
+// HttpResponse response = get.execute();
+// if(response.getStatus() != 200){
+// return null;
+// }
+// JSONObject jsonObject = JSON.parseObject(response.body());
+// int errcode = jsonObject.getIntValue("errcode");
+// Map<String, Object> map = new HashMap<>();
+// if(errcode == 0){//成功
+// map.put("nickname", jsonObject.getString("nickname"));
+// map.put("openid", jsonObject.getString("openid"));
+// map.put("sex", jsonObject.getString("sex"));
+// map.put("headimgurl", jsonObject.getString("headimgurl"));
+// return map;
+// }
+// if(errcode == -1){//系统繁忙,此时请开发者稍候再试
+// map.put("msg", jsonObject.getString("errmsg"));
+// return map;
+// }
+// if(errcode == 40029){//code 无效
+// map.put("msg", jsonObject.getString("errmsg"));
+// return map;
+// }
+// if(errcode == 45011){//频率限制,每个用户每分钟100次
+// map.put("msg", jsonObject.getString("errmsg"));
+// return map;
+// }
+// return map;
+// }
+//
+//
+//
+//
+//// /**
+//// * 获取小程序二维码
+//// * @param page 跳转页 例如 pages/index/index
+//// * @param scene 参数 a=1&b=2
+//// */
+//// public InputStream getwxacodeunlimit(String page, String scene){
+//// try {
+//// String token = getWxAppletsAccessToken();
+//// if(StringUtils.isEmpty(token)){
+//// System.err.println("获取接口调用凭证失败");
+//// }
+//// String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + token;
+//// Map<String, Object> param = new HashMap<>();
+//// param.put("scene", scene);
+//// param.put("page", page);
+//// HttpHeaders httpHeaders = new HttpHeaders();
+//// MediaType type=MediaType.parseMediaType("application/json;charset=UTF-8");
+//// httpHeaders.setContentType(type);
+//// HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(param, httpHeaders);
+//// ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class, new Object[0]);
+//// String body1 = exchange.getBody();
+////// System.err.println(body1);
+//// ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
+//// byte[] body = entity.getBody();
+////// System.err.println(Base64.encodeBase64String(body));
+//// return new ByteArrayInputStream(body);
+//// }catch (Exception e){
+//// e.printStackTrace();
+//// }
+//// return null;
+//// }
+//}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/BannerController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/BannerController.java
index 750a415..4f31a82 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/BannerController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/BannerController.java
@@ -1,6 +1,7 @@
package com.ruoyi.other.controller;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.other.api.domain.Banner;
@@ -8,10 +9,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.annotations.Param;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@@ -30,8 +28,8 @@
public class BannerController {
@Resource
private BannerService bannerService;
- @GetMapping("/list")
- @ApiOperation(value = "列表", tags = {"小程序-banner"})
+ @PostMapping("/index/list")
+ @ApiOperation(value = "banner列表", tags = {"小程序-首页"})
public R<List<Banner>> list(String name, Integer jumpType, Integer position){
List<Banner> list = bannerService.lambdaQuery().like(StringUtils.isNotEmpty(name), Banner::getName, name)
.eq(Banner::getJumpType, jumpType)
@@ -39,6 +37,40 @@
.list();
return R.ok(list);
}
+ @PostMapping("/add")
+ @ApiOperation(value = "添加", tags = {"后台-广告管理-banner管理"})
+ public R add(@RequestBody Banner banner){
+ bannerService.save(banner);
+ return R.ok();
+ }
+ @PostMapping("/delete")
+ @ApiOperation(value = "删除", tags = {"后台-广告管理-banner管理"})
+ public R delete(@RequestParam Integer id){
+ bannerService.removeById(id);
+ return R.ok();
+ }
+ @PostMapping("/edit")
+ @ApiOperation(value = "修改", tags = {"后台-广告管理-banner管理"})
+ public R edit(@RequestBody Banner banner){
+ bannerService.updateById(banner);
+ return R.ok();
+ }
+ @PostMapping("/detail")
+ @ApiOperation(value = "详情", tags = {"后台-广告管理-banner管理"})
+ public R detail(@RequestParam Integer id){
+ Banner byId = bannerService.getById(id);
+ return R.ok(byId);
+ }
+ @PostMapping("/page/list")
+ @ApiOperation(value = "列表", tags = {"后台-广告管理--banner"})
+ public R<Page<Banner>> pagelist(String name, Integer jumpType, Integer position,Integer pageNum,Integer pageSize){
+ Page<Banner> page = bannerService.lambdaQuery().like(StringUtils.isNotEmpty(name), Banner::getName, name)
+ .eq(Banner::getJumpType, jumpType)
+ .eq(Banner::getPosition, position)
+ .page(Page.of(pageNum, pageSize));
+ return R.ok(page);
+ }
+
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsCategoryController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsCategoryController.java
index 481f4d6..7b59d65 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsCategoryController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsCategoryController.java
@@ -1,10 +1,16 @@
package com.ruoyi.other.controller;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.GoodsCategory;
+import com.ruoyi.other.service.GoodsCategoryService;
+import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.util.List;
/**
* <p>
@@ -17,7 +23,18 @@
@RestController
@RequestMapping("/goods-category")
public class GoodsCategoryController {
+ @Resource
+ private GoodsCategoryService goodsCategoryService;
-
+ @PostMapping("/index/list")
+ @ApiOperation(value = "商品分类", tags = {"小程序-首页"})
+ public R<List<GoodsCategory>> list(){
+ List<GoodsCategory> list = goodsCategoryService.lambdaQuery()
+ .orderByDesc(GoodsCategory::getCreateTime)
+ .last("limit 8")
+ .list()
+ ;
+ return R.ok(list);
+ }
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SystemConfigController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SystemConfigController.java
index 5971bd0..e9de37f 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SystemConfigController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SystemConfigController.java
@@ -1,16 +1,17 @@
package com.ruoyi.other.controller;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.other.api.domain.SystemConfig;
+import com.ruoyi.other.api.dto.IndexConfigSetDto;
import com.ruoyi.other.service.SystemConfigService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
+import java.util.List;
/**
* <p>
@@ -25,11 +26,29 @@
public class SystemConfigController {
@Resource
private SystemConfigService systemConfigService;
- @GetMapping("/byType")
- @ApiOperation(value = "1=启动页管理,2=首页配置,3=订单包邮设置", tags = {"小程序-启动页面","小程序-首页","订单包邮配置"})
- public R<SystemConfig> byType(Integer type){
- SystemConfig one = systemConfigService.lambdaQuery().eq(SystemConfig::getType, type).last("limit 1").one();
- return R.ok(one);
+ @PostMapping("/index/add")
+ @ApiOperation(value = "添加", tags = {"后台-广告管理-首页配置"})
+ public R add(@RequestBody IndexConfigSetDto indexConfigSetDto){
+ //先删除type=2的数据
+ List<SystemConfig> list = systemConfigService.lambdaQuery().eq(SystemConfig::getType, 2).list();
+ systemConfigService.removeBatchByIds(list);
+ SystemConfig systemConfig = new SystemConfig();
+ systemConfig.setType(2);
+ systemConfig.setContent(JSON.toJSONString(indexConfigSetDto));
+ systemConfigService.save(systemConfig);
+ return R.ok();
+ }
+ @PostMapping("/index/detail")
+ @ApiOperation(value = "宣传图片-公司简介", tags = {"后台-广告管理-首页配置","小程序-首页"})
+ public R<IndexConfigSetDto> detail(){
+ SystemConfig one = systemConfigService.lambdaQuery().eq(SystemConfig::getType, 2).one();
+ if (one==null){
+ return R.ok();
+ }
+ IndexConfigSetDto indexConfigSetDto = JSONObject.parseObject(one.getContent(), IndexConfigSetDto.class);
+ return R.ok(indexConfigSetDto);
+
}
+
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java
index 9a0c750..8a9f299 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java
@@ -1,9 +1,23 @@
package com.ruoyi.other.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.other.api.domain.GoodsEvaluate;
+import com.ruoyi.other.api.domain.Technician;
+import com.ruoyi.other.api.domain.TechnicianSubscribe;
+import com.ruoyi.other.api.feignClient.OrderClient;
+import com.ruoyi.other.service.GoodsEvaluateService;
+import com.ruoyi.other.service.TechnicianService;
+import com.ruoyi.other.service.TechnicianSubscribeService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
-import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
/**
* <p>
@@ -16,6 +30,72 @@
@RestController
@RequestMapping("/technician")
public class TechnicianController {
+ @Resource
+ private TechnicianService technicianService;
+ @Resource
+ private GoodsEvaluateService goodsEvaluateService;
+ @Resource
+ private OrderClient orderClient;
+ @Resource
+ private TechnicianSubscribeService technicianSubscribeService;
+ @Resource
+ private TokenService tokenService;
+ @PostMapping("/shop/list")
+ @ApiOperation(value = "获取门店的技师列表", tags = {"小程序-门店详情-技师预约"})
+ public R<Page<Technician>> shoplist(@RequestParam Integer shopId,@RequestParam Integer pageNum,@RequestParam Integer pageSize){
+ //查出技师列表
+ Page<Technician> page = technicianService.lambdaQuery().eq(Technician::getShopId, shopId).eq(Technician::getStatus, 2).page(Page.of(pageNum, pageSize));
+ for (Technician technician : page.getRecords()) {
+ //查出技师订单
+ R<List<Long>> orderIdsByTechId = orderClient.getOrderIdsByTechId(technician.getId());
+ if (orderIdsByTechId.getData().isEmpty()){
+ technician.setGrade(new BigDecimal(0));
+ technician.setServeCount(0);
+ continue;
+ }
+ //查出技师评价
+ List<GoodsEvaluate> list = goodsEvaluateService.lambdaQuery().in(GoodsEvaluate::getOrderId, orderIdsByTechId.getData()).list();
+
+ //算出平均分并保留一位小数
+ BigDecimal avg = list.stream().map(GoodsEvaluate::getGrade).reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(list.size()), 1, BigDecimal.ROUND_HALF_UP);
+ technician.setGrade(avg);
+ technician.setServeCount(orderIdsByTechId.getData().size());
+
+ }
+ return R.ok(page);
+ }
+
+ @PostMapping("/shop/detail")
+ @ApiOperation(value = "获取门店的技师详情", tags = {"小程序-门店详情-技师预约"})
+ public R<Technician> shopdetail(@RequestParam Integer techId){
+ //查出技师列表
+ Technician technician = technicianService.getById(techId);
+
+ //查出技师订单
+ R<List<Long>> orderIdsByTechId = orderClient.getOrderIdsByTechId(technician.getId());
+ if (orderIdsByTechId.getData().isEmpty()){
+ technician.setGrade(new BigDecimal(0));
+ technician.setServeCount(0);
+ return R.ok(technician);
+ }
+ //查出技师评价
+ List<GoodsEvaluate> list = goodsEvaluateService.lambdaQuery().in(GoodsEvaluate::getOrderId, orderIdsByTechId.getData()).list();
+
+ //算出平均分并保留一位小数
+ BigDecimal avg = list.stream().map(GoodsEvaluate::getGrade).reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(list.size()), 1, BigDecimal.ROUND_HALF_UP);
+ technician.setGrade(avg);
+ technician.setServeCount(orderIdsByTechId.getData().size());
+ return R.ok(technician);
+ }
+ @PostMapping("/shop/tech")
+ @ApiOperation(value = "预约操作", tags = {"小程序-门店详情-技师预约"})
+ public R<Technician> shoptech(@RequestBody TechnicianSubscribe subscribe){
+ Long userId = tokenService.getLoginUserApplet().getUserId();
+ subscribe.setAppUserId(userId);
+ technicianSubscribeService.save(subscribe);
+ return R.ok();
+ }
+
}
--
Gitblit v1.7.1