Compare commits
52 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a27b0c8deb | |||
| c424bc0ca8 | |||
| 010132f237 | |||
| 91188fe1a0 | |||
| a5cdf202f1 | |||
| a30fb508de | |||
| aa792a10b1 | |||
| bcdd99eb4a | |||
| 50c1f73901 | |||
| 0d93550e43 | |||
| 3b05b235bc | |||
| 2fa9950933 | |||
| 76bd360e92 | |||
| f459579768 | |||
| cb388c8e85 | |||
| b26c158c84 | |||
| 26f6a38c6b | |||
| e80ff782e7 | |||
| 44110bd059 | |||
| 9bc5869abd | |||
| 2b25c63f4e | |||
| 5f259398a2 | |||
| ddc1cddcb9 | |||
| a0a6040437 | |||
| f46f56e5b0 | |||
| b6a9c87e2a | |||
| ddb28dc5c8 | |||
| 92e2c99b89 | |||
| a6cf439160 | |||
| b0a0785501 | |||
| a22fa10cb8 | |||
| 200346ee71 | |||
| efa1a331bb | |||
| 49d46c391a | |||
| 69c9c00c16 | |||
| 226518b3a4 | |||
| e265d9620b | |||
| 4180aa5567 | |||
| e7bc4f312a | |||
| 6d15e1fa32 | |||
| aa8a171ccc | |||
| 6e7adc20cb | |||
| 5bb10fe988 | |||
| 37acc6ebae | |||
| ac911e41e1 | |||
| 4f69fb5d3a | |||
| 61eb0c7177 | |||
| 1f07dde9d2 | |||
| 822d5e8207 | |||
| 0125a6598c | |||
| 173a6145af | |||
| 8d66f53be5 |
Generated
+6
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"name": "zsw-farm",
|
||||||
|
"lockfileVersion": 2,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {}
|
||||||
|
}
|
||||||
@@ -51,6 +51,12 @@
|
|||||||
<type>pom</type>
|
<type>pom</type>
|
||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||||
|
<version>2.7.4</version>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
@@ -63,6 +69,9 @@
|
|||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
<version>${maven-surefire-plugin.version}</version>
|
<version>${maven-surefire-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<skip>true</skip>
|
||||||
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<!-- maven-compiler-plugin 插件,解决 Lombok + MapStruct 组合 -->
|
<!-- maven-compiler-plugin 插件,解决 Lombok + MapStruct 组合 -->
|
||||||
<plugin>
|
<plugin>
|
||||||
|
|||||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
BIN
Binary file not shown.
@@ -12,6 +12,21 @@
|
|||||||
<artifactId>yudao-spring-boot-starter-flowable</artifactId>
|
<artifactId>yudao-spring-boot-starter-flowable</artifactId>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi-ooxml</artifactId>
|
||||||
|
<version>5.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi</artifactId>
|
||||||
|
<version>5.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi-ooxml-full</artifactId> <!--注意-->
|
||||||
|
<version>5.0.0</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
<artifactId>yudao-common</artifactId>
|
<artifactId>yudao-common</artifactId>
|
||||||
|
|||||||
@@ -33,7 +33,11 @@
|
|||||||
<artifactId>zsw-erp</artifactId>
|
<artifactId>zsw-erp</artifactId>
|
||||||
<version>${revision}</version>
|
<version>${revision}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
<artifactId>zsw-farm-impl</artifactId>
|
<artifactId>zsw-farm-impl</artifactId>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
|
|||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.boot.system.ApplicationHome;
|
import org.springframework.boot.system.ApplicationHome;
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
|
|||||||
@@ -243,7 +243,15 @@ dubbo:
|
|||||||
|
|
||||||
bxg:
|
bxg:
|
||||||
shop:
|
shop:
|
||||||
API_URL: http://192.168.10.129:48080/bxgApp
|
# API_URL: http://192.168.10.113:48080/bxgApp
|
||||||
SITE_URL: http://192.168.10.129:48080/bxgApp
|
API_URL: https://25eb-27-19-79-7.jp.ngrok.io
|
||||||
UNI_SITE_URL: http://192.168.10.129:48080/bxgApp
|
SITE_URL: http://192.168.10.113:48080/bxgApp
|
||||||
ADMIN_API_URL: http://192.168.10.129:48080/bxg
|
UNI_SITE_URL: http://192.168.10.113:48080/bxgApp
|
||||||
|
ADMIN_API_URL: http://192.168.10.113:48080/bxg
|
||||||
|
# 快递100 参数
|
||||||
|
kuaidi100:
|
||||||
|
enable: true
|
||||||
|
key: mmbOboEj7168
|
||||||
|
customer: A6D46C8A03A4127C78DF0E377D721702
|
||||||
|
secret: 13fcbe029263431293f5658cbf3259d3
|
||||||
|
userid: 79978ee033e640dca101450508620182
|
||||||
@@ -161,3 +161,10 @@ wxma:
|
|||||||
spring:
|
spring:
|
||||||
jackson:
|
jackson:
|
||||||
time-zone: GMT+8
|
time-zone: GMT+8
|
||||||
|
# 快递100 参数
|
||||||
|
kuaidi100:
|
||||||
|
enable: true
|
||||||
|
key: mmbOboEj7168
|
||||||
|
customer: A6D46C8A03A4127C78DF0E377D721702
|
||||||
|
secret: 13fcbe029263431293f5658cbf3259d3
|
||||||
|
userid: 79978ee033e640dca101450508620182
|
||||||
|
|||||||
+46
-1
@@ -22,12 +22,41 @@
|
|||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi-ooxml</artifactId>
|
||||||
|
<version>5.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi</artifactId>
|
||||||
|
<version>5.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi-ooxml-full</artifactId> <!--注意-->
|
||||||
|
<version>5.0.0</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
<artifactId>yudao-module-system-impl</artifactId>
|
<artifactId>yudao-module-system-impl</artifactId>
|
||||||
<version>1.6.2-snapshot</version>
|
<version>1.6.2-snapshot</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.belerweb</groupId>
|
||||||
|
<artifactId>pinyin4j</artifactId>
|
||||||
|
<version>2.5.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.dtflys.forest</groupId>
|
||||||
|
<artifactId>forest-spring-boot-starter</artifactId>
|
||||||
|
<version>1.5.14</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
<artifactId>yudao-spring-boot-starter-biz-weixin</artifactId>
|
<artifactId>yudao-spring-boot-starter-biz-weixin</artifactId>
|
||||||
@@ -63,6 +92,12 @@
|
|||||||
<version>${revision}</version>
|
<version>${revision}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-websocket</artifactId>
|
||||||
|
<version>2.5.10</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
<artifactId>yudao-spring-boot-starter-security</artifactId>
|
<artifactId>yudao-spring-boot-starter-security</artifactId>
|
||||||
@@ -155,6 +190,16 @@
|
|||||||
<artifactId>fastjson</artifactId>
|
<artifactId>fastjson</artifactId>
|
||||||
<version>1.2.50</version>
|
<version>1.2.50</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.httpcomponents</groupId>
|
||||||
|
<artifactId>httpclient</artifactId>
|
||||||
|
<version>4.5.12</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jsoup</groupId>
|
||||||
|
<artifactId>jsoup</artifactId>
|
||||||
|
<version>1.14.2</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ public class PermissionInterceptor implements HandlerInterceptor {
|
|||||||
Map<String, Claim> map = optionalMap
|
Map<String, Claim> map = optionalMap
|
||||||
.orElseThrow(() -> new UnAuthenticatedException(ApiCode.UNAUTHORIZED));
|
.orElseThrow(() -> new UnAuthenticatedException(ApiCode.UNAUTHORIZED));
|
||||||
|
|
||||||
String uName = map.get("uName").asString();
|
// String uName = map.get("uName").asString();
|
||||||
|
|
||||||
|
|
||||||
boolean valid = this.hasPermission(authCheck.get(), map);
|
boolean valid = this.hasPermission(authCheck.get(), map);
|
||||||
|
|||||||
+2
-4
@@ -92,12 +92,10 @@ public class AppStoreBargainController {
|
|||||||
@ApiImplicitParam(name = "limit", value = "页大小,默认为10", paramType = "query", dataType = "int",dataTypeClass = Integer.class)
|
@ApiImplicitParam(name = "limit", value = "页大小,默认为10", paramType = "query", dataType = "int",dataTypeClass = Integer.class)
|
||||||
})
|
})
|
||||||
@ApiOperation(value = "砍价产品列表",notes = "砍价产品列表")
|
@ApiOperation(value = "砍价产品列表",notes = "砍价产品列表")
|
||||||
public ApiResult<Object> getYxStoreBargainPageList(@RequestParam(value = "page",defaultValue = "1") int page,
|
public ApiResult<Map<String,List<YxStoreBargainQueryVo>>> getYxStoreBargainPageList(@RequestParam(value = "page",defaultValue = "1") int page,
|
||||||
@RequestParam(value = "limit",defaultValue = "10") int limit){
|
@RequestParam(value = "limit",defaultValue = "10") int limit){
|
||||||
|
return ApiResult.ok(storeBargainService.getList(page, limit));
|
||||||
return ApiResult.resultPage(storeBargainService.getList(page, limit),limit);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 砍价详情
|
* 砍价详情
|
||||||
*/
|
*/
|
||||||
|
|||||||
+15
@@ -82,6 +82,21 @@ public class AppStoreCombinationController {
|
|||||||
return ApiResult.ok(storeCombinationService.getList(page, limit));
|
return ApiResult.ok(storeCombinationService.getList(page, limit));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户已发起的拼团的列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/userCombination/list")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "page", value = "页码,默认为1", paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
||||||
|
@ApiImplicitParam(name = "limit", value = "页大小,默认为10", paramType = "query", dataType = "int",dataTypeClass = Integer.class)
|
||||||
|
})
|
||||||
|
@ApiOperation(value = "已发起的拼团的列表",notes = "已发起的拼团的列表")
|
||||||
|
public ApiResult<CombinationQueryVo> getUserCombinationList(@RequestParam(value = "page",defaultValue = "1") int page,
|
||||||
|
@RequestParam(value = "limit",defaultValue = "10") int limit){
|
||||||
|
return ApiResult.ok(storeCombinationService.getCombinationList(page, limit));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 拼团产品详情
|
* 拼团产品详情
|
||||||
*/
|
*/
|
||||||
|
|||||||
+9
-1
@@ -117,8 +117,12 @@ public class AppStoreSeckillController {
|
|||||||
yxSystemGroupDataList.forEach(i -> {
|
yxSystemGroupDataList.forEach(i -> {
|
||||||
String jsonStr = i.getValue();
|
String jsonStr = i.getValue();
|
||||||
JSONObject jsonObject = JSON.parseObject(jsonStr);
|
JSONObject jsonObject = JSON.parseObject(jsonStr);
|
||||||
int time = Integer.valueOf(jsonObject.get("time").toString());//时间 5
|
int time = Integer.valueOf(jsonObject.get("time").toString());//开启时间(几点) 5
|
||||||
int continued = Integer.valueOf(jsonObject.get("continued").toString());//活动持续事件 3
|
int continued = Integer.valueOf(jsonObject.get("continued").toString());//活动持续事件 3
|
||||||
|
String rule="";
|
||||||
|
if (jsonObject.get("rule")!=null){
|
||||||
|
rule=jsonObject.get("rule").toString();
|
||||||
|
}
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("HH");
|
SimpleDateFormat sdf = new SimpleDateFormat("HH");
|
||||||
String nowTime = sdf.format(new Date());
|
String nowTime = sdf.format(new Date());
|
||||||
String index = nowTime.substring(0, 1);
|
String index = nowTime.substring(0, 1);
|
||||||
@@ -131,23 +135,27 @@ public class AppStoreSeckillController {
|
|||||||
seckillTimeDto.setState("即将开始");
|
seckillTimeDto.setState("即将开始");
|
||||||
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
|
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
|
||||||
seckillTimeDto.setStatus(2);
|
seckillTimeDto.setStatus(2);
|
||||||
|
seckillTimeDto.setRule(rule);
|
||||||
seckillTimeDto.setStop(today + activityEndHour * 3600);
|
seckillTimeDto.setStop(today + activityEndHour * 3600);
|
||||||
} else {
|
} else {
|
||||||
if (currentHour >= time && currentHour < activityEndHour) {
|
if (currentHour >= time && currentHour < activityEndHour) {
|
||||||
seckillTimeDto.setState("抢购中");
|
seckillTimeDto.setState("抢购中");
|
||||||
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
|
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
|
||||||
seckillTimeDto.setStatus(1);
|
seckillTimeDto.setStatus(1);
|
||||||
|
seckillTimeDto.setRule(rule);
|
||||||
seckillTimeDto.setStop(today + activityEndHour * 3600);
|
seckillTimeDto.setStop(today + activityEndHour * 3600);
|
||||||
seckillTimeIndex.set(yxSystemGroupDataList.indexOf(i));
|
seckillTimeIndex.set(yxSystemGroupDataList.indexOf(i));
|
||||||
} else if (currentHour < time) {
|
} else if (currentHour < time) {
|
||||||
seckillTimeDto.setState("即将开始");
|
seckillTimeDto.setState("即将开始");
|
||||||
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
|
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
|
||||||
seckillTimeDto.setStatus(2);
|
seckillTimeDto.setStatus(2);
|
||||||
|
seckillTimeDto.setRule(rule);
|
||||||
seckillTimeDto.setStop(OrderUtil.dateToTimestamp(new Date()) + activityEndHour * 3600);
|
seckillTimeDto.setStop(OrderUtil.dateToTimestamp(new Date()) + activityEndHour * 3600);
|
||||||
} else if (currentHour >= activityEndHour) {
|
} else if (currentHour >= activityEndHour) {
|
||||||
seckillTimeDto.setState("已结束");
|
seckillTimeDto.setState("已结束");
|
||||||
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
|
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
|
||||||
seckillTimeDto.setStatus(0);
|
seckillTimeDto.setStatus(0);
|
||||||
|
seckillTimeDto.setRule(rule);
|
||||||
seckillTimeDto.setStop(today + activityEndHour * 3600);
|
seckillTimeDto.setStop(today + activityEndHour * 3600);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package co.yixiang.app.modules.banner;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class Banner {
|
||||||
|
//首页标题
|
||||||
|
private String name;
|
||||||
|
//id
|
||||||
|
private String id;
|
||||||
|
//排序
|
||||||
|
private String sort;
|
||||||
|
//url链接
|
||||||
|
private String url;
|
||||||
|
//type
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -29,6 +29,7 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -87,7 +88,7 @@ public class StoreCartController {
|
|||||||
@AuthCheck
|
@AuthCheck
|
||||||
@GetMapping("/cart/list")
|
@GetMapping("/cart/list")
|
||||||
@ApiOperation(value = "购物车列表",notes = "购物车列表")
|
@ApiOperation(value = "购物车列表",notes = "购物车列表")
|
||||||
public ApiResult<Map<String,Object>> getList(){
|
public ApiResult<Map<String, ArrayList>> getList(){
|
||||||
Long uid = LocalUser.getUser().getUid();
|
Long uid = LocalUser.getUser().getUid();
|
||||||
return ApiResult.ok(storeCartService.getUserProductCartList(uid,"",null));
|
return ApiResult.ok(storeCartService.getUserProductCartList(uid,"",null));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,18 +9,24 @@
|
|||||||
package co.yixiang.app.modules.coupon.rest;
|
package co.yixiang.app.modules.coupon.rest;
|
||||||
|
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
||||||
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
||||||
import co.yixiang.logging.aop.log.AppLog;
|
import co.yixiang.logging.aop.log.AppLog;
|
||||||
import co.yixiang.app.common.aop.NoRepeatSubmit;
|
import co.yixiang.app.common.aop.NoRepeatSubmit;
|
||||||
import co.yixiang.app.common.bean.LocalUser;
|
import co.yixiang.app.common.bean.LocalUser;
|
||||||
import cn.iocoder.yudao.framework.security.core.annotations.AuthCheck;
|
import cn.iocoder.yudao.framework.security.core.annotations.AuthCheck;
|
||||||
|
import co.yixiang.modules.activity.domain.YxStoreCoupon;
|
||||||
import co.yixiang.modules.activity.service.YxStoreCouponIssueService;
|
import co.yixiang.modules.activity.service.YxStoreCouponIssueService;
|
||||||
|
import co.yixiang.modules.activity.service.YxStoreCouponService;
|
||||||
import co.yixiang.modules.activity.service.YxStoreCouponUserService;
|
import co.yixiang.modules.activity.service.YxStoreCouponUserService;
|
||||||
import co.yixiang.modules.activity.vo.StoreCouponUserVo;
|
import co.yixiang.modules.activity.vo.StoreCouponUserVo;
|
||||||
import co.yixiang.modules.activity.vo.YxStoreCouponIssueQueryVo;
|
import co.yixiang.modules.activity.vo.YxStoreCouponIssueQueryVo;
|
||||||
import co.yixiang.modules.activity.vo.YxStoreCouponUserQueryVo;
|
import co.yixiang.modules.activity.vo.YxStoreCouponUserQueryVo;
|
||||||
import co.yixiang.app.modules.coupon.param.YxStoreCouponQueryParam;
|
import co.yixiang.app.modules.coupon.param.YxStoreCouponQueryParam;
|
||||||
|
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||||
|
import co.yixiang.modules.product.service.YxStoreProductService;
|
||||||
|
import co.yixiang.utils.StringUtils;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
@@ -36,6 +42,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -56,8 +64,11 @@ public class CouponController {
|
|||||||
private final YxStoreCouponIssueService couponIssueService;
|
private final YxStoreCouponIssueService couponIssueService;
|
||||||
private final YxStoreCouponUserService storeCouponUserService;
|
private final YxStoreCouponUserService storeCouponUserService;
|
||||||
|
|
||||||
|
private final YxStoreCouponService storeCouponService;
|
||||||
|
private final YxStoreProductService yxStoreProductService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 可领取优惠券列表
|
* 领券中心优惠券列表
|
||||||
*/
|
*/
|
||||||
@AuthCheck
|
@AuthCheck
|
||||||
@GetMapping("/coupons")
|
@GetMapping("/coupons")
|
||||||
@@ -67,7 +78,7 @@ public class CouponController {
|
|||||||
@ApiImplicitParam(name = "productId", value = "产品ID", paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
@ApiImplicitParam(name = "productId", value = "产品ID", paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
||||||
@ApiImplicitParam(name = "type", value = "优惠券类型 0通用券 1商品券 2内部券", paramType = "query", dataType = "int",dataTypeClass = Integer.class)
|
@ApiImplicitParam(name = "type", value = "优惠券类型 0通用券 1商品券 2内部券", paramType = "query", dataType = "int",dataTypeClass = Integer.class)
|
||||||
})
|
})
|
||||||
@ApiOperation(value = "可领取优惠券列表",notes = "可领取优惠券列表")
|
@ApiOperation(value = "领券中心优惠券列表",notes = "领券中心优惠券列表")
|
||||||
public ApiResult<List<YxStoreCouponIssueQueryVo>> getList(@RequestParam(value = "page",defaultValue = "1") int page,
|
public ApiResult<List<YxStoreCouponIssueQueryVo>> getList(@RequestParam(value = "page",defaultValue = "1") int page,
|
||||||
@RequestParam(value = "limit",defaultValue = "10") int limit,
|
@RequestParam(value = "limit",defaultValue = "10") int limit,
|
||||||
@RequestParam(value = "productId",required = false) Long productId,
|
@RequestParam(value = "productId",required = false) Long productId,
|
||||||
@@ -76,6 +87,9 @@ public class CouponController {
|
|||||||
return ApiResult.ok(couponIssueService.getCouponList(page, limit,uid,productId,type));
|
return ApiResult.ok(couponIssueService.getCouponList(page, limit,uid,productId,type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 领取优惠券
|
* 领取优惠券
|
||||||
*/
|
*/
|
||||||
@@ -107,6 +121,55 @@ public class CouponController {
|
|||||||
return ApiResult.ok(list);
|
return ApiResult.ok(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户已失效优惠券
|
||||||
|
*/
|
||||||
|
@AppLog(value = "查看用户已失效优惠券", type = 1)
|
||||||
|
@AuthCheck
|
||||||
|
@GetMapping("/coupons/userFailure/{type}")
|
||||||
|
@ApiOperation(value = "用户已失效优惠券",notes = "用户已失效优惠券")
|
||||||
|
public ApiResult<List<YxStoreCouponUserQueryVo>> getUserFailureList(){
|
||||||
|
Long uid = LocalUser.getUidByToken();
|
||||||
|
List<YxStoreCouponUserQueryVo> list = storeCouponUserService.getUserCoupon(uid);
|
||||||
|
List<YxStoreCouponUserQueryVo> list1 = new ArrayList<>();
|
||||||
|
for (YxStoreCouponUserQueryVo couponUser : list) {
|
||||||
|
//已失效 //已过期
|
||||||
|
if (couponUser.getIsFail() == 1||couponUser.getStatus() == 2){
|
||||||
|
list1.add(couponUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return ApiResult.ok(list1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户可领取优惠券列表
|
||||||
|
*/
|
||||||
|
@AuthCheck
|
||||||
|
@GetMapping("/coupons/canReceive")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "page", value = "页码,默认为1", paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
||||||
|
@ApiImplicitParam(name = "limit", value = "页大小,默认为10", paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
||||||
|
@ApiImplicitParam(name = "productId", value = "产品ID", paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
||||||
|
@ApiImplicitParam(name = "type", value = "优惠券类型 0通用券 1商品券 2内部券", paramType = "query", dataType = "int",dataTypeClass = Integer.class)
|
||||||
|
})
|
||||||
|
@ApiOperation(value = "用户可领取优惠券列表",notes = "用户可领取优惠券列表")
|
||||||
|
public ApiResult<List<YxStoreCouponIssueQueryVo>> canReceive(@RequestParam(value = "page",defaultValue = "1") int page,
|
||||||
|
@RequestParam(value = "limit",defaultValue = "10") int limit,
|
||||||
|
@RequestParam(value = "productId",required = false) Long productId,
|
||||||
|
@RequestParam(value = "type",required = false) Integer type){
|
||||||
|
Long uid = LocalUser.getUidByToken();
|
||||||
|
List<YxStoreCouponIssueQueryVo> list=couponIssueService.getCouponList(page, limit,uid,productId,type);
|
||||||
|
List<YxStoreCouponIssueQueryVo> list1 = new ArrayList<>();
|
||||||
|
for (YxStoreCouponIssueQueryVo couponIssue : list) {
|
||||||
|
if(!couponIssue.getIsUse()){
|
||||||
|
list1.add(couponIssue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ApiResult.ok(list1);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户已领取优惠券pc
|
* 用户已领取优惠券pc
|
||||||
*/
|
*/
|
||||||
@@ -135,7 +198,27 @@ public class CouponController {
|
|||||||
@ApiOperation(value = "优惠券订单获取",notes = "优惠券订单获取")
|
@ApiOperation(value = "优惠券订单获取",notes = "优惠券订单获取")
|
||||||
public ApiResult<List<StoreCouponUserVo>> orderCoupon(@PathVariable String cartIds){
|
public ApiResult<List<StoreCouponUserVo>> orderCoupon(@PathVariable String cartIds){
|
||||||
Long uid = LocalUser.getUser().getUid();
|
Long uid = LocalUser.getUser().getUid();
|
||||||
return ApiResult.ok(storeCouponUserService.beUsableCouponList(uid,cartIds));
|
List<StoreCouponUserVo> list=storeCouponUserService.beUsableCouponList(uid,cartIds);
|
||||||
|
for (StoreCouponUserVo queryVo:list){
|
||||||
|
String[] idList =queryVo.getProductId().split(",");
|
||||||
|
List<String> needIdlist;
|
||||||
|
//因为最多只需要展示三个商品的图
|
||||||
|
if (idList.length>3){
|
||||||
|
needIdlist= Arrays.asList(Arrays.copyOf(idList, 3));
|
||||||
|
}else {
|
||||||
|
needIdlist= Arrays.asList(idList);
|
||||||
|
}
|
||||||
|
List<String> imageList=new ArrayList<>();
|
||||||
|
needIdlist.forEach(id->{
|
||||||
|
YxStoreProduct yxStoreProduct=yxStoreProductService.getById(id);
|
||||||
|
if (ObjectUtil.isNotEmpty(yxStoreProduct)&& StringUtils.isNotBlank(yxStoreProduct.getImage())){
|
||||||
|
imageList.add(yxStoreProductService.getById(id).getImage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
queryVo.setImage(imageList);
|
||||||
|
}
|
||||||
|
return ApiResult.ok(list);
|
||||||
|
// return ApiResult.ok(storeCouponUserService.beUsableCouponList(uid,cartIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package co.yixiang.app.modules.entry.rest;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
||||||
|
import co.yixiang.annotation.AnonymousAccess;
|
||||||
|
import co.yixiang.modules.entry.service.YxStoreEntryService;
|
||||||
|
import co.yixiang.utils.EntryDTO;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 商品评测控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author ssj
|
||||||
|
* @since 2022-9-27
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@Api(value = "查询词条讲解", tags = "商城:商品词条")
|
||||||
|
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
||||||
|
public class AppStoreEntryController {
|
||||||
|
|
||||||
|
private final YxStoreEntryService yxStoreEntryService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询词条讲解
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/entry/{id}")
|
||||||
|
@ApiOperation(value = "词条id查询词条",notes = "词条")
|
||||||
|
public ApiResult<EntryDTO> getYxEntry(@PathVariable int id){
|
||||||
|
EntryDTO entryDTO=yxStoreEntryService.getEntry(id);
|
||||||
|
return ApiResult.ok(entryDTO);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询词条讲解
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/entryByName")
|
||||||
|
@ApiOperation(value = "根据词条名查询词条",notes = "词条")
|
||||||
|
public ApiResult<EntryDTO> getEntryByName(String name){
|
||||||
|
|
||||||
|
EntryDTO entryDTO=yxStoreEntryService.getEntryByName(name);
|
||||||
|
return ApiResult.ok(entryDTO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
package co.yixiang.app.modules.evaluation.param;
|
||||||
|
|
||||||
|
import co.yixiang.common.web.param.QueryParam;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评测表查询
|
||||||
|
* @author ssj
|
||||||
|
* @date 2022-9-27
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ApiModel(value = "YxEvaluationQueryParam对象",description ="评测表查询参数")
|
||||||
|
public class YxEvaluationQueryParam extends QueryParam {
|
||||||
|
private static final long serialVersionUID =1L;
|
||||||
|
}
|
||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
package co.yixiang.app.modules.evaluation.param;
|
||||||
|
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 评测点赞和收藏表 查询参数对象
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author sj
|
||||||
|
* @date 2022-10-19
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ApiModel("查询参数对象")
|
||||||
|
public class YxStoreEvaluationRelationQueryParam {
|
||||||
|
@NotBlank(message = "参数有误")
|
||||||
|
@ApiModelProperty(value = "商品id",required=true)
|
||||||
|
private String id;
|
||||||
|
}
|
||||||
+109
@@ -0,0 +1,109 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2022
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.app.modules.evaluation.rest;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
|
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
||||||
|
import cn.iocoder.yudao.framework.security.core.annotations.AuthCheck;
|
||||||
|
import co.yixiang.annotation.AnonymousAccess;
|
||||||
|
import co.yixiang.app.common.aop.NoRepeatSubmit;
|
||||||
|
import co.yixiang.app.common.bean.LocalUser;
|
||||||
|
import co.yixiang.app.modules.evaluation.param.YxStoreEvaluationRelationQueryParam;
|
||||||
|
import co.yixiang.app.modules.product.param.YxStoreProductRelationQueryParam;
|
||||||
|
import co.yixiang.logging.aop.log.AppLog;
|
||||||
|
import co.yixiang.modules.evaluation.service.YxEvaluationRelationService;
|
||||||
|
import co.yixiang.modules.evaluation.service.YxEvaluationService;
|
||||||
|
import co.yixiang.utils.EntryDTO;
|
||||||
|
import co.yixiang.utils.EvaluationDTO;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 商品评测控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author ssj
|
||||||
|
* @since 2022-9-20
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@Api(value = "产品评测", tags = "商城:评测")
|
||||||
|
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
||||||
|
public class AppStoreEvaluationController {
|
||||||
|
|
||||||
|
private final YxEvaluationService yxEvaluationService;
|
||||||
|
|
||||||
|
private final YxEvaluationRelationService yxEvaluationRelationService;
|
||||||
|
/**
|
||||||
|
* 评测列表
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/evaluation")
|
||||||
|
@ApiOperation(value = "评测列表",notes = "产品评测")
|
||||||
|
public ApiResult<List<EvaluationDTO>> getYxEvaluationPageList(){
|
||||||
|
return ApiResult.ok(yxEvaluationService.getList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首页点击查询评测
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/evaluation/{id}")
|
||||||
|
@ApiOperation(value = "评测查询",notes = "产品评测")
|
||||||
|
public ApiResult<EvaluationDTO> getYxEvaluation(@PathVariable int id){
|
||||||
|
long uid = LocalUser.getUidByToken();
|
||||||
|
EvaluationDTO evaluationDTO=yxEvaluationService.getEvaluationById(uid,id);
|
||||||
|
return ApiResult.ok(evaluationDTO);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加收藏
|
||||||
|
*/
|
||||||
|
@AppLog(value = "添加收藏", type = 1)
|
||||||
|
@NoRepeatSubmit
|
||||||
|
@AuthCheck
|
||||||
|
@PostMapping("/collectEvaluation/add")
|
||||||
|
@ApiOperation(value = "添加收藏",notes = "添加收藏")
|
||||||
|
public ApiResult<Boolean> collectAdd(@Validated @RequestBody YxStoreEvaluationRelationQueryParam param){
|
||||||
|
long uid = LocalUser.getUser().getUid();
|
||||||
|
if(!NumberUtil.isNumber(param.getId())) {
|
||||||
|
throw new YshopException("参数错误哦");
|
||||||
|
}
|
||||||
|
yxEvaluationRelationService.addEvaluationRelation(Long.valueOf(param.getId()),uid);
|
||||||
|
return ApiResult.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消收藏
|
||||||
|
*/
|
||||||
|
@AppLog(value = "取消收藏", type = 1)
|
||||||
|
@NoRepeatSubmit
|
||||||
|
@AuthCheck
|
||||||
|
@PostMapping("/collectEvaluation/del")
|
||||||
|
@ApiOperation(value = "取消收藏",notes = "取消收藏")
|
||||||
|
public ApiResult<Boolean> collectDel(@Validated @RequestBody YxStoreEvaluationRelationQueryParam param){
|
||||||
|
long uid = LocalUser.getUser().getUid();
|
||||||
|
if(!NumberUtil.isNumber(param.getId())) {
|
||||||
|
throw new YshopException("参数错误哦");
|
||||||
|
}
|
||||||
|
yxEvaluationRelationService.delEvaluationRelation(Long.valueOf(param.getId()),
|
||||||
|
uid);
|
||||||
|
return ApiResult.ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+53
@@ -0,0 +1,53 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2022
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.app.modules.expert.rest;
|
||||||
|
|
||||||
|
import co.yixiang.annotation.AnonymousAccess;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
||||||
|
import co.yixiang.modules.expert.service.YxStoreExpertService;
|
||||||
|
import co.yixiang.utils.ExpertDTO;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 专家前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author ssj
|
||||||
|
* @since 2022-9-20
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@Api(value = "店内专家", tags = "商城:专家")
|
||||||
|
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
||||||
|
public class AppStoreExpertController {
|
||||||
|
|
||||||
|
private final YxStoreExpertService yxStoreExpertService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品分类列表
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/expert")
|
||||||
|
@ApiOperation(value = "专家列表",notes = "专家列表")
|
||||||
|
public ApiResult<List<ExpertDTO>> getYxStoreExpertPageList(){
|
||||||
|
return ApiResult.ok(yxStoreExpertService.getList());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
+69
@@ -0,0 +1,69 @@
|
|||||||
|
package co.yixiang.app.modules.hotList.rest;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
||||||
|
import co.yixiang.annotation.AnonymousAccess;
|
||||||
|
import co.yixiang.app.modules.activity.param.YxStoreBargainUserHelpQueryParam;
|
||||||
|
import co.yixiang.modules.evaluation.service.YxEvaluationService;
|
||||||
|
import co.yixiang.modules.hotList.service.YxStoreHotListService;
|
||||||
|
import co.yixiang.modules.hotList.param.YxStoreHotListRecordQueryParam;
|
||||||
|
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||||
|
import co.yixiang.utils.EvaluationDTO;
|
||||||
|
import co.yixiang.utils.HotListDTO;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 商品热榜控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author ssj
|
||||||
|
* @since 2022-10-8
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@Api(value = "商品热门榜单", tags = "商城:热门榜单")
|
||||||
|
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
||||||
|
public class AppStoreHotListController {
|
||||||
|
private final YxStoreHotListService yxStoreHotListService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 热门榜单列表
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/hotListData")
|
||||||
|
@ApiOperation(value = "榜单可选月及每月可选分类",notes = "榜单信息")
|
||||||
|
public ApiResult<Map<String,Object>> getYxStoreHotDataList(){
|
||||||
|
return ApiResult.ok(yxStoreHotListService.getHotListDataList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 热门榜单列表
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/hotList")
|
||||||
|
@ApiOperation(value = "榜单列表",notes = "热门榜单")
|
||||||
|
public ApiResult<List<YxStoreProduct>> getYxStoreHotListRecord(YxStoreHotListRecordQueryParam QueryParam){
|
||||||
|
return ApiResult.ok(yxStoreHotListService.getList(QueryParam));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 热门榜单列表
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/indexHotList")
|
||||||
|
@ApiOperation(value = "首页的榜单内容",notes = "首页的榜单内容")
|
||||||
|
public ApiResult<List<HotListDTO>> getYxStoreHotList(){
|
||||||
|
return ApiResult.ok(yxStoreHotListService.getList());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,8 +16,8 @@ import javax.validation.constraints.Size;
|
|||||||
@Setter
|
@Setter
|
||||||
public class ProductReplyParam {
|
public class ProductReplyParam {
|
||||||
|
|
||||||
@NotBlank(message = "评论不能为空")
|
// @NotBlank(message = "评论不能为空")
|
||||||
@Size(min = 1, max = 200,message = "长度超过了限制")
|
@Size(min = 0, max = 200,message = "长度超过了限制")
|
||||||
@ApiModelProperty(value = "商品评论内容")
|
@ApiModelProperty(value = "商品评论内容")
|
||||||
private String comment;
|
private String comment;
|
||||||
|
|
||||||
|
|||||||
+25
-23
@@ -32,14 +32,12 @@ import co.yixiang.modules.order.param.*;
|
|||||||
import co.yixiang.modules.order.service.YxStoreOrderCartInfoService;
|
import co.yixiang.modules.order.service.YxStoreOrderCartInfoService;
|
||||||
import co.yixiang.modules.order.service.YxStoreOrderService;
|
import co.yixiang.modules.order.service.YxStoreOrderService;
|
||||||
import co.yixiang.modules.order.service.YxStoreOrderStatusService;
|
import co.yixiang.modules.order.service.YxStoreOrderStatusService;
|
||||||
import co.yixiang.modules.order.service.dto.YxStoreOrderDto;
|
|
||||||
import co.yixiang.modules.order.vo.ComputeVo;
|
import co.yixiang.modules.order.vo.ComputeVo;
|
||||||
import co.yixiang.modules.order.vo.ConfirmOrderVo;
|
import co.yixiang.modules.order.vo.ConfirmOrderVo;
|
||||||
import co.yixiang.modules.order.vo.OrderCartInfoVo;
|
import co.yixiang.modules.order.vo.OrderCartInfoVo;
|
||||||
import co.yixiang.modules.order.vo.YxStoreOrderQueryVo;
|
import co.yixiang.modules.order.vo.YxStoreOrderQueryVo;
|
||||||
import co.yixiang.modules.user.domain.YxUser;
|
import co.yixiang.modules.user.domain.YxUser;
|
||||||
import co.yixiang.tools.express.ExpressService;
|
import co.yixiang.tools.express.ExpressService;
|
||||||
import co.yixiang.tools.express.config.ExpressAutoConfiguration;
|
|
||||||
import co.yixiang.tools.express.dao.ExpressInfo;
|
import co.yixiang.tools.express.dao.ExpressInfo;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.vdurmont.emoji.EmojiParser;
|
import com.vdurmont.emoji.EmojiParser;
|
||||||
@@ -54,6 +52,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
@@ -74,7 +73,7 @@ import java.util.stream.Collectors;
|
|||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
||||||
@Api(value = "订单模块", tags = "商城:订单模块")
|
@Api(value = "订单模块", tags = "商城:订单模块")
|
||||||
public class AppStoreOrderController {
|
public class AppStoreOrderController {
|
||||||
|
private final ExpressService expressService;
|
||||||
private final YxStoreOrderService storeOrderService;
|
private final YxStoreOrderService storeOrderService;
|
||||||
private final OrderSupplyService orderSupplyService;
|
private final OrderSupplyService orderSupplyService;
|
||||||
private final CreatShareProductService creatShareProductService;
|
private final CreatShareProductService creatShareProductService;
|
||||||
@@ -84,6 +83,7 @@ public class AppStoreOrderController {
|
|||||||
private final YxStoreOrderCartInfoService storeOrderCartInfoService;
|
private final YxStoreOrderCartInfoService storeOrderCartInfoService;
|
||||||
private final WeixinPayService weixinPayService;
|
private final WeixinPayService weixinPayService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单确认
|
* 订单确认
|
||||||
*/
|
*/
|
||||||
@@ -97,6 +97,7 @@ public class AppStoreOrderController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算订单金额
|
* 计算订单金额
|
||||||
*/
|
*/
|
||||||
@@ -136,7 +137,7 @@ public class AppStoreOrderController {
|
|||||||
@PostMapping("/order/create/{key}")
|
@PostMapping("/order/create/{key}")
|
||||||
@ApiOperation(value = "订单创建", notes = "订单创建")
|
@ApiOperation(value = "订单创建", notes = "订单创建")
|
||||||
public ApiResult<Map<String, Object>> create(@Valid @RequestBody OrderParam param,
|
public ApiResult<Map<String, Object>> create(@Valid @RequestBody OrderParam param,
|
||||||
@PathVariable String key) {
|
@PathVariable String key) throws IOException {
|
||||||
YxUser yxUser = LocalUser.getUser();
|
YxUser yxUser = LocalUser.getUser();
|
||||||
ComputeOrderParam computeOrderParam = new ComputeOrderParam();
|
ComputeOrderParam computeOrderParam = new ComputeOrderParam();
|
||||||
BeanUtil.copyProperties(param, computeOrderParam);
|
BeanUtil.copyProperties(param, computeOrderParam);
|
||||||
@@ -185,7 +186,7 @@ public class AppStoreOrderController {
|
|||||||
@AuthCheck
|
@AuthCheck
|
||||||
@PostMapping("/order/pay")
|
@PostMapping("/order/pay")
|
||||||
@ApiOperation(value = "订单支付", notes = "订单支付")
|
@ApiOperation(value = "订单支付", notes = "订单支付")
|
||||||
public ApiResult<Map<String, Object>> pay(@Valid @RequestBody PayParam param) {
|
public ApiResult<Map<String, Object>> pay(@Valid @RequestBody PayParam param) throws IOException {
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
Long uid = LocalUser.getUser().getUid();
|
Long uid = LocalUser.getUser().getUid();
|
||||||
YxStoreOrderQueryVo storeOrder = storeOrderService
|
YxStoreOrderQueryVo storeOrder = storeOrderService
|
||||||
@@ -230,7 +231,7 @@ public class AppStoreOrderController {
|
|||||||
@AuthCheck
|
@AuthCheck
|
||||||
@GetMapping("/order/list")
|
@GetMapping("/order/list")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "type", value = "商品状态,-1全部 默认为0未支付 1待发货 2待收货 3待评价 4已完成 5退款中 6已退款 7退款",
|
@ApiImplicitParam(name = "type", value = "商品状态,-1全部 默认为0未支付 1待发货 2待收货 3待评价 4已完成 5退款中 6已退款 7退款 8已取消",
|
||||||
paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
||||||
@ApiImplicitParam(name = "page", value = "页码,默认为1", paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
@ApiImplicitParam(name = "page", value = "页码,默认为1", paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
||||||
@ApiImplicitParam(name = "limit", value = "页大小,默认为10", paramType = "query", dataType = "int",dataTypeClass = Integer.class)
|
@ApiImplicitParam(name = "limit", value = "页大小,默认为10", paramType = "query", dataType = "int",dataTypeClass = Integer.class)
|
||||||
@@ -375,7 +376,6 @@ public class AppStoreOrderController {
|
|||||||
list.add("收到商品损坏了");
|
list.add("收到商品损坏了");
|
||||||
list.add("未按预定时间发货");
|
list.add("未按预定时间发货");
|
||||||
list.add("其它原因");
|
list.add("其它原因");
|
||||||
|
|
||||||
return ApiResult.ok(list);
|
return ApiResult.ok(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -431,23 +431,25 @@ public class AppStoreOrderController {
|
|||||||
@ApiOperation(value = "获取物流信息", notes = "获取物流信息")
|
@ApiOperation(value = "获取物流信息", notes = "获取物流信息")
|
||||||
public ApiResult<ExpressInfo> express(@RequestBody ExpressParam expressInfoDo) {
|
public ApiResult<ExpressInfo> express(@RequestBody ExpressParam expressInfoDo) {
|
||||||
|
|
||||||
//顺丰轨迹查询处理
|
// //顺丰轨迹查询处理
|
||||||
String lastFourNumber = "";
|
// String lastFourNumber = "";
|
||||||
if (expressInfoDo.getShipperCode().equals(ShipperCodeEnum.SF.getValue())) {
|
// if (expressInfoDo.getShipperCode().equals(ShipperCodeEnum.SF.getValue())) {
|
||||||
YxStoreOrderDto yxStoreOrderDto;
|
// YxStoreOrderDto yxStoreOrderDto;
|
||||||
yxStoreOrderDto = storeOrderService.getOrderDetail(Long.valueOf(expressInfoDo.getOrderCode()));
|
// yxStoreOrderDto = storeOrderService.getOrderDetail(Long.valueOf(expressInfoDo.getOrderCode()));
|
||||||
lastFourNumber = yxStoreOrderDto.getUserPhone();
|
// lastFourNumber = yxStoreOrderDto.getUserPhone();
|
||||||
if (lastFourNumber.length() == 11) {
|
// if (lastFourNumber.length() == 11) {
|
||||||
lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
// lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
ExpressService expressService = ExpressAutoConfiguration.expressService();
|
// ExpressService expressService = ExpressAutoConfiguration.expressService();
|
||||||
|
// ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(),
|
||||||
|
// expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode(), lastFourNumber);
|
||||||
|
// if (!expressInfo.isSuccess()) {
|
||||||
|
// throw new YshopException(expressInfo.getReason());
|
||||||
|
// }
|
||||||
ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(),
|
ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(),
|
||||||
expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode(), lastFourNumber);
|
expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode());
|
||||||
if (!expressInfo.isSuccess()) {
|
|
||||||
throw new YshopException(expressInfo.getReason());
|
|
||||||
}
|
|
||||||
return ApiResult.ok(expressInfo);
|
return ApiResult.ok(expressInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+76
@@ -0,0 +1,76 @@
|
|||||||
|
package co.yixiang.app.modules.product.rest;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
||||||
|
import co.yixiang.annotation.AnonymousAccess;
|
||||||
|
import co.yixiang.modules.store.service.YxStoreBrandService;
|
||||||
|
import co.yixiang.modules.store.service.dto.YxStoreBrandNameDto;
|
||||||
|
import co.yixiang.utils.BrandDTO;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 商品品牌前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author ssj
|
||||||
|
* @since 2022-9-20
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@Api(value = "商品品牌", tags = "商城:商品品牌")
|
||||||
|
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
||||||
|
public class AppStoreBrandController {
|
||||||
|
|
||||||
|
private final YxStoreBrandService yxStoreBrandService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品品牌列表
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/brand")
|
||||||
|
@ApiOperation(value = "商品品牌列表",notes = "商品品牌列表")
|
||||||
|
public ApiResult<List<BrandDTO>> getYxStoreBrandPageList(){
|
||||||
|
return ApiResult.ok(yxStoreBrandService.getList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 品牌馆滚动条信息
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/brandInfo")
|
||||||
|
@ApiOperation(value = "品牌馆滚动条信息",notes = "品牌馆滚动条信息")
|
||||||
|
public ApiResult<Object> getYxStoreBrandInfo(){
|
||||||
|
|
||||||
|
return ApiResult.ok(yxStoreBrandService.getBrandInfo());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品品牌列表按首字母分类
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/brandByName")
|
||||||
|
@ApiOperation(value = "商品品牌列表",notes = "商品品牌列表")
|
||||||
|
public ApiResult<Map<String,List<BrandDTO>>> getListByName(){
|
||||||
|
return ApiResult.ok(yxStoreBrandService.getListByName());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品品牌列表
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/brand/{id}")
|
||||||
|
@ApiOperation(value = "商品品牌详情",notes = "商品品牌详情")
|
||||||
|
public ApiResult<BrandDTO> getYxStoreBrandById(@PathVariable String id){
|
||||||
|
return ApiResult.ok(yxStoreBrandService.getYxStoreBrandById(id));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -141,15 +141,23 @@ public class AppAuthService {
|
|||||||
log.info("appId:{},secret:{}",appId,secret);
|
log.info("appId:{},secret:{}",appId,secret);
|
||||||
WxMaService wxMaService = WxMaConfiguration.getWxMaService();
|
WxMaService wxMaService = WxMaConfiguration.getWxMaService();
|
||||||
WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code);
|
WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code);
|
||||||
|
WxMaPhoneNumberInfo phoneNoInfo=new WxMaPhoneNumberInfo();
|
||||||
WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService()
|
//防止仅有code时候调用解密方法报错
|
||||||
|
if (StringUtils.isBlank(encryptedData)&StringUtils.isBlank(iv)){
|
||||||
|
}else {
|
||||||
|
phoneNoInfo= wxMaService.getUserService()
|
||||||
.getPhoneNoInfo(session.getSessionKey(), encryptedData, iv);
|
.getPhoneNoInfo(session.getSessionKey(), encryptedData, iv);
|
||||||
|
}
|
||||||
YxUser yxUser = this.userService.getOne(Wrappers.<YxUser>lambdaQuery()
|
YxUser yxUser ;
|
||||||
|
//手机号会员
|
||||||
|
yxUser=this.userService.getOne(Wrappers.<YxUser>lambdaQuery()
|
||||||
.eq(YxUser::getPhone,phoneNoInfo.getPhoneNumber()), false);
|
.eq(YxUser::getPhone,phoneNoInfo.getPhoneNumber()), false);
|
||||||
|
//openid会员
|
||||||
|
if (ObjectUtil.isNull(yxUser)){
|
||||||
|
yxUser = this.userService.getOne(Wrappers.<YxUser>lambdaQuery()
|
||||||
|
.eq(YxUser::getOpenId,session.getOpenid()),false);
|
||||||
|
}
|
||||||
if (ObjectUtil.isNull(yxUser)) {
|
if (ObjectUtil.isNull(yxUser)) {
|
||||||
|
|
||||||
//兼容旧系统
|
//兼容旧系统
|
||||||
yxUser = this.userService.getOne(Wrappers.<YxUser>lambdaQuery()
|
yxUser = this.userService.getOne(Wrappers.<YxUser>lambdaQuery()
|
||||||
.eq(YxUser::getUsername, session.getOpenid()), false);
|
.eq(YxUser::getUsername, session.getOpenid()), false);
|
||||||
@@ -158,10 +166,13 @@ public class AppAuthService {
|
|||||||
//过滤掉表情
|
//过滤掉表情
|
||||||
String ip = co.yixiang.app.common.util.IpUtil.getRequestIp();
|
String ip = co.yixiang.app.common.util.IpUtil.getRequestIp();
|
||||||
yxUser = YxUser.builder()
|
yxUser = YxUser.builder()
|
||||||
.username(phoneNoInfo.getPhoneNumber())
|
.username(StringUtils.isNotBlank(phoneNoInfo.getPhoneNumber())?phoneNoInfo.getPhoneNumber():session.getOpenid())
|
||||||
|
// .username(phoneNoInfo.getPhoneNumber())
|
||||||
.phone(phoneNoInfo.getPhoneNumber())
|
.phone(phoneNoInfo.getPhoneNumber())
|
||||||
.addIp(ip)
|
.addIp(ip)
|
||||||
|
.openId(session.getOpenid())
|
||||||
.lastIp(ip)
|
.lastIp(ip)
|
||||||
|
.nickname(StringUtils.isNotBlank(phoneNoInfo.getPhoneNumber())?phoneNoInfo.getPhoneNumber():session.getOpenid())
|
||||||
.userType(AppFromEnum.ROUNTINE.getValue())
|
.userType(AppFromEnum.ROUNTINE.getValue())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -174,14 +175,13 @@ public class OrderSupplyService {
|
|||||||
* @return map
|
* @return map
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> goPay(Map<String, Object> map, String orderId, Long uid, String payType,
|
public Map<String, Object> goPay(Map<String, Object> map, String orderId, Long uid, String payType,
|
||||||
String from, OrderExtendDto orderDTO){
|
String from, OrderExtendDto orderDTO) throws IOException {
|
||||||
switch (PayTypeEnum.toType(payType)){
|
switch (PayTypeEnum.toType(payType)){
|
||||||
case WEIXIN:
|
case WEIXIN:
|
||||||
Map<String,String> jsConfig = new HashMap<>();
|
Map<String,String> jsConfig = new HashMap<>();
|
||||||
if(AppFromEnum.WEIXIN_H5.getValue().equals(from)){
|
if(AppFromEnum.WEIXIN_H5.getValue().equals(from)){
|
||||||
WxPayMwebOrderResult wxPayMwebOrderResult = (WxPayMwebOrderResult)weixinPayService
|
WxPayMwebOrderResult wxPayMwebOrderResult = (WxPayMwebOrderResult)weixinPayService
|
||||||
.unifyPay(orderId,from, BillDetailEnum.TYPE_3.getValue(),"H5商品购买");
|
.unifyPay(orderId,from, BillDetailEnum.TYPE_3.getValue(),"H5商品购买");
|
||||||
|
|
||||||
log.info("wxPayMwebOrderResult:{}",wxPayMwebOrderResult);
|
log.info("wxPayMwebOrderResult:{}",wxPayMwebOrderResult);
|
||||||
jsConfig.put("mweb_url",wxPayMwebOrderResult.getMwebUrl());
|
jsConfig.put("mweb_url",wxPayMwebOrderResult.getMwebUrl());
|
||||||
orderDTO.setJsConfig(jsConfig);
|
orderDTO.setJsConfig(jsConfig);
|
||||||
|
|||||||
@@ -14,10 +14,12 @@ import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
|||||||
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
||||||
import co.yixiang.constant.ShopConstants;
|
import co.yixiang.constant.ShopConstants;
|
||||||
import co.yixiang.enums.ProductEnum;
|
import co.yixiang.enums.ProductEnum;
|
||||||
|
import co.yixiang.enums.ShopCommonEnum;
|
||||||
import co.yixiang.modules.activity.service.YxStoreCombinationService;
|
import co.yixiang.modules.activity.service.YxStoreCombinationService;
|
||||||
import co.yixiang.modules.activity.service.YxStoreSeckillService;
|
import co.yixiang.modules.activity.service.YxStoreSeckillService;
|
||||||
import co.yixiang.modules.canvas.domain.StoreCanvas;
|
import co.yixiang.modules.canvas.domain.StoreCanvas;
|
||||||
import co.yixiang.modules.canvas.service.StoreCanvasService;
|
import co.yixiang.modules.canvas.service.StoreCanvasService;
|
||||||
|
import co.yixiang.modules.evaluation.service.YxEvaluationService;
|
||||||
import co.yixiang.modules.mp.service.YxWechatLiveService;
|
import co.yixiang.modules.mp.service.YxWechatLiveService;
|
||||||
import co.yixiang.modules.product.service.YxStoreProductService;
|
import co.yixiang.modules.product.service.YxStoreProductService;
|
||||||
import co.yixiang.modules.product.vo.YxSystemStoreQueryVo;
|
import co.yixiang.modules.product.vo.YxSystemStoreQueryVo;
|
||||||
@@ -34,13 +36,16 @@ import co.yixiang.utils.FileUtil;
|
|||||||
|
|
||||||
import co.yixiang.utils.RedisUtils;
|
import co.yixiang.utils.RedisUtils;
|
||||||
import co.yixiang.utils.ShopKeyUtils;
|
import co.yixiang.utils.ShopKeyUtils;
|
||||||
|
import co.yixiang.utils.StringUtils;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.Data;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@@ -50,6 +55,7 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -68,6 +74,7 @@ public class BxgIndexController {
|
|||||||
private final YxAppVersionService appVersionService;
|
private final YxAppVersionService appVersionService;
|
||||||
private final YxSystemGroupDataService systemGroupDataService;
|
private final YxSystemGroupDataService systemGroupDataService;
|
||||||
private final YxStoreProductService storeProductService;
|
private final YxStoreProductService storeProductService;
|
||||||
|
private final YxEvaluationService evaluationService;
|
||||||
private final YxSystemStoreService systemStoreService;
|
private final YxSystemStoreService systemStoreService;
|
||||||
private final YxStoreCombinationService storeCombinationService;
|
private final YxStoreCombinationService storeCombinationService;
|
||||||
private final YxStoreSeckillService storeSeckillService;
|
private final YxStoreSeckillService storeSeckillService;
|
||||||
@@ -84,19 +91,29 @@ public class BxgIndexController {
|
|||||||
.orderByDesc(StoreCanvas::getCanvasId).last("limit 1"));
|
.orderByDesc(StoreCanvas::getCanvasId).last("limit 1"));
|
||||||
return new ResponseEntity<>(canvas, HttpStatus.OK);
|
return new ResponseEntity<>(canvas, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Cacheable(cacheNames = ShopConstants.ZSW_REDIS_INDEX_KEY)
|
@Cacheable(cacheNames = ShopConstants.ZSW_REDIS_INDEX_KEY)
|
||||||
@GetMapping("/index")
|
@GetMapping("/index")
|
||||||
@ApiOperation(value = "首页数据",notes = "首页数据")
|
@ApiOperation(value = "首页数据",notes = "首页数据")
|
||||||
public ApiResult<IndexVo> index(){
|
public ApiResult<IndexVo> index(){
|
||||||
|
ArrayList list=new ArrayList<>();
|
||||||
|
systemGroupDataService.getDatas(ShopConstants.ZSW_HOME_BANNER).forEach(banner->{
|
||||||
|
// 如果没有类型认定为首页图,0也认为是首页图
|
||||||
|
if (banner.get("type")==null||banner.get("type").equals(0)){
|
||||||
|
list.add(banner);
|
||||||
|
}
|
||||||
|
});
|
||||||
IndexVo indexVo = IndexVo.builder()
|
IndexVo indexVo = IndexVo.builder()
|
||||||
.banner(systemGroupDataService.getDatas(ShopConstants.ZSW_HOME_BANNER))
|
//首页图
|
||||||
|
// .banner(systemGroupDataService.getDatas(ShopConstants.ZSW_HOME_BANNER))
|
||||||
|
.banner(list)
|
||||||
.bastList(storeProductService.getList(1,6, ProductEnum.TYPE_1.getValue()))
|
.bastList(storeProductService.getList(1,6, ProductEnum.TYPE_1.getValue()))
|
||||||
|
.evaluationList(evaluationService.getList(1,5))
|
||||||
.benefit(storeProductService.getList(1,100,ProductEnum.TYPE_4.getValue()))
|
.benefit(storeProductService.getList(1,100,ProductEnum.TYPE_4.getValue()))
|
||||||
.combinationList(storeCombinationService.getList(1,8).getStoreCombinationQueryVos())
|
.combinationList(storeCombinationService.getList(1,8).getStoreCombinationQueryVos())
|
||||||
.firstList(storeProductService.getList(1,6,ProductEnum.TYPE_3.getValue()))
|
.firstList(storeProductService.getList(1,6,ProductEnum.TYPE_3.getValue()))
|
||||||
.likeInfo(storeProductService.getList(1,80,ProductEnum.TYPE_2.getValue()))
|
.likeInfo(storeProductService.getList(1,80,ProductEnum.TYPE_2.getValue()))
|
||||||
.mapKey(systemConfigService.getData(ShopKeyUtils.getTengXunMapKey()))
|
.mapKey(systemConfigService.getData(ShopKeyUtils.getTengXunMapKey()))
|
||||||
|
//菜单
|
||||||
.menus(systemGroupDataService.getDatas(ShopConstants.ZSW_HOME_MENUS))
|
.menus(systemGroupDataService.getDatas(ShopConstants.ZSW_HOME_MENUS))
|
||||||
.roll(systemGroupDataService.getDatas(ShopConstants.ZSW_HOME_ROLL_NEWS))
|
.roll(systemGroupDataService.getDatas(ShopConstants.ZSW_HOME_ROLL_NEWS))
|
||||||
.seckillList(storeSeckillService.getList(1, 4))
|
.seckillList(storeSeckillService.getList(1, 4))
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package co.yixiang.app.modules.shop.vo;
|
|||||||
|
|
||||||
import co.yixiang.modules.activity.vo.YxStoreCombinationQueryVo;
|
import co.yixiang.modules.activity.vo.YxStoreCombinationQueryVo;
|
||||||
import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo;
|
import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo;
|
||||||
|
import co.yixiang.modules.evaluation.service.dto.YxEvaluationDto;
|
||||||
|
import co.yixiang.modules.evaluation.vo.YxEvaluationQueryVo;
|
||||||
import co.yixiang.modules.mp.service.dto.YxWechatLiveDto;
|
import co.yixiang.modules.mp.service.dto.YxWechatLiveDto;
|
||||||
import co.yixiang.modules.product.vo.YxStoreProductQueryVo;
|
import co.yixiang.modules.product.vo.YxStoreProductQueryVo;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
@@ -39,6 +41,9 @@ public class IndexVo implements Serializable {
|
|||||||
//热门榜单
|
//热门榜单
|
||||||
@ApiModelProperty("热门榜单")
|
@ApiModelProperty("热门榜单")
|
||||||
private List<YxStoreProductQueryVo> likeInfo;
|
private List<YxStoreProductQueryVo> likeInfo;
|
||||||
|
//评测列表
|
||||||
|
@ApiModelProperty("评测列表")
|
||||||
|
private List<YxEvaluationQueryVo> evaluationList;
|
||||||
//滚动
|
//滚动
|
||||||
@ApiModelProperty("滚动")
|
@ApiModelProperty("滚动")
|
||||||
private List<JSONObject> roll;
|
private List<JSONObject> roll;
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.Size;
|
import javax.validation.constraints.Size;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ClassName UserEditParam
|
* @ClassName UserEditParam
|
||||||
@@ -15,14 +16,17 @@ import java.io.Serializable;
|
|||||||
@Data
|
@Data
|
||||||
public class UserEditParam implements Serializable {
|
public class UserEditParam implements Serializable {
|
||||||
|
|
||||||
@NotBlank(message = "请上传头像")
|
// @NotBlank(message = "请上传头像")
|
||||||
@ApiModelProperty(value = "用户头像")
|
@ApiModelProperty(value = "用户头像")
|
||||||
private String avatar;
|
private String avatar;
|
||||||
|
|
||||||
@NotBlank(message = "请填写昵称")
|
// @NotBlank(message = "请填写昵称")
|
||||||
@Size(min = 1, max = 60,message = "长度超过了限制")
|
@Size(max = 60,message = "长度超过限制")
|
||||||
@ApiModelProperty(value = "用户昵称")
|
@ApiModelProperty(value = "用户昵称")
|
||||||
private String nickname;
|
private String nickname;
|
||||||
|
|
||||||
|
// @NotBlank(message = "请上传头像")
|
||||||
|
@ApiModelProperty(value = "用户头像")
|
||||||
|
private String birthday;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package co.yixiang.app.modules.user.rest;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
||||||
|
import co.yixiang.modules.shop.service.YxSystemConfigService;
|
||||||
|
import co.yixiang.tools.domain.QiniuContent;
|
||||||
|
import co.yixiang.tools.service.QiNiuService;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/upload")
|
||||||
|
public class AppUploadController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private YxSystemConfigService systemConfigService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private QiNiuService qiNiuService;
|
||||||
|
|
||||||
|
@ApiOperation("上传文件")
|
||||||
|
@PostMapping
|
||||||
|
public ApiResult<?> create(@RequestParam(defaultValue = "") String name,
|
||||||
|
@RequestParam(defaultValue = "") String type,
|
||||||
|
@RequestParam("file") MultipartFile[] files) {
|
||||||
|
|
||||||
|
StringBuilder url = new StringBuilder();
|
||||||
|
for (MultipartFile file : files) {
|
||||||
|
QiniuContent qiniuContent = qiNiuService.upload(file, qiNiuService.find());
|
||||||
|
if ("".equals(url.toString())) {
|
||||||
|
url = url.append(qiniuContent.getUrl());
|
||||||
|
System.out.println("".equals(url.toString()));
|
||||||
|
}else{
|
||||||
|
url = url.append(",").append(qiniuContent.getUrl());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ApiResult.ok(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+75
-9
@@ -9,6 +9,7 @@
|
|||||||
package co.yixiang.app.modules.user.rest;
|
package co.yixiang.app.modules.user.rest;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
||||||
import co.yixiang.app.common.aop.NoRepeatSubmit;
|
import co.yixiang.app.common.aop.NoRepeatSubmit;
|
||||||
import co.yixiang.app.common.bean.LocalUser;
|
import co.yixiang.app.common.bean.LocalUser;
|
||||||
@@ -17,6 +18,8 @@ import co.yixiang.app.modules.user.param.UserEditParam;
|
|||||||
import co.yixiang.logging.aop.log.AppLog;
|
import co.yixiang.logging.aop.log.AppLog;
|
||||||
import co.yixiang.constant.ShopConstants;
|
import co.yixiang.constant.ShopConstants;
|
||||||
import co.yixiang.enums.BillInfoEnum;
|
import co.yixiang.enums.BillInfoEnum;
|
||||||
|
import co.yixiang.modules.evaluation.service.YxEvaluationRelationService;
|
||||||
|
import co.yixiang.modules.evaluation.vo.YxStoreEvaluationRelationQueryVo;
|
||||||
import co.yixiang.modules.order.service.YxStoreOrderService;
|
import co.yixiang.modules.order.service.YxStoreOrderService;
|
||||||
import co.yixiang.modules.order.vo.UserOrderCountVo;
|
import co.yixiang.modules.order.vo.UserOrderCountVo;
|
||||||
import co.yixiang.modules.product.service.YxStoreProductRelationService;
|
import co.yixiang.modules.product.service.YxStoreProductRelationService;
|
||||||
@@ -29,6 +32,8 @@ import co.yixiang.modules.user.service.YxUserService;
|
|||||||
import co.yixiang.modules.user.service.YxUserSignService;
|
import co.yixiang.modules.user.service.YxUserSignService;
|
||||||
import co.yixiang.modules.user.vo.SignVo;
|
import co.yixiang.modules.user.vo.SignVo;
|
||||||
import co.yixiang.modules.user.vo.YxUserQueryVo;
|
import co.yixiang.modules.user.vo.YxUserQueryVo;
|
||||||
|
import co.yixiang.utils.StringUtils;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@@ -38,15 +43,9 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.LinkedHashMap;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import static co.yixiang.constant.SystemConfigConstants.YSHOP_SHOW_RECHARGE;
|
import static co.yixiang.constant.SystemConfigConstants.YSHOP_SHOW_RECHARGE;
|
||||||
|
|
||||||
@@ -68,6 +67,7 @@ public class LetterAppUserController {
|
|||||||
private final YxSystemGroupDataService systemGroupDataService;
|
private final YxSystemGroupDataService systemGroupDataService;
|
||||||
private final YxStoreOrderService orderService;
|
private final YxStoreOrderService orderService;
|
||||||
private final YxStoreProductRelationService relationService;
|
private final YxStoreProductRelationService relationService;
|
||||||
|
private final YxEvaluationRelationService evaluationRelationService;
|
||||||
private final YxUserSignService userSignService;
|
private final YxUserSignService userSignService;
|
||||||
private final YxUserBillService userBillService;
|
private final YxUserBillService userBillService;
|
||||||
private final YxSystemConfigService systemConfigService;
|
private final YxSystemConfigService systemConfigService;
|
||||||
@@ -95,8 +95,48 @@ public class LetterAppUserController {
|
|||||||
return ApiResult.ok(map);
|
return ApiResult.ok(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取各类轮播图
|
||||||
|
*/
|
||||||
|
@GetMapping("/menu/banner/{type}")
|
||||||
|
@ApiOperation(value = "获取各种轮播图(0:首页 1:品牌馆 2:优惠券 3:活动专区 4:榜单列表)",notes = "获取轮播图")
|
||||||
|
public ApiResult<Map<String,Object>> bannerMenu(@PathVariable Integer type){
|
||||||
|
Map<String,Object> map = new LinkedHashMap<>();
|
||||||
|
// map.put("banner",systemGroupDataService.getDatas(ShopConstants.ZSW_HOME_BANNER));
|
||||||
|
List<JSONObject> list=systemGroupDataService.getDatas(ShopConstants.ZSW_HOME_BANNER);
|
||||||
|
ArrayList bannerList=new ArrayList<>();
|
||||||
|
list.forEach(item->{
|
||||||
|
if(item.get("type")==type){
|
||||||
|
bannerList.add(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
map.put("banner",bannerList);
|
||||||
|
return ApiResult.ok(map);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取常见问答
|
||||||
|
*/
|
||||||
|
@GetMapping("/menu/problem")
|
||||||
|
@ApiOperation(value = "获取常见问答",notes = "获取常见问答")
|
||||||
|
public ApiResult<Map<String,Object>> problem(){
|
||||||
|
Map<String,Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("routine_problem",systemGroupDataService.getDatas(ShopConstants.ZSW_HOME_PROBLEM));
|
||||||
|
return ApiResult.ok(map);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取关于我们
|
||||||
|
*/
|
||||||
|
@GetMapping("/menu/aboutUs")
|
||||||
|
@ApiOperation(value = "获取关于我们",notes = "获取关于我们")
|
||||||
|
public ApiResult<Map<String,Object>> aboutUs(){
|
||||||
|
Map<String,Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("routine_aboutUs",systemConfigService.getData(ShopConstants.ZSW_HOME_ABOUTUS));
|
||||||
|
return ApiResult.ok(map);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单统计数据
|
* 订单统计数据
|
||||||
*/
|
*/
|
||||||
@@ -127,6 +167,26 @@ public class LetterAppUserController {
|
|||||||
return ApiResult.ok(relationService.userCollectProduct(page,limit,uid,type));
|
return ApiResult.ok(relationService.userCollectProduct(page,limit,uid,type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取收藏评测
|
||||||
|
*/
|
||||||
|
@AuthCheck
|
||||||
|
@GetMapping("/collectEvaluation/user")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "page", value = "页码,默认为1", paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
||||||
|
@ApiImplicitParam(name = "limit", value = "页大小,默认为10", paramType = "query", dataType = "int",dataTypeClass = Integer.class),
|
||||||
|
@ApiImplicitParam(name = "type", value = "collect为收藏", paramType = "query", dataType = "String",dataTypeClass = String.class)
|
||||||
|
})
|
||||||
|
@ApiOperation(value = "获取收藏的评测",notes = "获取收藏的评测")
|
||||||
|
public ApiResult<List<YxStoreEvaluationRelationQueryVo>> collectEvaluationUser(@RequestParam(value = "page",defaultValue = "1") int page,
|
||||||
|
@RequestParam(value = "limit",defaultValue = "10") int limit,
|
||||||
|
@RequestParam(value = "type") String type){
|
||||||
|
Long uid = LocalUser.getUser().getUid();
|
||||||
|
List list=evaluationRelationService.userCollectEvaluation(page,limit,uid,type);
|
||||||
|
// return ApiResult.ok(evaluationRelationService.userCollectEvaluation(page,limit,uid,type));
|
||||||
|
return ApiResult.ok(list);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 用户资金统计
|
* 用户资金统计
|
||||||
*/
|
*/
|
||||||
@@ -224,9 +284,15 @@ public class LetterAppUserController {
|
|||||||
@ApiOperation(value = "用户修改信息",notes = "用修改信息")
|
@ApiOperation(value = "用户修改信息",notes = "用修改信息")
|
||||||
public ApiResult<Object> edit(@Validated @RequestBody UserEditParam param){
|
public ApiResult<Object> edit(@Validated @RequestBody UserEditParam param){
|
||||||
YxUser yxUser = LocalUser.getUser();
|
YxUser yxUser = LocalUser.getUser();
|
||||||
|
if (StringUtils.isNotBlank(param.getAvatar())){
|
||||||
yxUser.setAvatar(param.getAvatar());
|
yxUser.setAvatar(param.getAvatar());
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(param.getNickname())){
|
||||||
yxUser.setNickname(param.getNickname());
|
yxUser.setNickname(param.getNickname());
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(param.getBirthday())){
|
||||||
|
yxUser.setBirthday(param.getBirthday());
|
||||||
|
}
|
||||||
yxUserService.updateById(yxUser);
|
yxUserService.updateById(yxUser);
|
||||||
|
|
||||||
return ApiResult.ok("修改成功");
|
return ApiResult.ok("修改成功");
|
||||||
|
|||||||
+7
-2
@@ -9,6 +9,7 @@
|
|||||||
package co.yixiang.app.modules.wechat.rest.controller;
|
package co.yixiang.app.modules.wechat.rest.controller;
|
||||||
|
|
||||||
import cn.binarywang.wx.miniapp.api.WxMaService;
|
import cn.binarywang.wx.miniapp.api.WxMaService;
|
||||||
|
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
|
||||||
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
|
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
|
||||||
@@ -94,11 +95,15 @@ public class WxMaUserController {
|
|||||||
WxMaService wxMaService = WxMaConfiguration.getWxMaService();
|
WxMaService wxMaService = WxMaConfiguration.getWxMaService();
|
||||||
String phone = "";
|
String phone = "";
|
||||||
try {
|
try {
|
||||||
String sessionKey = systemConfigService.getData(ShopConstants.ZSW_MINI_SESSION_KET + user.getUid());
|
// String sessionKey = systemConfigService.getData(ShopConstants.ZSW_MINI_SESSION_KET + user.getUid());
|
||||||
|
WxMaJscode2SessionResult session = wxMaService.getUserService()
|
||||||
|
.getSessionInfo(param.getCode());
|
||||||
WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService()
|
WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService()
|
||||||
.getPhoneNoInfo(sessionKey, param.getEncryptedData(), param.getIv());
|
.getPhoneNoInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv());
|
||||||
phone = phoneNoInfo.getPhoneNumber();
|
phone = phoneNoInfo.getPhoneNumber();
|
||||||
|
|
||||||
user.setPhone(phone);
|
user.setPhone(phone);
|
||||||
|
user.setUsername(phone);//默认没绑手机号的用户username是openId,绑定手机号时候也修改为手机号
|
||||||
userService.updateById(user);
|
userService.updateById(user);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -15,6 +15,10 @@ import javax.validation.constraints.NotBlank;
|
|||||||
@Setter
|
@Setter
|
||||||
public class WxPhoneParam {
|
public class WxPhoneParam {
|
||||||
|
|
||||||
|
@NotBlank(message = "code参数缺失")
|
||||||
|
@ApiModelProperty(value = "小程序登陆code")
|
||||||
|
private String code;
|
||||||
|
|
||||||
@ApiModelProperty(value = "小程序完整用户信息的加密数据")
|
@ApiModelProperty(value = "小程序完整用户信息的加密数据")
|
||||||
private String encryptedData;
|
private String encryptedData;
|
||||||
|
|
||||||
|
|||||||
@@ -25,19 +25,19 @@ public abstract class QueryParam implements Serializable{
|
|||||||
private String keyword;
|
private String keyword;
|
||||||
|
|
||||||
@ApiModelProperty(value = "当前第几页")
|
@ApiModelProperty(value = "当前第几页")
|
||||||
public void setCurrent(Integer current) {
|
public void setPage(Integer page) {
|
||||||
if (current == null || current <= 0){
|
if (page == null || page <= 0){
|
||||||
this.page = 1;
|
this.page = 1;
|
||||||
}else{
|
}else{
|
||||||
this.page = current;
|
this.page = page;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSize(Integer size) {
|
public void setLimit(Integer limit) {
|
||||||
if (size == null || size <= 0){
|
if (limit == null || limit <= 0){
|
||||||
this.limit = 10;
|
this.limit = 10;
|
||||||
}else{
|
}else{
|
||||||
this.limit = size;
|
this.limit = limit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -91,6 +91,21 @@ public interface ShopConstants {
|
|||||||
* 首页banner
|
* 首页banner
|
||||||
*/
|
*/
|
||||||
String ZSW_HOME_BANNER = "zsw_home_banner";
|
String ZSW_HOME_BANNER = "zsw_home_banner";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 常见问答
|
||||||
|
*/
|
||||||
|
String ZSW_HOME_PROBLEM = "zsw_home_problem";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关于我们
|
||||||
|
*/
|
||||||
|
String ZSW_HOME_ABOUTUS = "aboutUS";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 品牌馆首页滚动条
|
||||||
|
*/
|
||||||
|
String ZSW_BRAND_INDEX = "brandIndex";
|
||||||
/**
|
/**
|
||||||
* 首页菜单
|
* 首页菜单
|
||||||
*/
|
*/
|
||||||
@@ -102,7 +117,7 @@ public interface ShopConstants {
|
|||||||
/**
|
/**
|
||||||
* 热门搜索
|
* 热门搜索
|
||||||
*/
|
*/
|
||||||
String ZSW_HOT_SEARCH = "zsw_hot_search";
|
String ZSW_HOT_SEARCH = "yshop_hot_search";
|
||||||
/**
|
/**
|
||||||
* 个人中心菜单
|
* 个人中心菜单
|
||||||
*/
|
*/
|
||||||
@@ -110,11 +125,11 @@ public interface ShopConstants {
|
|||||||
/**
|
/**
|
||||||
* 秒杀时间段
|
* 秒杀时间段
|
||||||
*/
|
*/
|
||||||
String ZSW_SECKILL_TIME = "zsw_seckill_time";
|
String ZSW_SECKILL_TIME = "yshop_seckill_time";
|
||||||
/**
|
/**
|
||||||
* 签到天数
|
* 签到天数
|
||||||
*/
|
*/
|
||||||
String ZSW_SIGN_DAY_NUM = "zsw_sign_day_num";
|
String ZSW_SIGN_DAY_NUM = "yshop_sign_day_num";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 打印机配置
|
* 打印机配置
|
||||||
@@ -171,6 +186,15 @@ public interface ShopConstants {
|
|||||||
|
|
||||||
String ZSW_WECHAT_PUSH_REMARK = "回乡欢迎您!";
|
String ZSW_WECHAT_PUSH_REMARK = "回乡欢迎您!";
|
||||||
|
|
||||||
|
String SHOP_WECHAT_PUSH_REMARK = "获得1张新的优惠券,快来看看吧";
|
||||||
|
|
||||||
|
String SHOP_WECHAT_NEAR_COUPON = "您领取的券即将到期,请尽快使用";
|
||||||
|
|
||||||
|
String SHOP_WECHAT_BARGAIN_RESULT_SUCCESS = "恭喜您,本次砍价活动成功,快去最低价购买吧";
|
||||||
|
String SHOP_WECHAT_BARGAIN_RESULT_FAIL = "很遗憾,本次砍价活动失败";
|
||||||
|
|
||||||
|
String SHOP_WECHAT_COMBINATION_RESULT_SUCCESS = "恭喜您,本次拼团活动成功,商品将安排配送";
|
||||||
|
String SHOP_WECHAT_COMBINATION_RESULT_FAIL = "很遗憾,本次拼团活动失败";
|
||||||
String DEFAULT_UNI_H5_URL = "https://www.lotus-wallet.com";
|
String DEFAULT_UNI_H5_URL = "https://www.lotus-wallet.com";
|
||||||
|
|
||||||
String ZSW_MINI_SESSION_KET = "zsw:session_key:";
|
String ZSW_MINI_SESSION_KET = "zsw:session_key:";
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package co.yixiang.constant;
|
package co.yixiang.constant;
|
||||||
|
|
||||||
public class SystemConfigConstants {
|
public class SystemConfigConstants {
|
||||||
|
//机器人链接地址
|
||||||
|
public final static String ROBOT_URL="robotUrl";
|
||||||
|
//机器人消息跳转网址
|
||||||
|
public final static String CARD_ACTION_URL="cardActionUrl";
|
||||||
|
|
||||||
//地址配置
|
//地址配置
|
||||||
public final static String API="api";
|
public final static String API="api";
|
||||||
public final static String API_URL="api_url";
|
public final static String API_URL="api_url";
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ public enum OrderInfoEnum {
|
|||||||
STATUS_1(1,"待收货"),
|
STATUS_1(1,"待收货"),
|
||||||
STATUS_2(2,"已收货"),
|
STATUS_2(2,"已收货"),
|
||||||
STATUS_3(3,"已完成"),
|
STATUS_3(3,"已完成"),
|
||||||
|
STATUS_8(3,"已取消"),
|
||||||
PAY_STATUS_0(0,"未支付"),
|
PAY_STATUS_0(0,"未支付"),
|
||||||
PAY_STATUS_1(1,"已支付"),
|
PAY_STATUS_1(1,"已支付"),
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ public enum OrderStatusEnum {
|
|||||||
STATUS_2(2,"待收货"),
|
STATUS_2(2,"待收货"),
|
||||||
STATUS_3(3,"待评价"),
|
STATUS_3(3,"待评价"),
|
||||||
STATUS_4(4,"已完成"),
|
STATUS_4(4,"已完成"),
|
||||||
|
STATUS_8(8,"已取消"),
|
||||||
STATUS_MINUS_1(-1,"退款中"),
|
STATUS_MINUS_1(-1,"退款中"),
|
||||||
STATUS_MINUS_2(-2,"已退款"),
|
STATUS_MINUS_2(-2,"已退款"),
|
||||||
STATUS_MINUS_3(-3,"退款");
|
STATUS_MINUS_3(-3,"退款");
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import lombok.Getter;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ClassName TemplateBean
|
* @ClassName TemplateBean
|
||||||
* @Author hupeng <610796224@qq.com>
|
* @Author hupeng <610796224@qq.com>
|
||||||
@@ -24,10 +26,18 @@ public class TemplateBean {
|
|||||||
private String deliveryName;
|
private String deliveryName;
|
||||||
private String deliveryId;
|
private String deliveryId;
|
||||||
private String payType;
|
private String payType;
|
||||||
|
private Long productId; //商品名字
|
||||||
|
private Boolean result;
|
||||||
private Long uid;
|
private Long uid;
|
||||||
|
private BigDecimal payPrice; //拼团活动实付金额
|
||||||
|
private BigDecimal refundPrice; //拼团活动退款金额
|
||||||
/**
|
/**
|
||||||
* 提现申请ID
|
* 提现申请ID
|
||||||
*/
|
*/
|
||||||
private Long extractId;
|
private Long extractId;
|
||||||
|
/**
|
||||||
|
* 获得优惠券id
|
||||||
|
*/
|
||||||
|
private Integer couponId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,12 @@ public enum TemplateListenEnum {
|
|||||||
TYPE_6("6","商家收款通知"),
|
TYPE_6("6","商家收款通知"),
|
||||||
TYPE_7("7","用户下单未支付通知"),
|
TYPE_7("7","用户下单未支付通知"),
|
||||||
TYPE_8("8","用户提现通知"),
|
TYPE_8("8","用户提现通知"),
|
||||||
TYPE_9("9","退款申请通知");
|
TYPE_9("9","退款申请通知"),
|
||||||
|
TYPE_10("10","用户获得优惠券后发送订阅通知"),
|
||||||
|
TYPE_11("11","用户优惠券将过期发送推送"),
|
||||||
|
TYPE_12("12","用户发起砍价活动结果通知"),
|
||||||
|
TYPE_13("13","用户参加拼团活动结果通知");
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
private String desc;
|
private String desc;
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import cn.hutool.core.bean.copier.CopyOptions;
|
|||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDomain;
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDomain;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -203,6 +204,11 @@ public class YxStoreBargain extends BaseDomain {
|
|||||||
private Integer share;
|
private Integer share;
|
||||||
|
|
||||||
|
|
||||||
|
/** 运费模板ID */
|
||||||
|
@JsonProperty("temp_id")
|
||||||
|
@ApiModelProperty(value = "运费模板ID")
|
||||||
|
private Long tempId;
|
||||||
|
|
||||||
|
|
||||||
public void copy(YxStoreBargain source){
|
public void copy(YxStoreBargain source){
|
||||||
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ package co.yixiang.modules.activity.domain;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.bean.copier.CopyOptions;
|
import cn.hutool.core.bean.copier.CopyOptions;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDomain;
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDomain;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
@@ -19,6 +20,7 @@ import javax.validation.constraints.DecimalMin;
|
|||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author hupeng
|
* @author hupeng
|
||||||
@@ -60,11 +62,25 @@ public class YxStoreCoupon extends BaseDomain {
|
|||||||
private BigDecimal useMinPrice;
|
private BigDecimal useMinPrice;
|
||||||
|
|
||||||
|
|
||||||
/** 优惠券有效期限(单位:天) */
|
// /** 优惠券有效期限(单位:天) */
|
||||||
@NotNull(message = "请输入有效期限")
|
// @NotNull(message = "请输入有效期限")
|
||||||
@ApiModelProperty(value = "优惠券有效期限(单位:天)")
|
// @ApiModelProperty(value = "优惠券有效期限(单位:天)")
|
||||||
private Integer couponTime;
|
// private Integer couponTime;
|
||||||
|
|
||||||
|
// /** 优惠券有效期限(单位:天) */
|
||||||
|
// @NotNull(message = "请输入有效期限")
|
||||||
|
// @ApiModelProperty(value = "优惠券有效期限(单位:天;几号到几号)")
|
||||||
|
// private Object useTime;
|
||||||
|
|
||||||
|
/** 优惠券开始使用时间 */
|
||||||
|
@NotNull(message = "请输入开始期限")
|
||||||
|
@ApiModelProperty(value = "优惠券开始使用时间")
|
||||||
|
private String useStartTime;
|
||||||
|
|
||||||
|
/** 优惠券结束使用时间 */
|
||||||
|
@NotNull(message = "请输入有效结束期限")
|
||||||
|
@ApiModelProperty(value = "优惠券结束使用时间")
|
||||||
|
private String useEndTime;
|
||||||
|
|
||||||
/** 排序 */
|
/** 排序 */
|
||||||
@ApiModelProperty(value = "排序")
|
@ApiModelProperty(value = "排序")
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import lombok.Builder;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -30,6 +31,7 @@ import java.util.Date;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@TableName("yx_store_coupon_user")
|
@TableName("yx_store_coupon_user")
|
||||||
|
@Service
|
||||||
public class YxStoreCouponUser extends BaseDomain {
|
public class YxStoreCouponUser extends BaseDomain {
|
||||||
|
|
||||||
/** 优惠券发放记录id */
|
/** 优惠券发放记录id */
|
||||||
@@ -63,14 +65,17 @@ public class YxStoreCouponUser extends BaseDomain {
|
|||||||
private BigDecimal useMinPrice;
|
private BigDecimal useMinPrice;
|
||||||
|
|
||||||
|
|
||||||
/** 优惠券结束时间 */
|
/** 优惠券有效期结束时间 */
|
||||||
@ApiModelProperty(value = "优惠券结束时间")
|
@ApiModelProperty(value = "优惠券有效期结束时间")
|
||||||
private Date endTime;
|
private Date useEndTime;
|
||||||
|
|
||||||
|
/** 优惠券有效期开始时间 */
|
||||||
|
@ApiModelProperty(value = "优惠券有效期开始时间")
|
||||||
|
private Date useStartTime;
|
||||||
|
|
||||||
/** 使用时间 */
|
// /** 使用时间 */
|
||||||
@ApiModelProperty(value = "使用时间")
|
// @ApiModelProperty(value = "使用时间")
|
||||||
private Date useTime;
|
// private Date useTime;
|
||||||
|
|
||||||
|
|
||||||
/** 获取方式 */
|
/** 获取方式 */
|
||||||
|
|||||||
@@ -61,12 +61,13 @@ public class StoreCouponController {
|
|||||||
&& StrUtil.isEmpty(resources.getProductId())){
|
&& StrUtil.isEmpty(resources.getProductId())){
|
||||||
throw new YshopException("请选择商品");
|
throw new YshopException("请选择商品");
|
||||||
}
|
}
|
||||||
if(resources.getCouponPrice().compareTo(resources.getUseMinPrice()) >= 0) {
|
// if(resources.getCouponPrice().compareTo(resources.getUseMinPrice()) >= 0) {
|
||||||
throw new YshopException("优惠券金额不能高于最低消费金额");
|
// throw new YshopException("优惠券金额不能高于最低消费金额");
|
||||||
}
|
// }
|
||||||
return new ResponseEntity<>(yxStoreCouponService.save(resources),HttpStatus.CREATED);
|
return new ResponseEntity<>(yxStoreCouponService.save(resources),HttpStatus.CREATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Log("修改")
|
@Log("修改")
|
||||||
@ApiOperation(value = "修改")
|
@ApiOperation(value = "修改")
|
||||||
@PutMapping(value = "/yxStoreCoupon")
|
@PutMapping(value = "/yxStoreCoupon")
|
||||||
@@ -76,9 +77,10 @@ public class StoreCouponController {
|
|||||||
&& StrUtil.isEmpty(resources.getProductId())){
|
&& StrUtil.isEmpty(resources.getProductId())){
|
||||||
throw new YshopException("请选择商品");
|
throw new YshopException("请选择商品");
|
||||||
}
|
}
|
||||||
if(resources.getCouponPrice().compareTo(resources.getUseMinPrice()) >= 0) {
|
// if(resources.getCouponPrice().compareTo(resources.getUseMinPrice()) >= 0) {
|
||||||
throw new YshopException("优惠券金额不能高于最低消费金额");
|
// throw new YshopException("优惠券金额不能高于最低消费金额");
|
||||||
}
|
// }
|
||||||
|
//这里需要对优惠券开始使用时间和结束时间进行比较
|
||||||
yxStoreCouponService.saveOrUpdate(resources);
|
yxStoreCouponService.saveOrUpdate(resources);
|
||||||
return new ResponseEntity(HttpStatus.NO_CONTENT);
|
return new ResponseEntity(HttpStatus.NO_CONTENT);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -52,7 +52,8 @@ public class StoreCouponIssueController {
|
|||||||
@Log("发布")
|
@Log("发布")
|
||||||
@ApiOperation(value = "发布")
|
@ApiOperation(value = "发布")
|
||||||
@PostMapping(value = "/yxStoreCouponIssue")
|
@PostMapping(value = "/yxStoreCouponIssue")
|
||||||
@PreAuthorize("@ss.hasAnyPermissions('admin','YXSTORECOUPONISSUE_ALL','YXSTORECOUPONISSUE_CREATE')")
|
// @PreAuthorize("@ss.hasAnyPermissions('admin','YXSTORECOUPONISSUE_ALL','YXSTORECOUPONISSUE_CREATE')")
|
||||||
|
@PreAuthorize("@ss.hasAnyPermissions('admin','YXSTORECOUPON_ALL','YXSTORECOUPON_EDIT')")
|
||||||
public ResponseEntity create(@Validated @RequestBody YxStoreCouponIssue resources){
|
public ResponseEntity create(@Validated @RequestBody YxStoreCouponIssue resources){
|
||||||
if(resources.getTotalCount() > 0) {
|
if(resources.getTotalCount() > 0) {
|
||||||
resources.setRemainCount(resources.getTotalCount());
|
resources.setRemainCount(resources.getTotalCount());
|
||||||
|
|||||||
+4
-2
@@ -91,9 +91,9 @@ public interface YxStoreBargainService extends BaseService<YxStoreBargain>{
|
|||||||
* @param limit limit
|
* @param limit limit
|
||||||
* @return List
|
* @return List
|
||||||
*/
|
*/
|
||||||
List<YxStoreBargainQueryVo> getList(int page, int limit);
|
Map<String,List<YxStoreBargainQueryVo>> getList(int page, int limit);
|
||||||
|
|
||||||
|
|
||||||
|
// List<YxStoreBargainQueryVo> getUserBargainList(int page, int limit);
|
||||||
/**
|
/**
|
||||||
* 查询数据分页
|
* 查询数据分页
|
||||||
* @param criteria 条件
|
* @param criteria 条件
|
||||||
@@ -122,4 +122,6 @@ public interface YxStoreBargainService extends BaseService<YxStoreBargain>{
|
|||||||
* @param id
|
* @param id
|
||||||
*/
|
*/
|
||||||
void deleteBargainImg(String id);
|
void deleteBargainImg(String id);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+8
@@ -84,6 +84,14 @@ public interface YxStoreBargainUserService extends BaseService<YxStoreBargainUse
|
|||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
Long getBargainUserCount(Long bargainId,Integer status);
|
Long getBargainUserCount(Long bargainId,Integer status);
|
||||||
|
/**
|
||||||
|
* 获取参与砍价的用户数量
|
||||||
|
* @param bargainId 砍价id
|
||||||
|
* @param uid 状态 OrderInfoEnum 1 进行中 2 结束失败 3结束成功
|
||||||
|
* @param uid 用户是否正在参加该活动
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
Boolean getUserIsParticipation(Long uid,Long bargainId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -38,6 +38,7 @@ public interface YxStoreCombinationService extends BaseService<YxStoreCombinati
|
|||||||
*/
|
*/
|
||||||
CombinationQueryVo getList(int page, int limit);
|
CombinationQueryVo getList(int page, int limit);
|
||||||
|
|
||||||
|
CombinationQueryVo getCombinationList(int page, int limit);
|
||||||
/**
|
/**
|
||||||
* 获取拼团详情
|
* 获取拼团详情
|
||||||
* @param id 拼团产品id
|
* @param id 拼团产品id
|
||||||
@@ -77,4 +78,6 @@ public interface YxStoreCombinationService extends BaseService<YxStoreCombinati
|
|||||||
void onSale(Long id, Integer status);
|
void onSale(Long id, Integer status);
|
||||||
|
|
||||||
boolean saveCombination(YxStoreCombinationDto resources);
|
boolean saveCombination(YxStoreCombinationDto resources);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ public class SeckillTimeDto {
|
|||||||
@ApiModelProperty(value = "秒杀产品状态")
|
@ApiModelProperty(value = "秒杀产品状态")
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "秒杀规则")
|
||||||
|
private String rule;
|
||||||
|
|
||||||
@ApiModelProperty(value = "秒杀产品停止时间")
|
@ApiModelProperty(value = "秒杀产品停止时间")
|
||||||
private Integer stop;
|
private Integer stop;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,6 +99,9 @@ public class YxStoreBargainDto implements Serializable {
|
|||||||
/** 邮费 */
|
/** 邮费 */
|
||||||
private BigDecimal postage;
|
private BigDecimal postage;
|
||||||
|
|
||||||
|
/** 运费模板 */
|
||||||
|
private Long tempId;
|
||||||
|
|
||||||
/** 砍价规则 */
|
/** 砍价规则 */
|
||||||
private String rule;
|
private String rule;
|
||||||
|
|
||||||
|
|||||||
+12
-2
@@ -5,12 +5,14 @@
|
|||||||
*/
|
*/
|
||||||
package co.yixiang.modules.activity.service.dto;
|
package co.yixiang.modules.activity.service.dto;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import co.yixiang.modules.product.domain.YxStoreProduct;
|
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.Timestamp;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -36,8 +38,16 @@ public class YxStoreCouponDto implements Serializable {
|
|||||||
// 最低消费多少金额可用优惠券
|
// 最低消费多少金额可用优惠券
|
||||||
private BigDecimal useMinPrice;
|
private BigDecimal useMinPrice;
|
||||||
|
|
||||||
// 优惠券有效期限(单位:天)
|
// // 优惠券有效期限(单位:天)
|
||||||
private Integer couponTime;
|
// private Integer couponTime;
|
||||||
|
|
||||||
|
// 优惠券有效期开始时间
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
|
||||||
|
private DateTime useStartTime;
|
||||||
|
|
||||||
|
// 优惠券有效期开始时间
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
|
||||||
|
private DateTime useEndTime;
|
||||||
|
|
||||||
// 排序
|
// 排序
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
|||||||
+5
-3
@@ -42,10 +42,12 @@ public class YxStoreCouponUserDto implements Serializable {
|
|||||||
private Date addTime;
|
private Date addTime;
|
||||||
|
|
||||||
// 优惠券结束时间
|
// 优惠券结束时间
|
||||||
private Date endTime;
|
private Date useEndTime;
|
||||||
|
|
||||||
// 使用时间
|
// 优惠券结束时间
|
||||||
private Date useTime;
|
private Date useStartTime;
|
||||||
|
// // 使用时间
|
||||||
|
// private Date useTime;
|
||||||
|
|
||||||
// 获取方式
|
// 获取方式
|
||||||
private String type;
|
private String type;
|
||||||
|
|||||||
+72
-19
@@ -8,13 +8,21 @@
|
|||||||
*/
|
*/
|
||||||
package co.yixiang.modules.activity.service.impl;
|
package co.yixiang.modules.activity.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
||||||
|
import co.yixiang.app.common.bean.LocalUser;
|
||||||
import co.yixiang.common.service.impl.BaseServiceImpl;
|
import co.yixiang.common.service.impl.BaseServiceImpl;
|
||||||
import co.yixiang.common.utils.QueryHelpPlus;
|
import co.yixiang.common.utils.QueryHelpPlus;
|
||||||
import co.yixiang.dozer.service.IGenerator;
|
import co.yixiang.dozer.service.IGenerator;
|
||||||
import co.yixiang.enums.OrderInfoEnum;
|
import co.yixiang.enums.OrderInfoEnum;
|
||||||
import co.yixiang.enums.ShopCommonEnum;
|
import co.yixiang.enums.ShopCommonEnum;
|
||||||
|
import co.yixiang.event.TemplateBean;
|
||||||
|
import co.yixiang.event.TemplateEvent;
|
||||||
|
import co.yixiang.event.TemplateListenEnum;
|
||||||
|
import co.yixiang.exception.BadRequestException;
|
||||||
import co.yixiang.modules.activity.domain.YxStoreBargain;
|
import co.yixiang.modules.activity.domain.YxStoreBargain;
|
||||||
import co.yixiang.modules.activity.domain.YxStoreBargainUser;
|
import co.yixiang.modules.activity.domain.YxStoreBargainUser;
|
||||||
import co.yixiang.modules.activity.domain.YxStoreBargainUserHelp;
|
import co.yixiang.modules.activity.domain.YxStoreBargainUserHelp;
|
||||||
@@ -28,8 +36,14 @@ import co.yixiang.modules.activity.vo.BargainCountVo;
|
|||||||
import co.yixiang.modules.activity.vo.BargainVo;
|
import co.yixiang.modules.activity.vo.BargainVo;
|
||||||
import co.yixiang.modules.activity.vo.TopCountVo;
|
import co.yixiang.modules.activity.vo.TopCountVo;
|
||||||
import co.yixiang.modules.activity.vo.YxStoreBargainQueryVo;
|
import co.yixiang.modules.activity.vo.YxStoreBargainQueryVo;
|
||||||
|
import co.yixiang.modules.hotList.domain.YxStoreHotList;
|
||||||
import co.yixiang.modules.order.domain.YxStoreOrder;
|
import co.yixiang.modules.order.domain.YxStoreOrder;
|
||||||
import co.yixiang.modules.order.service.YxStoreOrderService;
|
import co.yixiang.modules.order.service.YxStoreOrderService;
|
||||||
|
import co.yixiang.modules.product.service.YxStoreProductService;
|
||||||
|
import co.yixiang.modules.product.service.mapper.StoreProductMapper;
|
||||||
|
import co.yixiang.modules.shop.service.YxSystemConfigService;
|
||||||
|
import co.yixiang.modules.template.domain.YxShippingTemplates;
|
||||||
|
import co.yixiang.modules.template.service.YxShippingTemplatesService;
|
||||||
import co.yixiang.modules.user.domain.YxUser;
|
import co.yixiang.modules.user.domain.YxUser;
|
||||||
import co.yixiang.modules.user.vo.YxUserQueryVo;
|
import co.yixiang.modules.user.vo.YxUserQueryVo;
|
||||||
import co.yixiang.utils.FileUtil;
|
import co.yixiang.utils.FileUtil;
|
||||||
@@ -38,6 +52,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.ApplicationEventPublisher;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
@@ -46,12 +61,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -68,7 +78,8 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
|
|||||||
@Autowired
|
@Autowired
|
||||||
private YxStoreBargainMapper yxStoreBargainMapper;
|
private YxStoreBargainMapper yxStoreBargainMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApplicationEventPublisher publisher;
|
||||||
@Autowired
|
@Autowired
|
||||||
private YxStoreBargainUserService storeBargainUserService;
|
private YxStoreBargainUserService storeBargainUserService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -76,8 +87,16 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
|
|||||||
@Autowired
|
@Autowired
|
||||||
private YxStoreBargainUserHelpService storeBargainUserHelpService;
|
private YxStoreBargainUserHelpService storeBargainUserHelpService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StoreProductMapper storeProductMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private YxSystemConfigService systemConfigService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private YxShippingTemplatesService shippingTemplatesService;
|
||||||
|
@Autowired
|
||||||
|
private YxStoreProductService yxStoreProductService;
|
||||||
/**
|
/**
|
||||||
* 退回库存销量
|
* 退回库存销量
|
||||||
* @param num 数量
|
* @param num 数量
|
||||||
@@ -124,7 +143,6 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
|
|||||||
YxStoreBargainUser storeBargainUser = storeBargainUserService
|
YxStoreBargainUser storeBargainUser = storeBargainUserService
|
||||||
.getBargainUserInfo(bargainId,bargainUserUid);
|
.getBargainUserInfo(bargainId,bargainUserUid);
|
||||||
|
|
||||||
|
|
||||||
YxStoreBargain storeBargain = this.getById(bargainId);
|
YxStoreBargain storeBargain = this.getById(bargainId);
|
||||||
//用户可以砍掉的金额 好友砍价之前获取可以砍价金额
|
//用户可以砍掉的金额 好友砍价之前获取可以砍价金额
|
||||||
double coverPrice = NumberUtil.sub(storeBargainUser.getBargainPrice()
|
double coverPrice = NumberUtil.sub(storeBargainUser.getBargainPrice()
|
||||||
@@ -139,7 +157,6 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//生成一个区间随机数
|
//生成一个区间随机数
|
||||||
random = OrderUtil.randomNumber(
|
random = OrderUtil.randomNumber(
|
||||||
storeBargain.getBargainMinPrice().doubleValue(),
|
storeBargain.getBargainMinPrice().doubleValue(),
|
||||||
@@ -169,7 +186,17 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
|
|||||||
.id(storeBargainUser.getId())
|
.id(storeBargainUser.getId())
|
||||||
.price(BigDecimal.valueOf(totalPrice))
|
.price(BigDecimal.valueOf(totalPrice))
|
||||||
.build();
|
.build();
|
||||||
|
//如果砍价完成这里为砍价发起人进行订阅推送
|
||||||
|
if (totalPrice==coverPrice){
|
||||||
|
TemplateBean templateBean = TemplateBean.builder()
|
||||||
|
.productId(storeBargain.getProductId())
|
||||||
|
.uid(storeBargainUser.getUid())
|
||||||
|
.result(true)
|
||||||
|
.templateType(TemplateListenEnum.TYPE_12.getValue())
|
||||||
|
.time(DateUtil.formatTime(new Date()))
|
||||||
|
.build();
|
||||||
|
publisher.publishEvent(new TemplateEvent(this, templateBean));
|
||||||
|
}
|
||||||
storeBargainUserService.updateById(bargainUser);
|
storeBargainUserService.updateById(bargainUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -281,17 +308,34 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
|
|||||||
if(storeBargain == null) {
|
if(storeBargain == null) {
|
||||||
throw new YshopException("砍价已结束");
|
throw new YshopException("砍价已结束");
|
||||||
}
|
}
|
||||||
|
// 获取运费模板名称
|
||||||
|
String storeFreePostage = systemConfigService.getData("store_free_postage");
|
||||||
|
String tempName = "";
|
||||||
|
if(StrUtil.isBlank(storeFreePostage)
|
||||||
|
|| !NumberUtil.isNumber(storeFreePostage)
|
||||||
|
|| Integer.parseInt(storeFreePostage) == 0){
|
||||||
|
tempName = "全国包邮";
|
||||||
|
}else{
|
||||||
|
YxShippingTemplates shippingTemplates = shippingTemplatesService.getById(storeBargain.getTempId());
|
||||||
|
if(ObjectUtil.isNotNull(shippingTemplates)){
|
||||||
|
tempName = shippingTemplates.getName();
|
||||||
|
}else {
|
||||||
|
throw new BadRequestException("请配置运费模板");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.addBargainLook(id);
|
this.addBargainLook(id);
|
||||||
|
|
||||||
YxStoreBargainQueryVo storeBargainQueryVo = generator.convert(storeBargain,
|
YxStoreBargainQueryVo storeBargainQueryVo = generator.convert(storeBargain,
|
||||||
YxStoreBargainQueryVo.class);
|
YxStoreBargainQueryVo.class)
|
||||||
|
.setConfig(storeProductMapper.selectById(storeBargain.getProductId()).getConfig());
|
||||||
|
|
||||||
return BargainVo
|
return BargainVo
|
||||||
.builder()
|
.builder()
|
||||||
.bargain(storeBargainQueryVo)
|
.bargain(storeBargainQueryVo)
|
||||||
.userInfo(generator.convert(yxUser, YxUserQueryVo.class))
|
.userInfo(generator.convert(yxUser, YxUserQueryVo.class))
|
||||||
.bargainSumCount(this.getBargainPayCount(id))
|
.bargainSumCount(this.getBargainPayCount(id))
|
||||||
|
.tempName(tempName)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -302,7 +346,8 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
|
|||||||
* @return List
|
* @return List
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<YxStoreBargainQueryVo> getList(int page, int limit) {
|
public Map<String,List<YxStoreBargainQueryVo>> getList(int page, int limit) {
|
||||||
|
Map<String,List<YxStoreBargainQueryVo>> map=new HashMap<>();
|
||||||
Page<YxStoreBargain> pageModel = new Page<>(page, limit);
|
Page<YxStoreBargain> pageModel = new Page<>(page, limit);
|
||||||
LambdaQueryWrapper<YxStoreBargain> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<YxStoreBargain> wrapper = new LambdaQueryWrapper<>();
|
||||||
Date nowTime = new Date();
|
Date nowTime = new Date();
|
||||||
@@ -313,15 +358,23 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
|
|||||||
List<YxStoreBargainQueryVo> yxStoreBargainQueryVos = generator.convert(
|
List<YxStoreBargainQueryVo> yxStoreBargainQueryVos = generator.convert(
|
||||||
yxStoreBargainMapper.selectPage(pageModel,wrapper).getRecords(),
|
yxStoreBargainMapper.selectPage(pageModel,wrapper).getRecords(),
|
||||||
YxStoreBargainQueryVo.class);
|
YxStoreBargainQueryVo.class);
|
||||||
|
long uid = LocalUser.getUidByToken();
|
||||||
|
List<YxStoreBargainQueryVo> isParticipation=new ArrayList<>();
|
||||||
|
List<YxStoreBargainQueryVo> isNotParticipation=new ArrayList<>();
|
||||||
yxStoreBargainQueryVos.forEach(item->{
|
yxStoreBargainQueryVos.forEach(item->{
|
||||||
item.setPeople(storeBargainUserService.getBargainUserCount(item.getId(),
|
item.setPeople(storeBargainUserService.getBargainUserCount(item.getId(), OrderInfoEnum.BARGAIN_STATUS_1.getValue()));
|
||||||
OrderInfoEnum.BARGAIN_STATUS_1.getValue()));
|
item.setIsParticipation(storeBargainUserService.getUserIsParticipation(uid, item.getId()));
|
||||||
});
|
if (item.getIsParticipation()){
|
||||||
|
isParticipation.add(item);
|
||||||
return yxStoreBargainQueryVos;
|
}else {
|
||||||
|
isNotParticipation.add(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
map.put("yxStoreBargainQueryVos",yxStoreBargainQueryVos);
|
||||||
|
map.put("isParticipation",isParticipation);
|
||||||
|
map.put("isNotParticipation",isNotParticipation);
|
||||||
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 增加分享次数
|
* 增加分享次数
|
||||||
|
|||||||
+11
@@ -207,6 +207,17 @@ public class YxStoreBargainUserServiceImpl extends BaseServiceImpl<YxStoreBargai
|
|||||||
.eq(YxStoreBargainUser::getStatus,status).count();
|
.eq(YxStoreBargainUser::getStatus,status).count();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean getUserIsParticipation(Long uid, Long bargainId) {
|
||||||
|
Long count=this.lambdaQuery().eq(YxStoreBargainUser::getUid,uid)
|
||||||
|
.eq(YxStoreBargainUser::getBargainId,bargainId)
|
||||||
|
.eq(YxStoreBargainUser::getStatus,1).count();
|
||||||
|
if (count>0){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// /**
|
// /**
|
||||||
|
|||||||
+30
-2
@@ -14,6 +14,7 @@ import cn.hutool.core.util.NumberUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
||||||
|
import co.yixiang.app.common.bean.LocalUser;
|
||||||
import co.yixiang.common.service.impl.BaseServiceImpl;
|
import co.yixiang.common.service.impl.BaseServiceImpl;
|
||||||
import co.yixiang.common.utils.QueryHelpPlus;
|
import co.yixiang.common.utils.QueryHelpPlus;
|
||||||
import co.yixiang.dozer.service.IGenerator;
|
import co.yixiang.dozer.service.IGenerator;
|
||||||
@@ -29,6 +30,7 @@ import co.yixiang.modules.activity.service.YxStorePinkService;
|
|||||||
import co.yixiang.modules.activity.service.dto.PinkAllDto;
|
import co.yixiang.modules.activity.service.dto.PinkAllDto;
|
||||||
import co.yixiang.modules.activity.service.dto.YxStoreCombinationDto;
|
import co.yixiang.modules.activity.service.dto.YxStoreCombinationDto;
|
||||||
import co.yixiang.modules.activity.service.dto.YxStoreCombinationQueryCriteria;
|
import co.yixiang.modules.activity.service.dto.YxStoreCombinationQueryCriteria;
|
||||||
|
import co.yixiang.modules.activity.service.dto.YxStorePinkDto;
|
||||||
import co.yixiang.modules.activity.service.mapper.YxStoreCombinationMapper;
|
import co.yixiang.modules.activity.service.mapper.YxStoreCombinationMapper;
|
||||||
import co.yixiang.modules.activity.service.mapper.YxStorePinkMapper;
|
import co.yixiang.modules.activity.service.mapper.YxStorePinkMapper;
|
||||||
import co.yixiang.modules.activity.service.mapper.YxStoreVisitMapper;
|
import co.yixiang.modules.activity.service.mapper.YxStoreVisitMapper;
|
||||||
@@ -43,10 +45,12 @@ import co.yixiang.modules.product.service.YxStoreProductService;
|
|||||||
import co.yixiang.modules.product.service.dto.FromatDetailDto;
|
import co.yixiang.modules.product.service.dto.FromatDetailDto;
|
||||||
import co.yixiang.modules.product.service.dto.ProductFormatDto;
|
import co.yixiang.modules.product.service.dto.ProductFormatDto;
|
||||||
import co.yixiang.modules.product.service.dto.ProductResultDto;
|
import co.yixiang.modules.product.service.dto.ProductResultDto;
|
||||||
|
import co.yixiang.modules.product.service.mapper.StoreProductMapper;
|
||||||
import co.yixiang.modules.product.vo.YxStoreProductAttrQueryVo;
|
import co.yixiang.modules.product.vo.YxStoreProductAttrQueryVo;
|
||||||
import co.yixiang.modules.shop.service.YxSystemConfigService;
|
import co.yixiang.modules.shop.service.YxSystemConfigService;
|
||||||
import co.yixiang.modules.template.domain.YxShippingTemplates;
|
import co.yixiang.modules.template.domain.YxShippingTemplates;
|
||||||
import co.yixiang.modules.template.service.YxShippingTemplatesService;
|
import co.yixiang.modules.template.service.YxShippingTemplatesService;
|
||||||
|
import co.yixiang.modules.user.domain.YxUser;
|
||||||
import co.yixiang.utils.FileUtil;
|
import co.yixiang.utils.FileUtil;
|
||||||
|
|
||||||
import co.yixiang.utils.RedisUtils;
|
import co.yixiang.utils.RedisUtils;
|
||||||
@@ -103,6 +107,8 @@ public class YxStoreCombinationServiceImpl extends BaseServiceImpl<YxStoreCombin
|
|||||||
@Autowired
|
@Autowired
|
||||||
private YxSystemConfigService systemConfigService;
|
private YxSystemConfigService systemConfigService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StoreProductMapper storeProductMapper;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -131,7 +137,7 @@ public class YxStoreCombinationServiceImpl extends BaseServiceImpl<YxStoreCombin
|
|||||||
|
|
||||||
StoreCombinationVo storeCombinationVo = new StoreCombinationVo();
|
StoreCombinationVo storeCombinationVo = new StoreCombinationVo();
|
||||||
|
|
||||||
storeCombinationVo.setStoreInfo(storeCombinationQueryVo);
|
storeCombinationVo.setStoreInfo(storeCombinationQueryVo.setConfig(storeProductMapper.selectById(storeCombination.getProductId()).getConfig()));
|
||||||
|
|
||||||
//评价
|
//评价
|
||||||
storeCombinationVo.setReply(replyService
|
storeCombinationVo.setReply(replyService
|
||||||
@@ -199,6 +205,28 @@ public class YxStoreCombinationServiceImpl extends BaseServiceImpl<YxStoreCombin
|
|||||||
return combinationQueryVo;
|
return combinationQueryVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CombinationQueryVo getCombinationList(int page, int limit) {
|
||||||
|
long uid = LocalUser.getUidByToken();
|
||||||
|
Page<YxStorePink> pageModel=new Page<>(page, limit);
|
||||||
|
LambdaQueryWrapper<YxStorePink> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
//Status:1 进行中 KId:0 发起人是自己
|
||||||
|
wrapper.eq(YxStorePink::getStatus,1)
|
||||||
|
.eq(YxStorePink::getUid,uid);
|
||||||
|
// .eq(YxStorePink::getKId,0);
|
||||||
|
IPage<YxStorePink> yxStorePinkIPage = yxStorePinkMapper.selectPage(pageModel, wrapper);
|
||||||
|
List<YxStoreCombinationQueryVo> collect = yxStorePinkIPage.getRecords().stream().map(i -> {
|
||||||
|
YxStoreCombinationQueryVo yxStoreCombinationQueryVo = new YxStoreCombinationQueryVo();
|
||||||
|
YxStoreCombination yxStoreCombination=yxStoreCombinationMapper.selectById(i.getCid());
|
||||||
|
BeanUtils.copyProperties(yxStoreCombination, yxStoreCombinationQueryVo);
|
||||||
|
return yxStoreCombinationQueryVo;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
CombinationQueryVo combinationQueryVo = new CombinationQueryVo();
|
||||||
|
combinationQueryVo.setStoreCombinationQueryVos(collect);
|
||||||
|
combinationQueryVo.setLastPage(yxStorePinkIPage.getPages());
|
||||||
|
return combinationQueryVo;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
//=======================================//
|
//=======================================//
|
||||||
|
|
||||||
@@ -363,7 +391,7 @@ public class YxStoreCombinationServiceImpl extends BaseServiceImpl<YxStoreCombin
|
|||||||
.orElse(0);
|
.orElse(0);
|
||||||
|
|
||||||
if(stock <= 0) {
|
if(stock <= 0) {
|
||||||
throw new YshopException("库存不能低于0");
|
throw new YshopException("活动库存不能低于0");
|
||||||
}
|
}
|
||||||
|
|
||||||
return ProductResultDto.builder()
|
return ProductResultDto.builder()
|
||||||
|
|||||||
+36
-6
@@ -8,12 +8,16 @@
|
|||||||
*/
|
*/
|
||||||
package co.yixiang.modules.activity.service.impl;
|
package co.yixiang.modules.activity.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
||||||
import co.yixiang.common.service.impl.BaseServiceImpl;
|
import co.yixiang.common.service.impl.BaseServiceImpl;
|
||||||
import co.yixiang.common.utils.QueryHelpPlus;
|
import co.yixiang.common.utils.QueryHelpPlus;
|
||||||
import co.yixiang.dozer.service.IGenerator;
|
import co.yixiang.dozer.service.IGenerator;
|
||||||
import co.yixiang.enums.CouponEnum;
|
import co.yixiang.enums.CouponEnum;
|
||||||
|
import co.yixiang.event.TemplateBean;
|
||||||
|
import co.yixiang.event.TemplateEvent;
|
||||||
|
import co.yixiang.event.TemplateListenEnum;
|
||||||
import co.yixiang.modules.activity.domain.YxStoreCouponIssue;
|
import co.yixiang.modules.activity.domain.YxStoreCouponIssue;
|
||||||
import co.yixiang.modules.activity.domain.YxStoreCouponIssueUser;
|
import co.yixiang.modules.activity.domain.YxStoreCouponIssueUser;
|
||||||
import co.yixiang.modules.activity.service.YxStoreCouponIssueService;
|
import co.yixiang.modules.activity.service.YxStoreCouponIssueService;
|
||||||
@@ -23,10 +27,15 @@ import co.yixiang.modules.activity.service.dto.YxStoreCouponIssueDto;
|
|||||||
import co.yixiang.modules.activity.service.dto.YxStoreCouponIssueQueryCriteria;
|
import co.yixiang.modules.activity.service.dto.YxStoreCouponIssueQueryCriteria;
|
||||||
import co.yixiang.modules.activity.service.mapper.YxStoreCouponIssueMapper;
|
import co.yixiang.modules.activity.service.mapper.YxStoreCouponIssueMapper;
|
||||||
import co.yixiang.modules.activity.vo.YxStoreCouponIssueQueryVo;
|
import co.yixiang.modules.activity.vo.YxStoreCouponIssueQueryVo;
|
||||||
|
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||||
|
import co.yixiang.modules.product.service.YxStoreProductService;
|
||||||
import co.yixiang.utils.FileUtil;
|
import co.yixiang.utils.FileUtil;
|
||||||
|
import co.yixiang.utils.StringUtils;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.ApplicationEventPublisher;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
@@ -34,11 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -57,8 +62,10 @@ public class YxStoreCouponIssueServiceImpl extends BaseServiceImpl<YxStoreCoupon
|
|||||||
|
|
||||||
private final YxStoreCouponUserService storeCouponUserService;
|
private final YxStoreCouponUserService storeCouponUserService;
|
||||||
private final YxStoreCouponIssueUserService storeCouponIssueUserService;
|
private final YxStoreCouponIssueUserService storeCouponIssueUserService;
|
||||||
|
private final YxStoreProductService yxStoreProductService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApplicationEventPublisher publisher;
|
||||||
/**
|
/**
|
||||||
* 领取优惠券
|
* 领取优惠券
|
||||||
* @param id id 优惠券id
|
* @param id id 优惠券id
|
||||||
@@ -83,6 +90,14 @@ public class YxStoreCouponIssueServiceImpl extends BaseServiceImpl<YxStoreCoupon
|
|||||||
}
|
}
|
||||||
|
|
||||||
storeCouponUserService.addUserCoupon(uid,couponIssueQueryVo.getCid());
|
storeCouponUserService.addUserCoupon(uid,couponIssueQueryVo.getCid());
|
||||||
|
//这里调用微信订阅模板发送消息
|
||||||
|
TemplateBean templateBean = TemplateBean.builder()
|
||||||
|
.couponId(couponIssueQueryVo.getCid())
|
||||||
|
.uid(uid)
|
||||||
|
.templateType(TemplateListenEnum.TYPE_10.getValue())
|
||||||
|
.time(DateUtil.formatTime(new Date()))
|
||||||
|
.build();
|
||||||
|
publisher.publishEvent(new TemplateEvent(this, templateBean));
|
||||||
|
|
||||||
storeCouponIssueUserService.addUserIssue(uid,id);
|
storeCouponIssueUserService.addUserIssue(uid,id);
|
||||||
|
|
||||||
@@ -111,6 +126,21 @@ public class YxStoreCouponIssueServiceImpl extends BaseServiceImpl<YxStoreCoupon
|
|||||||
.selecCoupontList(pageModel,type,productId);
|
.selecCoupontList(pageModel,type,productId);
|
||||||
for (YxStoreCouponIssueQueryVo couponIssue : list) {
|
for (YxStoreCouponIssueQueryVo couponIssue : list) {
|
||||||
Long count = this.couponCount(couponIssue.getId(),uid);
|
Long count = this.couponCount(couponIssue.getId(),uid);
|
||||||
|
String[] idList=couponIssue.getProductId().split(",");
|
||||||
|
List<String> needIdlist;
|
||||||
|
if (idList.length>3){
|
||||||
|
needIdlist= Arrays.asList(Arrays.copyOf(idList, 3));
|
||||||
|
}else {
|
||||||
|
needIdlist= Arrays.asList(idList);
|
||||||
|
}
|
||||||
|
List<String> imageList=new ArrayList<>();
|
||||||
|
needIdlist.forEach(id->{
|
||||||
|
YxStoreProduct yxStoreProduct=yxStoreProductService.getById(id);
|
||||||
|
if (ObjectUtil.isNotEmpty(yxStoreProduct)&& StringUtils.isNotBlank(yxStoreProduct.getImage())){
|
||||||
|
imageList.add(yxStoreProductService.getById(id).getImage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
couponIssue.setImage(imageList);
|
||||||
if(count > 0){
|
if(count > 0){
|
||||||
couponIssue.setIsUse(true);
|
couponIssue.setIsUse(true);
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
+3
-1
@@ -85,7 +85,9 @@ public class YxStoreCouponServiceImpl extends BaseServiceImpl<YxStoreCouponMappe
|
|||||||
map.put("兑换消耗积分值", yxStoreCoupon.getIntegral());
|
map.put("兑换消耗积分值", yxStoreCoupon.getIntegral());
|
||||||
map.put("兑换的优惠券面值", yxStoreCoupon.getCouponPrice());
|
map.put("兑换的优惠券面值", yxStoreCoupon.getCouponPrice());
|
||||||
map.put("最低消费多少金额可用优惠券", yxStoreCoupon.getUseMinPrice());
|
map.put("最低消费多少金额可用优惠券", yxStoreCoupon.getUseMinPrice());
|
||||||
map.put("优惠券有效期限(单位:天)", yxStoreCoupon.getCouponTime());
|
// map.put("优惠券有效期限(单位:天)", yxStoreCoupon.getCouponTime());
|
||||||
|
map.put("优惠券有效期开始时间(单位:天)", yxStoreCoupon.getUseStartTime());
|
||||||
|
map.put("优惠券有效期结束时间(单位:天)", yxStoreCoupon.getUseEndTime());
|
||||||
map.put("排序", yxStoreCoupon.getSort());
|
map.put("排序", yxStoreCoupon.getSort());
|
||||||
map.put("状态(0:关闭,1:开启)", yxStoreCoupon.getStatus());
|
map.put("状态(0:关闭,1:开启)", yxStoreCoupon.getStatus());
|
||||||
list.add(map);
|
list.add(map);
|
||||||
|
|||||||
+51
-15
@@ -8,8 +8,10 @@
|
|||||||
*/
|
*/
|
||||||
package co.yixiang.modules.activity.service.impl;
|
package co.yixiang.modules.activity.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
||||||
import co.yixiang.common.service.impl.BaseServiceImpl;
|
import co.yixiang.common.service.impl.BaseServiceImpl;
|
||||||
import co.yixiang.common.utils.QueryHelpPlus;
|
import co.yixiang.common.utils.QueryHelpPlus;
|
||||||
@@ -26,11 +28,15 @@ import co.yixiang.modules.activity.service.dto.YxStoreCouponUserQueryCriteria;
|
|||||||
import co.yixiang.modules.activity.service.mapper.YxStoreCouponUserMapper;
|
import co.yixiang.modules.activity.service.mapper.YxStoreCouponUserMapper;
|
||||||
import co.yixiang.modules.activity.vo.StoreCouponUserVo;
|
import co.yixiang.modules.activity.vo.StoreCouponUserVo;
|
||||||
import co.yixiang.modules.activity.vo.YxStoreCouponUserQueryVo;
|
import co.yixiang.modules.activity.vo.YxStoreCouponUserQueryVo;
|
||||||
|
import co.yixiang.modules.cart.domain.YxStoreBrandCart;
|
||||||
import co.yixiang.modules.cart.service.YxStoreCartService;
|
import co.yixiang.modules.cart.service.YxStoreCartService;
|
||||||
import co.yixiang.modules.cart.vo.YxStoreCartQueryVo;
|
import co.yixiang.modules.cart.vo.YxStoreCartQueryVo;
|
||||||
|
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||||
|
import co.yixiang.modules.product.service.YxStoreProductService;
|
||||||
import co.yixiang.modules.user.domain.YxUser;
|
import co.yixiang.modules.user.domain.YxUser;
|
||||||
import co.yixiang.modules.user.service.YxUserService;
|
import co.yixiang.modules.user.service.YxUserService;
|
||||||
import co.yixiang.utils.FileUtil;
|
import co.yixiang.utils.FileUtil;
|
||||||
|
import co.yixiang.utils.StringUtils;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -44,6 +50,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.Array;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -69,6 +78,8 @@ public class YxStoreCouponUserServiceImpl extends BaseServiceImpl<YxStoreCouponU
|
|||||||
private YxStoreCouponService storeCouponService;
|
private YxStoreCouponService storeCouponService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private YxStoreCartService yxStoreCartService;
|
private YxStoreCartService yxStoreCartService;
|
||||||
|
@Autowired
|
||||||
|
private YxStoreProductService yxStoreProductService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取当前用户优惠券数量
|
* 获取当前用户优惠券数量
|
||||||
@@ -92,11 +103,15 @@ public class YxStoreCouponUserServiceImpl extends BaseServiceImpl<YxStoreCouponU
|
|||||||
@Override
|
@Override
|
||||||
public List<StoreCouponUserVo> beUsableCouponList(Long uid,String cartIds) {
|
public List<StoreCouponUserVo> beUsableCouponList(Long uid,String cartIds) {
|
||||||
|
|
||||||
Map<String, Object> cartGroup = yxStoreCartService.getUserProductCartList(uid,
|
Map<String, ArrayList> cartGroup = yxStoreCartService.getUserProductCartList(uid,
|
||||||
cartIds, ShopConstants.ZSW_ONE_NUM);
|
cartIds, ShopConstants.ZSW_ONE_NUM);
|
||||||
|
List<YxStoreCartQueryVo> list = new ArrayList<>();
|
||||||
List<YxStoreCartQueryVo> cartInfo = (List<YxStoreCartQueryVo>)cartGroup.get("valid");
|
cartGroup.get("cartList").forEach(item-> {
|
||||||
|
YxStoreBrandCart yxStoreBrandCart = (YxStoreBrandCart) item;
|
||||||
|
list.addAll(yxStoreBrandCart.getValidProductList());
|
||||||
|
});
|
||||||
|
// List<YxStoreCartQueryVo> cartInfo = (List<YxStoreCartQueryVo>)cartGroup.get("valid");
|
||||||
|
List<YxStoreCartQueryVo> cartInfo=list;
|
||||||
BigDecimal sumPrice = BigDecimal.ZERO;
|
BigDecimal sumPrice = BigDecimal.ZERO;
|
||||||
for (YxStoreCartQueryVo storeCart : cartInfo) {
|
for (YxStoreCartQueryVo storeCart : cartInfo) {
|
||||||
sumPrice = NumberUtil.add(sumPrice,NumberUtil.mul(storeCart.getCartNum(),storeCart.getTruePrice()));
|
sumPrice = NumberUtil.add(sumPrice,NumberUtil.mul(storeCart.getCartNum(),storeCart.getTruePrice()));
|
||||||
@@ -156,7 +171,6 @@ public class YxStoreCouponUserServiceImpl extends BaseServiceImpl<YxStoreCouponU
|
|||||||
YxStoreCouponUser couponUser = new YxStoreCouponUser();
|
YxStoreCouponUser couponUser = new YxStoreCouponUser();
|
||||||
couponUser.setId((long)id);
|
couponUser.setId((long)id);
|
||||||
couponUser.setStatus(1);
|
couponUser.setStatus(1);
|
||||||
couponUser.setUseTime(new Date());
|
|
||||||
yxStoreCouponUserMapper.updateById(couponUser);
|
yxStoreCouponUserMapper.updateById(couponUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,6 +191,27 @@ public class YxStoreCouponUserServiceImpl extends BaseServiceImpl<YxStoreCouponU
|
|||||||
long nowTime = System.currentTimeMillis();
|
long nowTime = System.currentTimeMillis();
|
||||||
for (YxStoreCouponUser couponUser : storeCouponUsers) {
|
for (YxStoreCouponUser couponUser : storeCouponUsers) {
|
||||||
YxStoreCouponUserQueryVo queryVo = generator.convert(couponUser,YxStoreCouponUserQueryVo.class);
|
YxStoreCouponUserQueryVo queryVo = generator.convert(couponUser,YxStoreCouponUserQueryVo.class);
|
||||||
|
queryVo.setCname(couponUser.getCouponTitle());
|
||||||
|
String[] idList = new String[0];
|
||||||
|
YxStoreCoupon yxStoreCoupon=storeCouponService.getById(queryVo.getCid());
|
||||||
|
//防止券被删除报错
|
||||||
|
if (ObjectUtil.isNotEmpty(yxStoreCoupon)){
|
||||||
|
idList= storeCouponService.getById(queryVo.getCid()).getProductId().split(",");
|
||||||
|
}
|
||||||
|
List<String> needIdlist;
|
||||||
|
if (idList.length>3){
|
||||||
|
needIdlist= Arrays.asList(Arrays.copyOf(idList, 3));
|
||||||
|
}else {
|
||||||
|
needIdlist= Arrays.asList(idList);
|
||||||
|
}
|
||||||
|
List<String> imageList=new ArrayList<>();
|
||||||
|
needIdlist.forEach(id->{
|
||||||
|
YxStoreProduct yxStoreProduct=yxStoreProductService.getById(id);
|
||||||
|
if (ObjectUtil.isNotEmpty(yxStoreProduct)&& StringUtils.isNotBlank(yxStoreProduct.getImage())){
|
||||||
|
imageList.add(yxStoreProductService.getById(id).getImage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
queryVo.setImage(imageList);
|
||||||
if(couponUser.getIsFail() == 1){
|
if(couponUser.getIsFail() == 1){
|
||||||
queryVo.set_type(CouponEnum.USE_0.getValue());
|
queryVo.set_type(CouponEnum.USE_0.getValue());
|
||||||
queryVo.set_msg("已失效");
|
queryVo.set_msg("已失效");
|
||||||
@@ -186,7 +221,7 @@ public class YxStoreCouponUserServiceImpl extends BaseServiceImpl<YxStoreCouponU
|
|||||||
}else if (couponUser.getStatus() == 2){
|
}else if (couponUser.getStatus() == 2){
|
||||||
queryVo.set_type(CouponEnum.USE_0.getValue());
|
queryVo.set_type(CouponEnum.USE_0.getValue());
|
||||||
queryVo.set_msg("已过期");
|
queryVo.set_msg("已过期");
|
||||||
}else if(couponUser.getCreateTime().getTime() > nowTime || couponUser.getEndTime().getTime() < nowTime){
|
}else if(couponUser.getCreateTime().getTime() > nowTime || couponUser.getUseEndTime().getTime() < nowTime){
|
||||||
queryVo.set_type(CouponEnum.USE_0.getValue());
|
queryVo.set_type(CouponEnum.USE_0.getValue());
|
||||||
queryVo.set_msg("已过期");
|
queryVo.set_msg("已过期");
|
||||||
}else{
|
}else{
|
||||||
@@ -210,18 +245,19 @@ public class YxStoreCouponUserServiceImpl extends BaseServiceImpl<YxStoreCouponU
|
|||||||
if(storeCoupon == null) {
|
if(storeCoupon == null) {
|
||||||
throw new YshopException("优惠劵不存在");
|
throw new YshopException("优惠劵不存在");
|
||||||
}
|
}
|
||||||
|
//现在的日期向后偏移,得到优惠券的使用截止期期
|
||||||
|
// Date now = new Date();
|
||||||
|
// Date endTime = DateUtil.offsetDay(now,storeCoupon.getCouponTime());
|
||||||
|
|
||||||
Date now = new Date();
|
// DateTime endTime =new DateTime(storeCoupon.getUseEndTime());
|
||||||
|
|
||||||
Date endTime = DateUtil.offsetDay(now,storeCoupon.getCouponTime());
|
|
||||||
|
|
||||||
YxStoreCouponUser storeCouponUser = YxStoreCouponUser.builder()
|
YxStoreCouponUser storeCouponUser = YxStoreCouponUser.builder()
|
||||||
.cid(storeCoupon.getId())
|
.cid(storeCoupon.getId())
|
||||||
.uid(uid)
|
.uid(uid)
|
||||||
.couponPrice(storeCoupon.getCouponPrice())
|
.couponPrice(storeCoupon.getCouponPrice())
|
||||||
.couponTitle(storeCoupon.getTitle())
|
.couponTitle(storeCoupon.getTitle())
|
||||||
.useMinPrice(storeCoupon.getUseMinPrice())
|
.useMinPrice(storeCoupon.getUseMinPrice())
|
||||||
.endTime(endTime)
|
.useStartTime(new DateTime(storeCoupon.getUseStartTime()))
|
||||||
|
.useEndTime(new DateTime(storeCoupon.getUseEndTime()))
|
||||||
.type(CouponGetEnum.GET.getValue())
|
.type(CouponGetEnum.GET.getValue())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@@ -260,7 +296,7 @@ public class YxStoreCouponUserServiceImpl extends BaseServiceImpl<YxStoreCouponU
|
|||||||
private void checkInvalidCoupon() {
|
private void checkInvalidCoupon() {
|
||||||
Date nowTime = new Date();
|
Date nowTime = new Date();
|
||||||
LambdaQueryWrapper<YxStoreCouponUser> wrapper= new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<YxStoreCouponUser> wrapper= new LambdaQueryWrapper<>();
|
||||||
wrapper.lt(YxStoreCouponUser::getEndTime,nowTime)
|
wrapper.lt(YxStoreCouponUser::getUseEndTime,nowTime)
|
||||||
.eq(YxStoreCouponUser::getStatus,CouponEnum.STATUS_0.getValue());
|
.eq(YxStoreCouponUser::getStatus,CouponEnum.STATUS_0.getValue());
|
||||||
YxStoreCouponUser couponUser = new YxStoreCouponUser();
|
YxStoreCouponUser couponUser = new YxStoreCouponUser();
|
||||||
couponUser.setStatus(CouponEnum.STATUS_2.getValue());
|
couponUser.setStatus(CouponEnum.STATUS_2.getValue());
|
||||||
@@ -305,8 +341,8 @@ public class YxStoreCouponUserServiceImpl extends BaseServiceImpl<YxStoreCouponU
|
|||||||
map.put("优惠券的面值", yxStoreCouponUser.getCouponPrice());
|
map.put("优惠券的面值", yxStoreCouponUser.getCouponPrice());
|
||||||
map.put("最低消费多少金额可用优惠券", yxStoreCouponUser.getUseMinPrice());
|
map.put("最低消费多少金额可用优惠券", yxStoreCouponUser.getUseMinPrice());
|
||||||
map.put("优惠券创建时间", yxStoreCouponUser.getAddTime());
|
map.put("优惠券创建时间", yxStoreCouponUser.getAddTime());
|
||||||
map.put("优惠券结束时间", yxStoreCouponUser.getEndTime());
|
map.put("优惠券使用结束时间", yxStoreCouponUser.getUseEndTime());
|
||||||
map.put("使用时间", yxStoreCouponUser.getUseTime());
|
map.put("使用开始时间", yxStoreCouponUser.getUseEndTime());
|
||||||
map.put("获取方式", yxStoreCouponUser.getType());
|
map.put("获取方式", yxStoreCouponUser.getType());
|
||||||
map.put("状态(0:未使用,1:已使用, 2:已过期)", yxStoreCouponUser.getStatus());
|
map.put("状态(0:未使用,1:已使用, 2:已过期)", yxStoreCouponUser.getStatus());
|
||||||
map.put("是否有效", yxStoreCouponUser.getIsFail());
|
map.put("是否有效", yxStoreCouponUser.getIsFail());
|
||||||
@@ -334,7 +370,7 @@ public class YxStoreCouponUserServiceImpl extends BaseServiceImpl<YxStoreCouponU
|
|||||||
}else if (couponUser.getStatus() == 2){
|
}else if (couponUser.getStatus() == 2){
|
||||||
queryVo.set_type(CouponEnum.USE_0.getValue());
|
queryVo.set_type(CouponEnum.USE_0.getValue());
|
||||||
queryVo.set_msg("已过期");
|
queryVo.set_msg("已过期");
|
||||||
}else if(couponUser.getCreateTime().getTime() > nowTime || couponUser.getEndTime().getTime() < nowTime){
|
}else if(couponUser.getCreateTime().getTime() > nowTime || couponUser.getUseEndTime().getTime() < nowTime){
|
||||||
queryVo.set_type(CouponEnum.USE_0.getValue());
|
queryVo.set_type(CouponEnum.USE_0.getValue());
|
||||||
queryVo.set_msg("已过期");
|
queryVo.set_msg("已过期");
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
+31
-1
@@ -18,6 +18,9 @@ import co.yixiang.constant.ShopConstants;
|
|||||||
import co.yixiang.dozer.service.IGenerator;
|
import co.yixiang.dozer.service.IGenerator;
|
||||||
import co.yixiang.enums.OrderInfoEnum;
|
import co.yixiang.enums.OrderInfoEnum;
|
||||||
import co.yixiang.enums.PinkEnum;
|
import co.yixiang.enums.PinkEnum;
|
||||||
|
import co.yixiang.event.TemplateBean;
|
||||||
|
import co.yixiang.event.TemplateEvent;
|
||||||
|
import co.yixiang.event.TemplateListenEnum;
|
||||||
import co.yixiang.modules.activity.domain.YxStoreCombination;
|
import co.yixiang.modules.activity.domain.YxStoreCombination;
|
||||||
import co.yixiang.modules.activity.domain.YxStorePink;
|
import co.yixiang.modules.activity.domain.YxStorePink;
|
||||||
import co.yixiang.modules.activity.service.YxStoreCombinationService;
|
import co.yixiang.modules.activity.service.YxStoreCombinationService;
|
||||||
@@ -47,6 +50,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.ApplicationEventPublisher;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -55,6 +59,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
@@ -72,6 +77,8 @@ import java.util.stream.Collectors;
|
|||||||
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
||||||
public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, YxStorePink> implements YxStorePinkService {
|
public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, YxStorePink> implements YxStorePinkService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApplicationEventPublisher publisher;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IGenerator generator;
|
private IGenerator generator;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -95,7 +102,6 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, Y
|
|||||||
@Autowired
|
@Autowired
|
||||||
private YxStoreVisitService yxStoreVisitService;
|
private YxStoreVisitService yxStoreVisitService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取消拼团
|
* 取消拼团
|
||||||
* @param uid 用户id
|
* @param uid 用户id
|
||||||
@@ -316,6 +322,7 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, Y
|
|||||||
storePink.setStopTime(stopTime);
|
storePink.setStopTime(stopTime);
|
||||||
storePink.setUniqueId(storeCart.getProductAttrUnique());
|
storePink.setUniqueId(storeCart.getProductAttrUnique());
|
||||||
if(order.getPinkId() > 0){ //其他成员入团
|
if(order.getPinkId() > 0){ //其他成员入团
|
||||||
|
//如果该用户已经在团内
|
||||||
if(this.getIsPinkUid(order.getPinkId(),order.getUid())) {
|
if(this.getIsPinkUid(order.getPinkId(),order.getUid())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -330,6 +337,19 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, Y
|
|||||||
//int count = (int)map.get("count");
|
//int count = (int)map.get("count");
|
||||||
if(pinkUserDto.getCount() == 0){//处理成功
|
if(pinkUserDto.getCount() == 0){//处理成功
|
||||||
this.pinkComplete(pinkUserDto.getUidAll(),pinkUserDto.getIdAll(),order.getUid(), pinkT);
|
this.pinkComplete(pinkUserDto.getUidAll(),pinkUserDto.getIdAll(),order.getUid(), pinkT);
|
||||||
|
//给团内每个人发送订阅消息
|
||||||
|
for(Long uid:pinkUserDto.getUidAll()){
|
||||||
|
TemplateBean templateBean = TemplateBean.builder()
|
||||||
|
.productId(pinkT.getPid())//拼团商品名
|
||||||
|
.uid(uid) //给团内每个人发消息
|
||||||
|
.result(true)
|
||||||
|
.payPrice(pinkT.getPrice())
|
||||||
|
.refundPrice(BigDecimal.valueOf(0))
|
||||||
|
.templateType(TemplateListenEnum.TYPE_13.getValue())
|
||||||
|
.time(DateUtil.formatTime(pinkT.getCreateTime()))
|
||||||
|
.build();
|
||||||
|
publisher.publishEvent(new TemplateEvent(this, templateBean));
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
this.pinkFail(pinkUserDto.getPinkAll(),pinkT,PinkEnum.PINK_BOOL_0.getValue());
|
this.pinkFail(pinkUserDto.getPinkAll(),pinkT,PinkEnum.PINK_BOOL_0.getValue());
|
||||||
}
|
}
|
||||||
@@ -579,6 +599,16 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, Y
|
|||||||
for (YxStorePink storePink : pinkAll) {
|
for (YxStorePink storePink : pinkAll) {
|
||||||
storeOrderService.orderApplyRefund("","","拼团时间超时",storePink.getOrderId(),storePink.getUid());
|
storeOrderService.orderApplyRefund("","","拼团时间超时",storePink.getOrderId(),storePink.getUid());
|
||||||
this.orderPinkFailAfter(pinkT.getUid(),storePink.getId());
|
this.orderPinkFailAfter(pinkT.getUid(),storePink.getId());
|
||||||
|
TemplateBean templateBean = TemplateBean.builder()
|
||||||
|
.productId(pinkT.getPid())//拼团商品名
|
||||||
|
.uid(pinkT.getUid()) //给团内每个人发消息
|
||||||
|
.result(false)
|
||||||
|
.payPrice(pinkT.getPrice())
|
||||||
|
.refundPrice(pinkT.getPrice())
|
||||||
|
.templateType(TemplateListenEnum.TYPE_13.getValue())
|
||||||
|
.time(DateUtil.formatTime(pinkT.getCreateTime()))
|
||||||
|
.build();
|
||||||
|
publisher.publishEvent(new TemplateEvent(this, templateBean));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-1
@@ -27,12 +27,14 @@ import co.yixiang.modules.activity.service.dto.YxStoreSeckillQueryCriteria;
|
|||||||
import co.yixiang.modules.activity.service.mapper.YxStoreSeckillMapper;
|
import co.yixiang.modules.activity.service.mapper.YxStoreSeckillMapper;
|
||||||
import co.yixiang.modules.activity.vo.StoreSeckillVo;
|
import co.yixiang.modules.activity.vo.StoreSeckillVo;
|
||||||
import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo;
|
import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo;
|
||||||
|
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||||
import co.yixiang.modules.product.domain.YxStoreProductAttrValue;
|
import co.yixiang.modules.product.domain.YxStoreProductAttrValue;
|
||||||
import co.yixiang.modules.product.service.YxStoreProductAttrService;
|
import co.yixiang.modules.product.service.YxStoreProductAttrService;
|
||||||
import co.yixiang.modules.product.service.YxStoreProductReplyService;
|
import co.yixiang.modules.product.service.YxStoreProductReplyService;
|
||||||
import co.yixiang.modules.product.service.dto.FromatDetailDto;
|
import co.yixiang.modules.product.service.dto.FromatDetailDto;
|
||||||
import co.yixiang.modules.product.service.dto.ProductFormatDto;
|
import co.yixiang.modules.product.service.dto.ProductFormatDto;
|
||||||
import co.yixiang.modules.product.service.dto.ProductResultDto;
|
import co.yixiang.modules.product.service.dto.ProductResultDto;
|
||||||
|
import co.yixiang.modules.product.service.mapper.StoreProductMapper;
|
||||||
import co.yixiang.modules.product.vo.YxStoreProductAttrQueryVo;
|
import co.yixiang.modules.product.vo.YxStoreProductAttrQueryVo;
|
||||||
import co.yixiang.modules.shop.service.YxSystemConfigService;
|
import co.yixiang.modules.shop.service.YxSystemConfigService;
|
||||||
import co.yixiang.modules.template.domain.YxShippingTemplates;
|
import co.yixiang.modules.template.domain.YxShippingTemplates;
|
||||||
@@ -83,6 +85,8 @@ public class YxStoreSeckillServiceImpl extends BaseServiceImpl<YxStoreSeckillMap
|
|||||||
@Autowired
|
@Autowired
|
||||||
private YxSystemConfigService systemConfigService;
|
private YxSystemConfigService systemConfigService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StoreProductMapper storeProductMapper;
|
||||||
/**
|
/**
|
||||||
* 产品详情
|
* 产品详情
|
||||||
* @param id 砍价商品id
|
* @param id 砍价商品id
|
||||||
@@ -122,7 +126,7 @@ public class YxStoreSeckillServiceImpl extends BaseServiceImpl<YxStoreSeckillMap
|
|||||||
return StoreSeckillVo.builder()
|
return StoreSeckillVo.builder()
|
||||||
.productAttr((List<YxStoreProductAttrQueryVo>)returnMap.get("productAttr"))
|
.productAttr((List<YxStoreProductAttrQueryVo>)returnMap.get("productAttr"))
|
||||||
.productValue((Map<String, YxStoreProductAttrValue>)returnMap.get("productValue"))
|
.productValue((Map<String, YxStoreProductAttrValue>)returnMap.get("productValue"))
|
||||||
.storeInfo(generator.convert(storeSeckill, YxStoreSeckillQueryVo.class))
|
.storeInfo(generator.convert(storeSeckill, YxStoreSeckillQueryVo.class).setConfig(storeProductMapper.selectById(storeSeckill.getProductId()).getConfig()))
|
||||||
.reply(replyService.getReply(storeSeckill.getProductId()))
|
.reply(replyService.getReply(storeSeckill.getProductId()))
|
||||||
.replyCount(replyService.productReplyCount(storeSeckill.getProductId()))
|
.replyCount(replyService.productReplyCount(storeSeckill.getProductId()))
|
||||||
.tempName(tempName)
|
.tempName(tempName)
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ public interface YxStoreCouponIssueMapper extends CoreMapper<YxStoreCouponIssue>
|
|||||||
@Select("<script>select A.cid,A.end_time as endTime,A.start_time as startTime,A.cname,A.ctype," +
|
@Select("<script>select A.cid,A.end_time as endTime,A.start_time as startTime,A.cname,A.ctype," +
|
||||||
"A.is_permanent as isPermanent,A.remain_count as remainCount," +
|
"A.is_permanent as isPermanent,A.remain_count as remainCount," +
|
||||||
"A.total_count as totalCount,A.id,B.coupon_price as couponPrice," +
|
"A.total_count as totalCount,A.id,B.coupon_price as couponPrice," +
|
||||||
"B.use_min_price as useMinPrice" +
|
"B.use_min_price as useMinPrice,B.product_id as productId" +
|
||||||
" from yx_store_coupon_issue A left join yx_store_coupon B " +
|
" from yx_store_coupon_issue A left join yx_store_coupon B " +
|
||||||
"on A.cid = B.id " +
|
"on A.cid = B.id " +
|
||||||
"where A.status =1 <if test='type == 1'> AND B.type = #{type} AND FIND_IN_SET(#{productId},product_id)</if> " +
|
"where A.status =1 <if test='type == 1'> AND B.type = #{type} AND FIND_IN_SET(#{productId},product_id)</if> " +
|
||||||
|
|||||||
+10
-3
@@ -11,6 +11,7 @@ package co.yixiang.modules.activity.service.mapper;
|
|||||||
import co.yixiang.common.mapper.CoreMapper;
|
import co.yixiang.common.mapper.CoreMapper;
|
||||||
import co.yixiang.modules.activity.domain.YxStoreCouponUser;
|
import co.yixiang.modules.activity.domain.YxStoreCouponUser;
|
||||||
import co.yixiang.modules.activity.vo.StoreCouponUserVo;
|
import co.yixiang.modules.activity.vo.StoreCouponUserVo;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
@@ -24,15 +25,21 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public interface YxStoreCouponUserMapper extends CoreMapper<YxStoreCouponUser> {
|
public interface YxStoreCouponUserMapper extends CoreMapper<YxStoreCouponUser> {
|
||||||
@Select("select A.id,A.coupon_title as couponTitle,A.coupon_price as couponPrice," +
|
@Select("select A.id,A.coupon_title as cname,A.coupon_price as couponPrice," +
|
||||||
"A.end_time as endTime,B.use_min_price as useMinPrice,B.type," +
|
"A.use_end_time as endTime,B.use_min_price as useMinPrice,B.type," +
|
||||||
"B.product_id as productId" +
|
"B.product_id as productId" +
|
||||||
" from yx_store_coupon_user A left join yx_store_coupon B " +
|
" from yx_store_coupon_user A left join yx_store_coupon B " +
|
||||||
"on A.cid = B.id " +
|
"on A.cid = B.id " +
|
||||||
"where A.status = 0" +
|
"where A.status = 0" +
|
||||||
" AND A.end_time > #{now} " +
|
" AND A.use_end_time > #{now} " +
|
||||||
" AND A.uid = #{uid} AND A.use_min_price <= #{price} " +
|
" AND A.uid = #{uid} AND A.use_min_price <= #{price} " +
|
||||||
" ORDER BY B.id DESC")
|
" ORDER BY B.id DESC")
|
||||||
List<StoreCouponUserVo> selectCouponList(@Param("now") Date now, @Param("price") double price,
|
List<StoreCouponUserVo> selectCouponList(@Param("now") Date now, @Param("price") double price,
|
||||||
@Param("uid") Long uid);
|
@Param("uid") Long uid);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Select("select *from yx_store_coupon_user where status = 0 AND is_fail=0 AND use_end_time <= #{endTime}")
|
||||||
|
List<YxStoreCouponUser> selectUserCouponList(@Param("endTime") Date endTime);
|
||||||
|
//"状态(0:未使用,1:已使用, 2:已过期)"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,4 +18,5 @@ public class BargainVo implements Serializable {
|
|||||||
private YxStoreBargainQueryVo bargain;
|
private YxStoreBargainQueryVo bargain;
|
||||||
private YxUserQueryVo userInfo;
|
private YxUserQueryVo userInfo;
|
||||||
private Long bargainSumCount;//砍价支付成功订单数量
|
private Long bargainSumCount;//砍价支付成功订单数量
|
||||||
|
private String tempName;//运费模板
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import lombok.Setter;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 优惠券发放记录对象StoreCouponUserVO
|
* 优惠券发放记录对象StoreCouponUserVO
|
||||||
@@ -26,7 +27,7 @@ public class StoreCouponUserVo implements Serializable
|
|||||||
|
|
||||||
/** 优惠券名称 */
|
/** 优惠券名称 */
|
||||||
@ApiModelProperty(value = "优惠券名称")
|
@ApiModelProperty(value = "优惠券名称")
|
||||||
private String couponTitle;
|
private String cname;
|
||||||
|
|
||||||
/** 优惠券的面值 */
|
/** 优惠券的面值 */
|
||||||
@ApiModelProperty(value = "优惠券的面值")
|
@ApiModelProperty(value = "优惠券的面值")
|
||||||
@@ -49,6 +50,7 @@ public class StoreCouponUserVo implements Serializable
|
|||||||
@ApiModelProperty(value = "优惠产品ID")
|
@ApiModelProperty(value = "优惠产品ID")
|
||||||
private String productId;
|
private String productId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "商品轮播图")
|
||||||
|
private List<String> image;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package co.yixiang.modules.activity.vo;
|
package co.yixiang.modules.activity.vo;
|
||||||
|
|
||||||
|
import co.yixiang.modules.evaluation.domain.EditableTabs;
|
||||||
import co.yixiang.serializer.BigDecimalSerializer;
|
import co.yixiang.serializer.BigDecimalSerializer;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
@@ -8,6 +9,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -34,6 +36,8 @@ public class YxStoreBargainQueryVo implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty(value = "砍价活动图片")
|
@ApiModelProperty(value = "砍价活动图片")
|
||||||
private String image;
|
private String image;
|
||||||
|
//七天无理由等配置
|
||||||
|
private ArrayList<EditableTabs> config;
|
||||||
|
|
||||||
@ApiModelProperty(value = "单位名称")
|
@ApiModelProperty(value = "单位名称")
|
||||||
private String unitName;
|
private String unitName;
|
||||||
@@ -113,5 +117,6 @@ public class YxStoreBargainQueryVo implements Serializable {
|
|||||||
@ApiModelProperty(value = "砍价产品参与人数")
|
@ApiModelProperty(value = "砍价产品参与人数")
|
||||||
private Long people;
|
private Long people;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "该用户是否已发起砍价")
|
||||||
|
private Boolean isParticipation;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package co.yixiang.modules.activity.vo;
|
package co.yixiang.modules.activity.vo;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import co.yixiang.modules.evaluation.domain.EditableTabs;
|
||||||
import co.yixiang.serializer.BigDecimalSerializer;
|
import co.yixiang.serializer.BigDecimalSerializer;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
@@ -43,6 +44,8 @@ public class YxStoreCombinationQueryVo implements Serializable {
|
|||||||
|
|
||||||
private List<String> sliderImageArr;
|
private List<String> sliderImageArr;
|
||||||
|
|
||||||
|
//七天无理由等配置
|
||||||
|
private ArrayList<EditableTabs> config;
|
||||||
public List<String> getSliderImageArr() {
|
public List<String> getSliderImageArr() {
|
||||||
if(StrUtil.isNotEmpty(images)){
|
if(StrUtil.isNotEmpty(images)){
|
||||||
return Arrays.asList(images.split(","));
|
return Arrays.asList(images.split(","));
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -32,6 +33,12 @@ public class YxStoreCouponIssueQueryVo implements Serializable {
|
|||||||
@ApiModelProperty(value = "优惠券类别")
|
@ApiModelProperty(value = "优惠券类别")
|
||||||
private Integer ctype;
|
private Integer ctype;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "可用商品id")
|
||||||
|
private String productId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "商品轮播图")
|
||||||
|
private List<String> image;
|
||||||
|
|
||||||
@ApiModelProperty(value = "优惠券领取开启时间")
|
@ApiModelProperty(value = "优惠券领取开启时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
|
@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
|
||||||
private Date startTime;
|
private Date startTime;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import lombok.Data;
|
|||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -28,11 +29,14 @@ public class YxStoreCouponUserQueryVo implements Serializable {
|
|||||||
@ApiModelProperty(value = "兑换的项目id")
|
@ApiModelProperty(value = "兑换的项目id")
|
||||||
private Integer cid;
|
private Integer cid;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "优惠券图片")
|
||||||
|
private List<String> image;
|
||||||
|
|
||||||
@ApiModelProperty(value = "优惠券所属用户")
|
@ApiModelProperty(value = "优惠券所属用户")
|
||||||
private Long uid;
|
private Long uid;
|
||||||
|
|
||||||
@ApiModelProperty(value = "优惠券名称")
|
@ApiModelProperty(value = "优惠券名称")
|
||||||
private String couponTitle;
|
private String cname;
|
||||||
|
|
||||||
@ApiModelProperty(value = "优惠券的面值")
|
@ApiModelProperty(value = "优惠券的面值")
|
||||||
private BigDecimal couponPrice;
|
private BigDecimal couponPrice;
|
||||||
@@ -44,12 +48,20 @@ public class YxStoreCouponUserQueryVo implements Serializable {
|
|||||||
@ApiModelProperty(value = "优惠券创建时间")
|
@ApiModelProperty(value = "优惠券创建时间")
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "优惠券结束时间")
|
@ApiModelProperty(value = "优惠券有效期开始时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
|
@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
|
||||||
private Date endTime;
|
private Date useStartTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "使用时间")
|
// @ApiModelProperty(value = "优惠券结束时间")
|
||||||
private Date useTime;
|
// @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
|
||||||
|
// private Date endTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "优惠券有效期结束时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
|
||||||
|
private Date useEndTime;
|
||||||
|
|
||||||
|
// @ApiModelProperty(value = "使用时间")
|
||||||
|
// private Date useTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "获取方式")
|
@ApiModelProperty(value = "获取方式")
|
||||||
private String type;
|
private String type;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package co.yixiang.modules.activity.vo;
|
package co.yixiang.modules.activity.vo;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import co.yixiang.modules.evaluation.domain.EditableTabs;
|
||||||
import co.yixiang.serializer.BigDecimalSerializer;
|
import co.yixiang.serializer.BigDecimalSerializer;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
@@ -37,6 +38,8 @@ public class YxStoreSeckillQueryVo implements Serializable{
|
|||||||
@ApiModelProperty(value = "推荐图")
|
@ApiModelProperty(value = "推荐图")
|
||||||
private String image;
|
private String image;
|
||||||
|
|
||||||
|
//七天无理由价保等
|
||||||
|
private ArrayList<EditableTabs> config;
|
||||||
@ApiModelProperty(value = "轮播图")
|
@ApiModelProperty(value = "轮播图")
|
||||||
private String images;
|
private String images;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package co.yixiang.modules.cart.domain;
|
||||||
|
|
||||||
|
import co.yixiang.modules.cart.vo.YxStoreCartQueryVo;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class YxStoreBrandCart{
|
||||||
|
//购物车品牌的信息
|
||||||
|
private Map<String, Object> brand;
|
||||||
|
//购物车品牌下的有效的商品列表
|
||||||
|
private List<YxStoreCartQueryVo> validProductList;
|
||||||
|
// //购物车品牌下的无效的商品列表
|
||||||
|
// private List<YxStoreCartQueryVo> invalidProductList;
|
||||||
|
}
|
||||||
@@ -17,6 +17,7 @@ import org.springframework.data.domain.Pageable;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -48,7 +49,7 @@ public interface YxStoreCartService extends BaseService<YxStoreCart>{
|
|||||||
* @param status 0-购购物车列表
|
* @param status 0-购购物车列表
|
||||||
* @return map valid-有效购物车 invalid-失效购物车
|
* @return map valid-有效购物车 invalid-失效购物车
|
||||||
*/
|
*/
|
||||||
Map<String,Object> getUserProductCartList(Long uid,String cartIds,Integer status);
|
Map<String, ArrayList> getUserProductCartList(Long uid, String cartIds, Integer status);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 返回当前用户购物车总数量
|
* 返回当前用户购物车总数量
|
||||||
|
|||||||
+45
-13
@@ -23,6 +23,7 @@ import co.yixiang.modules.activity.service.YxStoreBargainService;
|
|||||||
import co.yixiang.modules.activity.service.mapper.YxStoreBargainMapper;
|
import co.yixiang.modules.activity.service.mapper.YxStoreBargainMapper;
|
||||||
import co.yixiang.modules.activity.service.mapper.YxStoreCombinationMapper;
|
import co.yixiang.modules.activity.service.mapper.YxStoreCombinationMapper;
|
||||||
import co.yixiang.modules.activity.service.mapper.YxStoreSeckillMapper;
|
import co.yixiang.modules.activity.service.mapper.YxStoreSeckillMapper;
|
||||||
|
import co.yixiang.modules.cart.domain.YxStoreBrandCart;
|
||||||
import co.yixiang.modules.cart.domain.YxStoreCart;
|
import co.yixiang.modules.cart.domain.YxStoreCart;
|
||||||
import co.yixiang.modules.cart.service.YxStoreCartService;
|
import co.yixiang.modules.cart.service.YxStoreCartService;
|
||||||
import co.yixiang.modules.cart.service.dto.YxStoreCartDto;
|
import co.yixiang.modules.cart.service.dto.YxStoreCartDto;
|
||||||
@@ -34,10 +35,14 @@ import co.yixiang.modules.product.domain.YxStoreProduct;
|
|||||||
import co.yixiang.modules.product.domain.YxStoreProductAttrValue;
|
import co.yixiang.modules.product.domain.YxStoreProductAttrValue;
|
||||||
import co.yixiang.modules.product.service.YxStoreProductAttrService;
|
import co.yixiang.modules.product.service.YxStoreProductAttrService;
|
||||||
import co.yixiang.modules.product.service.YxStoreProductService;
|
import co.yixiang.modules.product.service.YxStoreProductService;
|
||||||
|
import co.yixiang.modules.product.service.mapper.StoreProductMapper;
|
||||||
import co.yixiang.modules.product.vo.YxStoreProductQueryVo;
|
import co.yixiang.modules.product.vo.YxStoreProductQueryVo;
|
||||||
|
import co.yixiang.modules.store.domain.YxStoreBrand;
|
||||||
|
import co.yixiang.modules.store.service.mapper.YxStoreBrandMapper;
|
||||||
import co.yixiang.modules.user.service.YxUserService;
|
import co.yixiang.modules.user.service.YxUserService;
|
||||||
import co.yixiang.utils.FileUtil;
|
import co.yixiang.utils.FileUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -48,12 +53,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
@@ -65,6 +65,11 @@ import java.util.stream.Collectors;
|
|||||||
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
||||||
public class YxStoreCartServiceImpl extends BaseServiceImpl<StoreCartMapper, YxStoreCart> implements YxStoreCartService {
|
public class YxStoreCartServiceImpl extends BaseServiceImpl<StoreCartMapper, YxStoreCart> implements YxStoreCartService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StoreProductMapper storeProductMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private YxStoreBrandMapper yxStoreBrandMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IGenerator generator;
|
private IGenerator generator;
|
||||||
|
|
||||||
@@ -146,11 +151,11 @@ public class YxStoreCartServiceImpl extends BaseServiceImpl<StoreCartMapper, YxS
|
|||||||
*
|
*
|
||||||
* @param uid 用户id
|
* @param uid 用户id
|
||||||
* @param cartIds 购物车id,多个逗号隔开
|
* @param cartIds 购物车id,多个逗号隔开
|
||||||
* @param status 0-购购物车列表
|
* @param status 0-购物车列表
|
||||||
* @return map valid-有效购物车 invalid-失效购物车
|
* @return map valid-有效购物车 invalid-失效购物车
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> getUserProductCartList(Long uid, String cartIds, Integer status) {
|
public Map<String, ArrayList> getUserProductCartList(Long uid, String cartIds, Integer status) {
|
||||||
LambdaQueryWrapper<YxStoreCart> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<YxStoreCart> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(YxStoreCart::getUid, uid)
|
wrapper.eq(YxStoreCart::getUid, uid)
|
||||||
.eq(YxStoreCart::getIsPay, OrderInfoEnum.PAY_STATUS_0.getValue())
|
.eq(YxStoreCart::getIsPay, OrderInfoEnum.PAY_STATUS_0.getValue())
|
||||||
@@ -164,7 +169,7 @@ public class YxStoreCartServiceImpl extends BaseServiceImpl<StoreCartMapper, YxS
|
|||||||
List<YxStoreCart> carts = yxStoreCartMapper.selectList(wrapper);
|
List<YxStoreCart> carts = yxStoreCartMapper.selectList(wrapper);
|
||||||
|
|
||||||
List<YxStoreCartQueryVo> valid = new ArrayList<>();
|
List<YxStoreCartQueryVo> valid = new ArrayList<>();
|
||||||
List<YxStoreCartQueryVo> invalid = new ArrayList<>();
|
ArrayList<YxStoreCartQueryVo> invalid = new ArrayList<>();
|
||||||
|
|
||||||
for (YxStoreCart storeCart : carts) {
|
for (YxStoreCart storeCart : carts) {
|
||||||
YxStoreProductQueryVo storeProduct = null;
|
YxStoreProductQueryVo storeProduct = null;
|
||||||
@@ -197,7 +202,6 @@ public class YxStoreCartServiceImpl extends BaseServiceImpl<StoreCartMapper, YxS
|
|||||||
} else {
|
} else {
|
||||||
storeProduct.setAttrInfo(productAttrValue);
|
storeProduct.setAttrInfo(productAttrValue);
|
||||||
storeCartQueryVo.setProductInfo(storeProduct);
|
storeCartQueryVo.setProductInfo(storeProduct);
|
||||||
|
|
||||||
//设置真实价格
|
//设置真实价格
|
||||||
//设置VIP价格
|
//设置VIP价格
|
||||||
double vipPrice = userService.setLevelPrice(
|
double vipPrice = userService.setLevelPrice(
|
||||||
@@ -249,9 +253,37 @@ public class YxStoreCartServiceImpl extends BaseServiceImpl<StoreCartMapper, YxS
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
Map<String, ArrayList> map = new LinkedHashMap<>();
|
||||||
map.put("valid", valid);
|
//最终返回的有效商品的数组
|
||||||
map.put("invalid", invalid);
|
ArrayList cartList=new ArrayList<>();
|
||||||
|
//获取不重复的品牌id数组
|
||||||
|
LinkedHashSet<String> BrandIdList = new LinkedHashSet<>();
|
||||||
|
valid.forEach(item->{
|
||||||
|
YxStoreProduct storeProduct = storeProductMapper.selectById(item.getProductId());
|
||||||
|
BrandIdList.add(storeProduct.getBrandId());
|
||||||
|
});
|
||||||
|
BrandIdList.forEach(item->{
|
||||||
|
YxStoreBrand yxStoreBrand=yxStoreBrandMapper.selectById(item);
|
||||||
|
Map<String, Object> list = new LinkedHashMap<>();
|
||||||
|
YxStoreBrandCart yxStoreBrandCart=new YxStoreBrandCart();
|
||||||
|
list.put("brandName",yxStoreBrand.getBrandName());
|
||||||
|
list.put("pic",yxStoreBrand.getPic());
|
||||||
|
yxStoreBrandCart.setBrand(list);
|
||||||
|
//对valid按品牌进行区分
|
||||||
|
List<YxStoreCartQueryVo> validProductList = new ArrayList<>();
|
||||||
|
valid.forEach(item1->{
|
||||||
|
YxStoreProduct yxStoreProduct= storeProductMapper.selectById(item1.getProductId());;
|
||||||
|
// //商品品牌id相等
|
||||||
|
if (item.equals(yxStoreProduct.getBrandId())){
|
||||||
|
validProductList.add(item1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
yxStoreBrandCart.setValidProductList(validProductList);
|
||||||
|
cartList.add(yxStoreBrandCart);
|
||||||
|
});
|
||||||
|
//将所有品牌的失效商品筛选出来
|
||||||
|
map.put("cartList",cartList);
|
||||||
|
map.put("invalidProductList",invalid);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ package co.yixiang.modules.category.rest;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
||||||
import co.yixiang.constant.ShopConstants;
|
import co.yixiang.constant.ShopConstants;
|
||||||
|
import co.yixiang.exception.BadRequestException;
|
||||||
import co.yixiang.logging.aop.log.Log;
|
import co.yixiang.logging.aop.log.Log;
|
||||||
import co.yixiang.modules.aop.ForbidSubmit;
|
import co.yixiang.modules.aop.ForbidSubmit;
|
||||||
import co.yixiang.modules.category.domain.YxStoreCategory;
|
import co.yixiang.modules.category.domain.YxStoreCategory;
|
||||||
|
|||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.entry.domain;
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import lombok.Data;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.bean.copier.CopyOptions;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author sj
|
||||||
|
* @date 2022-09-27
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("yx_store_entry")
|
||||||
|
public class YxStoreEntry implements Serializable {
|
||||||
|
|
||||||
|
/** 词条id */
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
|
||||||
|
/** 租户id */
|
||||||
|
@NotNull
|
||||||
|
private Long tenantId;
|
||||||
|
|
||||||
|
|
||||||
|
/** 词条名称 */
|
||||||
|
@NotBlank
|
||||||
|
private String entryName;
|
||||||
|
|
||||||
|
|
||||||
|
/** 词条讲解 */
|
||||||
|
@NotBlank
|
||||||
|
private String entryInfo;
|
||||||
|
|
||||||
|
|
||||||
|
/** 添加时间 */
|
||||||
|
@TableField(fill= FieldFill.INSERT)
|
||||||
|
private Timestamp createTime;
|
||||||
|
|
||||||
|
|
||||||
|
/** 更新时间 */
|
||||||
|
@TableField(fill= FieldFill.INSERT_UPDATE)
|
||||||
|
private Timestamp updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
/** 是否删除 */
|
||||||
|
private Integer isDel;
|
||||||
|
|
||||||
|
|
||||||
|
public void copy(YxStoreEntry source){
|
||||||
|
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.entry.rest;
|
||||||
|
|
||||||
|
import co.yixiang.domain.PageResult;
|
||||||
|
import co.yixiang.dozer.service.IGenerator;
|
||||||
|
import co.yixiang.logging.aop.log.Log;
|
||||||
|
import co.yixiang.modules.entry.service.YxStoreEntryService;
|
||||||
|
import co.yixiang.modules.entry.service.dto.YxStoreEntryDto;
|
||||||
|
import co.yixiang.modules.entry.service.dto.YxStoreEntryQueryCriteria;
|
||||||
|
import co.yixiang.modules.entry.domain.YxStoreEntry;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
/**
|
||||||
|
* @author ssj
|
||||||
|
* @date 2022-09-27
|
||||||
|
*/
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Api(tags = " 商品词条管理")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/yxStoreEntry")
|
||||||
|
public class YxStoreEntryController {
|
||||||
|
|
||||||
|
private final YxStoreEntryService yxStoreEntryService;
|
||||||
|
private final IGenerator generator;
|
||||||
|
|
||||||
|
|
||||||
|
@Log("导出数据")
|
||||||
|
@ApiOperation("导出数据")
|
||||||
|
@GetMapping(value = "/download")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions('admin','yxStoreExpert:list')")
|
||||||
|
public void download(HttpServletResponse response, YxStoreEntryQueryCriteria criteria) throws IOException {
|
||||||
|
yxStoreEntryService.download(generator.convert(yxStoreEntryService.queryAll(criteria), YxStoreEntryDto.class), response);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
@Log("查询 商品词条")
|
||||||
|
@ApiOperation("查询 商品词条")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions('admin','yxStoreExpert:list')")
|
||||||
|
public ResponseEntity<PageResult<YxStoreEntryDto>> getYxStoreEntrys(YxStoreEntryQueryCriteria criteria, Pageable pageable){
|
||||||
|
return new ResponseEntity<>(yxStoreEntryService.queryAll(criteria,pageable),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
@Log("新增 商品词条")
|
||||||
|
@ApiOperation("新增 商品词条")
|
||||||
|
// @PreAuthorize("ss.hasAnyPermissions('admin','yxStoreExpert:add')")
|
||||||
|
public ResponseEntity<Object> create(@Validated @RequestBody YxStoreEntry resources){
|
||||||
|
return new ResponseEntity<>(yxStoreEntryService.save(resources),HttpStatus.CREATED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping
|
||||||
|
@Log("修改 商品词条")
|
||||||
|
@ApiOperation("修改 商品词条")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions('admin','yxStoreExpert:edit')")
|
||||||
|
public ResponseEntity<Object> update(@Validated @RequestBody YxStoreEntry resources){
|
||||||
|
yxStoreEntryService.updateById(resources);
|
||||||
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Log("删除 商品词条")
|
||||||
|
@ApiOperation("删除 商品词条")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions ('admin','yxStoreExpert:del')")
|
||||||
|
@DeleteMapping
|
||||||
|
public ResponseEntity<Object> deleteAll(@RequestBody Long[] ids) {
|
||||||
|
Arrays.asList(ids).forEach(id->{
|
||||||
|
yxStoreEntryService.removeById(id);
|
||||||
|
});
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.entry.service;
|
||||||
|
|
||||||
|
import co.yixiang.common.service.BaseService;
|
||||||
|
import co.yixiang.domain.PageResult;
|
||||||
|
import co.yixiang.modules.entry.domain.YxStoreEntry;
|
||||||
|
import co.yixiang.modules.entry.service.dto.YxStoreEntryDto;
|
||||||
|
import co.yixiang.modules.entry.service.dto.YxStoreEntryQueryCriteria;
|
||||||
|
import co.yixiang.modules.product.vo.ProductVo;
|
||||||
|
import co.yixiang.utils.EntryDTO;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
/**
|
||||||
|
* @author sj
|
||||||
|
* @date 2022-09-27
|
||||||
|
*/
|
||||||
|
public interface YxStoreEntryService extends BaseService<YxStoreEntry> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询数据分页
|
||||||
|
* @param criteria 条件
|
||||||
|
* @param pageable 分页参数
|
||||||
|
* @return Map<String,Object>
|
||||||
|
*/
|
||||||
|
PageResult<YxStoreEntryDto> queryAll(YxStoreEntryQueryCriteria criteria, Pageable pageable);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询所有数据不分页
|
||||||
|
* @param criteria 条件参数
|
||||||
|
* @return List<YxStoreEntryDto>
|
||||||
|
*/
|
||||||
|
List<YxStoreEntry> queryAll(YxStoreEntryQueryCriteria criteria);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出数据
|
||||||
|
* @param all 待导出的数据
|
||||||
|
* @param response /
|
||||||
|
* @throws IOException /
|
||||||
|
*/
|
||||||
|
void download(List<YxStoreEntryDto> all, HttpServletResponse response) throws IOException;
|
||||||
|
|
||||||
|
EntryDTO getEntry(int id);
|
||||||
|
|
||||||
|
EntryDTO getEntryByName(String name);
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.entry.service.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author sj
|
||||||
|
* @date 2022-09-27
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class YxStoreEntryDto implements Serializable {
|
||||||
|
|
||||||
|
/** 词条id */
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 租户id */
|
||||||
|
private Long tenantId;
|
||||||
|
|
||||||
|
/** 词条名称 */
|
||||||
|
private String entryName;
|
||||||
|
|
||||||
|
/** 词条讲解 */
|
||||||
|
private String entryInfo;
|
||||||
|
|
||||||
|
/** 添加时间 */
|
||||||
|
private Timestamp createTime;
|
||||||
|
|
||||||
|
/** 更新时间 */
|
||||||
|
private Timestamp updateTime;
|
||||||
|
|
||||||
|
/** 是否删除 */
|
||||||
|
private Integer isDel;
|
||||||
|
}
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.entry.service.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author sj
|
||||||
|
* @date 2022-09-27
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class YxStoreEntryQueryCriteria{
|
||||||
|
}
|
||||||
+122
@@ -0,0 +1,122 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.entry.service.impl;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
||||||
|
import co.yixiang.common.service.impl.BaseServiceImpl;
|
||||||
|
import co.yixiang.common.utils.QueryHelpPlus;
|
||||||
|
import co.yixiang.domain.PageResult;
|
||||||
|
import co.yixiang.dozer.service.IGenerator;
|
||||||
|
import co.yixiang.enums.CommonEnum;
|
||||||
|
import co.yixiang.modules.entry.domain.YxStoreEntry;
|
||||||
|
import co.yixiang.modules.entry.service.YxStoreEntryService;
|
||||||
|
import co.yixiang.modules.entry.service.dto.YxStoreEntryDto;
|
||||||
|
import co.yixiang.modules.entry.service.dto.YxStoreEntryQueryCriteria;
|
||||||
|
import co.yixiang.modules.entry.service.mapper.YxStoreEntryMapper;
|
||||||
|
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||||
|
import co.yixiang.modules.product.service.YxStoreProductService;
|
||||||
|
import co.yixiang.utils.EntryDTO;
|
||||||
|
import co.yixiang.utils.FileUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
/**
|
||||||
|
* @author sj
|
||||||
|
* @date 2022-09-27
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
//@CacheConfig(cacheNames = "yxStoreEntry")
|
||||||
|
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
||||||
|
public class YxStoreEntryServiceImpl extends BaseServiceImpl<YxStoreEntryMapper, YxStoreEntry> implements YxStoreEntryService {
|
||||||
|
|
||||||
|
private final IGenerator generator;
|
||||||
|
private final YxStoreEntryMapper yxStoreEntryMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
//@Cacheable
|
||||||
|
public PageResult<YxStoreEntryDto> queryAll(YxStoreEntryQueryCriteria criteria, Pageable pageable) {
|
||||||
|
getPage(pageable);
|
||||||
|
PageInfo<YxStoreEntry> page = new PageInfo<>(queryAll(criteria));
|
||||||
|
return generator.convertPageInfo(page,YxStoreEntryDto.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
//@Cacheable
|
||||||
|
public List<YxStoreEntry> queryAll(YxStoreEntryQueryCriteria criteria){
|
||||||
|
return baseMapper.selectList(QueryHelpPlus.getPredicate(YxStoreEntry.class, criteria));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void download(List<YxStoreEntryDto> all, HttpServletResponse response) throws IOException {
|
||||||
|
List<Map<String, Object>> list = new ArrayList<>();
|
||||||
|
for (YxStoreEntryDto yxStoreEntry : all) {
|
||||||
|
Map<String,Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("租户id", yxStoreEntry.getTenantId());
|
||||||
|
map.put("词条名称", yxStoreEntry.getEntryName());
|
||||||
|
map.put("词条讲解", yxStoreEntry.getEntryInfo());
|
||||||
|
map.put("添加时间", yxStoreEntry.getCreateTime());
|
||||||
|
map.put("更新时间", yxStoreEntry.getUpdateTime());
|
||||||
|
map.put("是否删除", yxStoreEntry.getIsDel());
|
||||||
|
list.add(map);
|
||||||
|
}
|
||||||
|
FileUtil.downloadExcel(list, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "id", value = "词条ID", paramType = "query", dataType = "int",dataTypeClass = Integer.class)
|
||||||
|
})
|
||||||
|
public EntryDTO getEntry(int id) {
|
||||||
|
LambdaQueryWrapper<YxStoreEntry> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(YxStoreEntry::getIsDel, CommonEnum.DEL_STATUS_0.getValue()).eq(YxStoreEntry::getId, id);
|
||||||
|
YxStoreEntry yxStoreEntry=yxStoreEntryMapper.selectOne(wrapper);
|
||||||
|
EntryDTO entryDTO=new EntryDTO();
|
||||||
|
//取出需要的属性
|
||||||
|
entryDTO.setEntryName(yxStoreEntry.getEntryName());
|
||||||
|
entryDTO.setEntryInfo(yxStoreEntry.getEntryInfo());
|
||||||
|
return entryDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "name", value = "名字", paramType = "query", dataType = "string",dataTypeClass = String.class)
|
||||||
|
})
|
||||||
|
public EntryDTO getEntryByName(String name) {
|
||||||
|
LambdaQueryWrapper<YxStoreEntry> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(YxStoreEntry::getIsDel, CommonEnum.DEL_STATUS_0.getValue()).eq(YxStoreEntry::getEntryName,name);
|
||||||
|
YxStoreEntry yxStoreEntry=yxStoreEntryMapper.selectOne(wrapper);
|
||||||
|
if (yxStoreEntry==null){
|
||||||
|
throw new YshopException("没有这个词条");
|
||||||
|
}
|
||||||
|
EntryDTO entryDTO=new EntryDTO();
|
||||||
|
//取出需要的属性
|
||||||
|
entryDTO.setEntryName(yxStoreEntry.getEntryName());
|
||||||
|
entryDTO.setEntryInfo(yxStoreEntry.getEntryInfo());
|
||||||
|
return entryDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.entry.service.mapper;
|
||||||
|
|
||||||
|
import co.yixiang.common.mapper.CoreMapper;
|
||||||
|
import co.yixiang.modules.entry.domain.YxStoreEntry;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author sj
|
||||||
|
* @date 2022-09-27
|
||||||
|
*/
|
||||||
|
@Repository
|
||||||
|
public interface YxStoreEntryMapper extends CoreMapper<YxStoreEntry> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package co.yixiang.modules.evaluation.domain;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class EditableTabs implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
// {title: '初始栏',
|
||||||
|
// name: '0',
|
||||||
|
// content: '产品展示栏',
|
||||||
|
// configuration:'富文本框'
|
||||||
|
//}
|
||||||
|
private String title;
|
||||||
|
private String name;
|
||||||
|
private String content;
|
||||||
|
private String configuration;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.evaluation.domain;
|
||||||
|
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||||
|
import lombok.Data;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.bean.copier.CopyOptions;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author ssj
|
||||||
|
* @date 2022-09-21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value ="yx_evaluation", autoResultMap = true)
|
||||||
|
public class YxEvaluation implements Serializable {
|
||||||
|
|
||||||
|
/** 评测ID */
|
||||||
|
@TableId
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
|
||||||
|
/** 在列表里面的首页图 */
|
||||||
|
private String homeImage;
|
||||||
|
|
||||||
|
|
||||||
|
/** 评测介绍 */
|
||||||
|
private String synopsis;
|
||||||
|
|
||||||
|
|
||||||
|
/** 评测视频 */
|
||||||
|
private String videoInput;
|
||||||
|
|
||||||
|
|
||||||
|
/** 关联商品信息 */
|
||||||
|
@NotNull
|
||||||
|
private String product;
|
||||||
|
|
||||||
|
/** 图文配置*/
|
||||||
|
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||||
|
private ArrayList<EditableTabs> editableTabs;
|
||||||
|
|
||||||
|
/** 评测总结 */
|
||||||
|
private String summary;
|
||||||
|
|
||||||
|
|
||||||
|
/** 产品展示图集 */
|
||||||
|
private String displayImage;
|
||||||
|
|
||||||
|
|
||||||
|
/** 产品展示文字 */
|
||||||
|
private String displaySynopsis;
|
||||||
|
|
||||||
|
|
||||||
|
/** 实用体验感受图 */
|
||||||
|
private String feelImage;
|
||||||
|
|
||||||
|
|
||||||
|
/** 使用体验感受文字 */
|
||||||
|
private String feelSynopsis;
|
||||||
|
|
||||||
|
|
||||||
|
/** 易用性体验图 */
|
||||||
|
private String accessibilityImage;
|
||||||
|
|
||||||
|
|
||||||
|
/** 易用性体验文字 */
|
||||||
|
private String accessibilitySynopsis;
|
||||||
|
|
||||||
|
|
||||||
|
/** 添加时间 */
|
||||||
|
@TableField(fill= FieldFill.INSERT)
|
||||||
|
private Timestamp createTime;
|
||||||
|
|
||||||
|
|
||||||
|
/** 更新时间 */
|
||||||
|
@TableField(fill= FieldFill.INSERT_UPDATE)
|
||||||
|
private Timestamp updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
/** 是否删除 */
|
||||||
|
private Integer isDel;
|
||||||
|
|
||||||
|
|
||||||
|
/** 是否展示 */
|
||||||
|
private Integer isShow;
|
||||||
|
|
||||||
|
|
||||||
|
/** 排序 */
|
||||||
|
@NotNull
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
|
||||||
|
private Long tenantId;
|
||||||
|
|
||||||
|
|
||||||
|
public void copy(YxEvaluation source){
|
||||||
|
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||||
|
}
|
||||||
|
}
|
||||||
+40
@@ -0,0 +1,40 @@
|
|||||||
|
package co.yixiang.modules.evaluation.domain;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDomain;
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 评测点赞和收藏表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author sj
|
||||||
|
* @since 2022-10-19
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class YxStoreEvaluationRelation extends BaseDomain {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用户ID")
|
||||||
|
private Long uid;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "评测ID")
|
||||||
|
private Long evaluationId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "类型(收藏(collect)、点赞(like)、足迹(foot))")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.evaluation.rest;
|
||||||
|
|
||||||
|
import co.yixiang.domain.PageResult;
|
||||||
|
import co.yixiang.dozer.service.IGenerator;
|
||||||
|
import co.yixiang.logging.aop.log.Log;
|
||||||
|
import co.yixiang.modules.evaluation.domain.YxEvaluation;
|
||||||
|
import co.yixiang.modules.evaluation.service.YxEvaluationService;
|
||||||
|
import co.yixiang.modules.evaluation.service.dto.YxEvaluationDto;
|
||||||
|
import co.yixiang.modules.evaluation.service.dto.YxEvaluationQueryCriteria;
|
||||||
|
import co.yixiang.modules.expert.service.dto.YxStoreExpertDto;
|
||||||
|
import co.yixiang.modules.expert.service.dto.YxStoreExpertQueryCriteria;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
/**
|
||||||
|
* @author ssj
|
||||||
|
* @date 2022-09-21
|
||||||
|
*/
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Api(tags = " Evaluation管理")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/yxEvaluation")
|
||||||
|
public class YxEvaluationController {
|
||||||
|
|
||||||
|
private final YxEvaluationService yxEvaluationService;
|
||||||
|
private final IGenerator generator;
|
||||||
|
|
||||||
|
|
||||||
|
@Log("导出数据")
|
||||||
|
@ApiOperation("导出数据")
|
||||||
|
@GetMapping(value = "/download")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions('admin','yxEvaluation:list')")
|
||||||
|
public void download(HttpServletResponse response, YxEvaluationQueryCriteria criteria) throws IOException {
|
||||||
|
yxEvaluationService.download(generator.convert(yxEvaluationService.queryAll(criteria), YxEvaluationDto.class), response);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
@Log("查询 评测")
|
||||||
|
@ApiOperation("查询 评测")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions('admin','yxEvaluation:list')")
|
||||||
|
public ResponseEntity<PageResult<YxEvaluationDto>> getYxEvaluations(YxEvaluationQueryCriteria criteria, Pageable pageable){
|
||||||
|
return new ResponseEntity<>(yxEvaluationService.queryAll(criteria,pageable),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
@Log("新增 评测")
|
||||||
|
@ApiOperation("新增 评测")
|
||||||
|
// @PreAuthorize("ss.hasAnyPermissions('admin','yxEvaluation:add')")
|
||||||
|
public ResponseEntity<Object> create(@Validated @RequestBody YxEvaluation resources){
|
||||||
|
return new ResponseEntity<>(yxEvaluationService.save(resources),HttpStatus.CREATED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping
|
||||||
|
@Log("修改 评测")
|
||||||
|
@ApiOperation("修改 评测")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions('admin','yxEvaluation:edit')")
|
||||||
|
public ResponseEntity<Object> update(@Validated @RequestBody YxEvaluation resources){
|
||||||
|
yxEvaluationService.updateById(resources);
|
||||||
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Log("删除 专家")
|
||||||
|
@ApiOperation("删除 专家")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions ('admin','yxEvaluation:del')")
|
||||||
|
@DeleteMapping
|
||||||
|
public ResponseEntity<Object> deleteAll(@RequestBody Long[] ids) {
|
||||||
|
Arrays.asList(ids).forEach(id->{
|
||||||
|
yxEvaluationService.removeById(id);
|
||||||
|
});
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+69
@@ -0,0 +1,69 @@
|
|||||||
|
package co.yixiang.modules.evaluation.service;
|
||||||
|
|
||||||
|
|
||||||
|
import co.yixiang.common.service.BaseService;
|
||||||
|
import co.yixiang.domain.PageResult;
|
||||||
|
import co.yixiang.modules.evaluation.domain.YxStoreEvaluationRelation;
|
||||||
|
import co.yixiang.modules.evaluation.service.dto.YxStoreEvaluationRelationDto;
|
||||||
|
import co.yixiang.modules.evaluation.vo.YxStoreEvaluationRelationQueryVo;
|
||||||
|
import co.yixiang.modules.product.service.dto.YxStoreProductRelationQueryCriteria;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 评测收藏表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hupeng
|
||||||
|
* @since 2019-10-23
|
||||||
|
*/
|
||||||
|
public interface YxEvaluationRelationService extends BaseService<YxStoreEvaluationRelation> {
|
||||||
|
/**
|
||||||
|
* 是否收藏
|
||||||
|
* @param evaluationId 评测ID
|
||||||
|
* @param uid 用户ID
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
Boolean isEvaluationRelation(long evaluationId, long uid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*添加收藏
|
||||||
|
* @param evaluationId 评测id
|
||||||
|
* @param uid 用户id
|
||||||
|
*/
|
||||||
|
void addEvaluationRelation(long evaluationId,long uid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消收藏
|
||||||
|
* @param evaluationId 评测id
|
||||||
|
* @param uid 用户id
|
||||||
|
*/
|
||||||
|
void delEvaluationRelation(long evaluationId,long uid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户收藏列表
|
||||||
|
* @param page page
|
||||||
|
* @param limit limit
|
||||||
|
* @param uid 用户id
|
||||||
|
* @return list
|
||||||
|
*/
|
||||||
|
List<YxStoreEvaluationRelationQueryVo> userCollectEvaluation(int page, int limit, Long uid, String type);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询数据分页
|
||||||
|
* @param criteria 条件
|
||||||
|
* @param pageable 分页参数
|
||||||
|
* @return Map<String,Object>
|
||||||
|
*/
|
||||||
|
PageResult<YxStoreEvaluationRelationDto> queryAll(YxStoreProductRelationQueryCriteria criteria, Pageable pageable);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询所有数据不分页
|
||||||
|
* @param criteria 条件参数
|
||||||
|
* @return List<YxStoreProductRelationDto>
|
||||||
|
*/
|
||||||
|
List<YxStoreEvaluationRelation> queryAll(YxStoreProductRelationQueryCriteria criteria);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.evaluation.service;
|
||||||
|
|
||||||
|
import co.yixiang.common.service.BaseService;
|
||||||
|
import co.yixiang.domain.PageResult;
|
||||||
|
import co.yixiang.modules.evaluation.domain.YxEvaluation;
|
||||||
|
import co.yixiang.modules.evaluation.service.dto.YxEvaluationDto;
|
||||||
|
import co.yixiang.modules.evaluation.service.dto.YxEvaluationQueryCriteria;
|
||||||
|
import co.yixiang.modules.evaluation.vo.YxEvaluationQueryVo;
|
||||||
|
import co.yixiang.utils.EvaluationDTO;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
/**
|
||||||
|
* @author ssj
|
||||||
|
* @date 2022-09-21
|
||||||
|
*/
|
||||||
|
public interface YxEvaluationService extends BaseService<YxEvaluation> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询数据分页
|
||||||
|
* @param criteria 条件
|
||||||
|
* @param pageable 分页参数
|
||||||
|
* @return Map<String,Object>
|
||||||
|
*/
|
||||||
|
PageResult<YxEvaluationDto> queryAll(YxEvaluationQueryCriteria criteria, Pageable pageable);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询所有数据不分页
|
||||||
|
* @param criteria 条件参数
|
||||||
|
* @return List<YxEvaluationDto>
|
||||||
|
*/
|
||||||
|
List<YxEvaluation> queryAll(YxEvaluationQueryCriteria criteria);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出数据
|
||||||
|
* @param all 待导出的数据
|
||||||
|
* @param response /
|
||||||
|
* @throws IOException /
|
||||||
|
*/
|
||||||
|
void download(List<YxEvaluationDto> all, HttpServletResponse response) throws IOException;
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 后台首页获取评测列表
|
||||||
|
*/
|
||||||
|
List<EvaluationDTO> getList();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序首页获取评测列表
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<YxEvaluationQueryVo> getList(int page, int limit);
|
||||||
|
|
||||||
|
EvaluationDTO getEvaluationById(Long uid,int id);
|
||||||
|
}
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.evaluation.service.dto;
|
||||||
|
|
||||||
|
import co.yixiang.modules.evaluation.domain.EditableTabs;
|
||||||
|
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||||
|
import lombok.Data;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author hupeng
|
||||||
|
* @date 2022-09-21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class YxEvaluationDto implements Serializable {
|
||||||
|
|
||||||
|
/** 评测ID */
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
/** 在列表里面的首页图 */
|
||||||
|
private String homeImage;
|
||||||
|
|
||||||
|
/** 评测介绍 */
|
||||||
|
private String synopsis;
|
||||||
|
|
||||||
|
/** 评测视频 */
|
||||||
|
private String videoInput;
|
||||||
|
|
||||||
|
/** 关联商品信息*/
|
||||||
|
private String product;
|
||||||
|
|
||||||
|
/** 图文配置*/
|
||||||
|
private ArrayList<EditableTabs> editableTabs;
|
||||||
|
|
||||||
|
/** 评测总结 */
|
||||||
|
private String summary;
|
||||||
|
|
||||||
|
/** 产品展示图集 */
|
||||||
|
private String displayImage;
|
||||||
|
|
||||||
|
/** 产品展示文字 */
|
||||||
|
private String displaySynopsis;
|
||||||
|
|
||||||
|
/** 实用体验感受图 */
|
||||||
|
private String feelImage;
|
||||||
|
|
||||||
|
/** 使用体验感受文字 */
|
||||||
|
private String feelSynopsis;
|
||||||
|
|
||||||
|
/** 易用性体验图 */
|
||||||
|
private String accessibilityImage;
|
||||||
|
|
||||||
|
/** 易用性体验文字 */
|
||||||
|
private String accessibilitySynopsis;
|
||||||
|
|
||||||
|
/** 添加时间 */
|
||||||
|
private Timestamp createTime;
|
||||||
|
|
||||||
|
/** 更新时间 */
|
||||||
|
private Timestamp updateTime;
|
||||||
|
|
||||||
|
/** 是否删除 */
|
||||||
|
private Integer isDel;
|
||||||
|
|
||||||
|
/** 是否展示 */
|
||||||
|
private Integer isShow;
|
||||||
|
|
||||||
|
/** 排序 */
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
private Long tenantId;
|
||||||
|
}
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.evaluation.service.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author hupeng
|
||||||
|
* @date 2022-09-21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class YxEvaluationQueryCriteria{
|
||||||
|
}
|
||||||
+41
@@ -0,0 +1,41 @@
|
|||||||
|
package co.yixiang.modules.evaluation.service.dto;
|
||||||
|
|
||||||
|
import co.yixiang.modules.evaluation.domain.YxEvaluation;
|
||||||
|
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class YxStoreEvaluationRelationDto implements Serializable {
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 用户ID */
|
||||||
|
private Long uid;
|
||||||
|
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
/** 评测ID */
|
||||||
|
private Long evaluationId;
|
||||||
|
|
||||||
|
private YxEvaluation evaluation;
|
||||||
|
|
||||||
|
private YxStoreProduct product;
|
||||||
|
|
||||||
|
/** 类型(收藏(collect)、点赞(like)) */
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
|
||||||
|
/** 添加时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Timestamp createTime;
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Timestamp updateTime;
|
||||||
|
|
||||||
|
private Integer isDel;
|
||||||
|
}
|
||||||
+136
@@ -0,0 +1,136 @@
|
|||||||
|
package co.yixiang.modules.evaluation.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.exception.YshopException;
|
||||||
|
import co.yixiang.common.service.impl.BaseServiceImpl;
|
||||||
|
import co.yixiang.common.utils.QueryHelpPlus;
|
||||||
|
import co.yixiang.domain.PageResult;
|
||||||
|
import co.yixiang.dozer.service.IGenerator;
|
||||||
|
import co.yixiang.modules.evaluation.domain.YxStoreEvaluationRelation;
|
||||||
|
import co.yixiang.modules.evaluation.service.YxEvaluationRelationService;
|
||||||
|
import co.yixiang.modules.evaluation.service.YxEvaluationService;
|
||||||
|
import co.yixiang.modules.evaluation.service.dto.YxStoreEvaluationRelationDto;
|
||||||
|
import co.yixiang.modules.evaluation.service.mapper.YxEvaluationRelationMapper;
|
||||||
|
import co.yixiang.modules.evaluation.vo.YxStoreEvaluationRelationQueryVo;
|
||||||
|
import co.yixiang.modules.product.service.dto.YxStoreProductRelationQueryCriteria;
|
||||||
|
import co.yixiang.modules.user.service.YxUserService;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 评测点赞和收藏表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author sj
|
||||||
|
* @since 2022-10-19
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public class YxEvaluationRelationServiceImpl extends BaseServiceImpl<YxEvaluationRelationMapper, YxStoreEvaluationRelation> implements YxEvaluationRelationService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private YxEvaluationRelationMapper yxEvaluationRelationMapper;
|
||||||
|
@Autowired
|
||||||
|
private YxEvaluationService yxEvaluationService;
|
||||||
|
@Autowired
|
||||||
|
private YxUserService userService;
|
||||||
|
@Autowired
|
||||||
|
private IGenerator generator;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否收藏
|
||||||
|
* @param evaluationId 评测ID
|
||||||
|
* @param uid 用户ID
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean isEvaluationRelation(long evaluationId, long uid) {
|
||||||
|
Long count = yxEvaluationRelationMapper
|
||||||
|
.selectCount(Wrappers.<YxStoreEvaluationRelation>lambdaQuery()
|
||||||
|
.eq(YxStoreEvaluationRelation::getUid,uid)
|
||||||
|
.eq(YxStoreEvaluationRelation::getIsDel,0)
|
||||||
|
.eq(YxStoreEvaluationRelation::getEvaluationId,evaluationId));
|
||||||
|
if(count > 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加收藏
|
||||||
|
* @param evaluationId 评测id
|
||||||
|
* @param uid 用户id
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void addEvaluationRelation(long evaluationId, long uid) {
|
||||||
|
if(isEvaluationRelation(evaluationId,uid)){
|
||||||
|
throw new YshopException("已收藏");
|
||||||
|
}
|
||||||
|
YxStoreEvaluationRelation storeEvaluationRelation=YxStoreEvaluationRelation.builder()
|
||||||
|
.evaluationId(evaluationId)
|
||||||
|
.uid(uid)
|
||||||
|
.build();
|
||||||
|
yxEvaluationRelationMapper.insert(storeEvaluationRelation);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消收藏
|
||||||
|
* @param evaluationId 评测id
|
||||||
|
* @param uid 用户id
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void delEvaluationRelation(long evaluationId, long uid) {
|
||||||
|
YxStoreEvaluationRelation evaluationRelation =this.lambdaQuery()
|
||||||
|
.eq(YxStoreEvaluationRelation::getEvaluationId,evaluationId)
|
||||||
|
.eq(YxStoreEvaluationRelation::getUid,uid)
|
||||||
|
.one();
|
||||||
|
if (evaluationRelation == null){
|
||||||
|
throw new YshopException("已取消");
|
||||||
|
}
|
||||||
|
this.removeById(evaluationRelation.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户收藏列表
|
||||||
|
* @param page page
|
||||||
|
* @param limit limit
|
||||||
|
* @param uid 用户id
|
||||||
|
* @return list
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<YxStoreEvaluationRelationQueryVo> userCollectEvaluation(int page, int limit, Long uid, String type) {
|
||||||
|
Page<YxStoreEvaluationRelation> pageModel = new Page<>(page, limit);
|
||||||
|
List<YxStoreEvaluationRelationQueryVo> list = yxEvaluationRelationMapper.selectRelationList(pageModel,uid);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<YxStoreEvaluationRelationDto> queryAll(YxStoreProductRelationQueryCriteria criteria, Pageable pageable) {
|
||||||
|
getPage(pageable);
|
||||||
|
PageInfo<YxStoreEvaluationRelation> page = new PageInfo<>(queryAll(criteria));
|
||||||
|
PageResult<YxStoreEvaluationRelationDto> relationDtoPageResult = generator.convertPageInfo(page, YxStoreEvaluationRelationDto.class);
|
||||||
|
relationDtoPageResult.getContent().forEach(i ->{
|
||||||
|
i.setEvaluation(yxEvaluationService.getById(i.getEvaluationId()));
|
||||||
|
i.setUserName(userService.getYxUserById(i.getUid()).getNickname());
|
||||||
|
});
|
||||||
|
return relationDtoPageResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<YxStoreEvaluationRelation> queryAll(YxStoreProductRelationQueryCriteria criteria) {
|
||||||
|
return baseMapper.selectList(QueryHelpPlus.getPredicate(YxStoreEvaluationRelation.class, criteria));
|
||||||
|
}
|
||||||
|
}
|
||||||
+187
@@ -0,0 +1,187 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.evaluation.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import co.yixiang.common.service.impl.BaseServiceImpl;
|
||||||
|
import co.yixiang.common.utils.QueryHelpPlus;
|
||||||
|
import co.yixiang.domain.PageResult;
|
||||||
|
import co.yixiang.dozer.service.IGenerator;
|
||||||
|
import co.yixiang.enums.CommonEnum;
|
||||||
|
import co.yixiang.enums.ShopCommonEnum;
|
||||||
|
import co.yixiang.exception.ErrorRequestException;
|
||||||
|
import co.yixiang.modules.entry.domain.YxStoreEntry;
|
||||||
|
import co.yixiang.modules.evaluation.domain.YxEvaluation;
|
||||||
|
import co.yixiang.modules.evaluation.service.YxEvaluationRelationService;
|
||||||
|
import co.yixiang.modules.evaluation.service.YxEvaluationService;
|
||||||
|
import co.yixiang.modules.evaluation.service.dto.YxEvaluationDto;
|
||||||
|
import co.yixiang.modules.evaluation.service.dto.YxEvaluationQueryCriteria;
|
||||||
|
import co.yixiang.modules.evaluation.service.mapper.YxEvaluationMapper;
|
||||||
|
import co.yixiang.modules.evaluation.vo.YxEvaluationQueryVo;
|
||||||
|
import co.yixiang.modules.product.domain.YxStoreProduct;
|
||||||
|
import co.yixiang.modules.product.service.YxStoreProductService;
|
||||||
|
import co.yixiang.modules.product.service.mapper.StoreProductMapper;
|
||||||
|
import co.yixiang.modules.product.vo.ProductVo;
|
||||||
|
import co.yixiang.modules.product.vo.YxStoreProductQueryVo;
|
||||||
|
import co.yixiang.utils.EntryDTO;
|
||||||
|
import co.yixiang.utils.FileUtil;
|
||||||
|
import co.yixiang.utils.EvaluationDTO;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author sj
|
||||||
|
* @date 2022-10-21
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
||||||
|
//@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
||||||
|
public class YxEvaluationServiceImpl extends BaseServiceImpl<YxEvaluationMapper, YxEvaluation> implements YxEvaluationService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IGenerator generator;
|
||||||
|
@Autowired
|
||||||
|
private YxEvaluationMapper yxEvaluationMapper;
|
||||||
|
@Autowired
|
||||||
|
private StoreProductMapper storeProductMapper;
|
||||||
|
@Autowired
|
||||||
|
private YxStoreProductService yxStoreProductService;
|
||||||
|
@Autowired
|
||||||
|
private YxEvaluationRelationService yxEvaluationRelationService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
//@Cacheable
|
||||||
|
public PageResult<YxEvaluationDto> queryAll(YxEvaluationQueryCriteria criteria, Pageable pageable) {
|
||||||
|
getPage(pageable);
|
||||||
|
PageInfo<YxEvaluation> page = new PageInfo<>(queryAll(criteria));
|
||||||
|
//根据page里面的list的商品id查询对应的商品信息,并将商品id替换为商品信息
|
||||||
|
page.getList().forEach(yxEvaluation->{
|
||||||
|
LambdaQueryWrapper<YxStoreProduct> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(YxStoreProduct::getIsShow, ShopCommonEnum.SHOW_1.getValue())
|
||||||
|
.eq(YxStoreProduct::getId, yxEvaluation.getProduct());
|
||||||
|
YxStoreProduct storeProduct = storeProductMapper.selectOne(wrapper);
|
||||||
|
if (ObjectUtil.isNull(storeProduct)) {
|
||||||
|
// throw new ErrorRequestException("商品不存在或已下架");
|
||||||
|
yxEvaluation.setProduct(JSONUtil.toJsonStr(new YxStoreProduct()));
|
||||||
|
}else {
|
||||||
|
yxEvaluation.setProduct(JSONUtil.toJsonStr(storeProduct));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return generator.convertPageInfo(page,YxEvaluationDto.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
//@Cacheable
|
||||||
|
public List<YxEvaluation> queryAll(YxEvaluationQueryCriteria criteria){
|
||||||
|
return baseMapper.selectList(QueryHelpPlus.getPredicate(YxEvaluation.class, criteria));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void download(List<YxEvaluationDto> all, HttpServletResponse response) throws IOException {
|
||||||
|
List<Map<String, Object>> list = new ArrayList<>();
|
||||||
|
for (YxEvaluationDto yxEvaluation : all) {
|
||||||
|
Map<String,Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("在列表里面的首页图", yxEvaluation.getHomeImage());
|
||||||
|
map.put("评测介绍", yxEvaluation.getSynopsis());
|
||||||
|
map.put("评测视频", yxEvaluation.getVideoInput());
|
||||||
|
map.put("关联商品信息", yxEvaluation.getProduct());
|
||||||
|
map.put("评测总结", yxEvaluation.getSummary());
|
||||||
|
map.put("产品展示图集", yxEvaluation.getDisplayImage());
|
||||||
|
map.put("产品展示文字", yxEvaluation.getDisplaySynopsis());
|
||||||
|
map.put("实用体验感受图", yxEvaluation.getFeelImage());
|
||||||
|
map.put("使用体验感受文字", yxEvaluation.getFeelSynopsis());
|
||||||
|
map.put("易用性体验图", yxEvaluation.getAccessibilityImage());
|
||||||
|
map.put("易用性体验文字", yxEvaluation.getAccessibilitySynopsis());
|
||||||
|
map.put("添加时间", yxEvaluation.getCreateTime());
|
||||||
|
map.put("更新时间", yxEvaluation.getUpdateTime());
|
||||||
|
map.put("是否删除", yxEvaluation.getIsDel());
|
||||||
|
map.put("是否展示", yxEvaluation.getIsShow());
|
||||||
|
map.put("排序", yxEvaluation.getSort());
|
||||||
|
map.put(" tenantId", yxEvaluation.getTenantId());
|
||||||
|
list.add(map);
|
||||||
|
}
|
||||||
|
FileUtil.downloadExcel(list, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app获取评测列表
|
||||||
|
* @return List
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<EvaluationDTO> getList() {
|
||||||
|
LambdaQueryWrapper<YxEvaluation> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(YxEvaluation::getIsShow, ShopCommonEnum.SHOW_1.getValue())
|
||||||
|
.orderByAsc(YxEvaluation::getSort);
|
||||||
|
List<EvaluationDTO> list = generator.convert(baseMapper.selectList(wrapper),EvaluationDTO.class);
|
||||||
|
list.forEach(evaluationDTO->{
|
||||||
|
LambdaQueryWrapper<YxStoreProduct> wrapper1 = new LambdaQueryWrapper<>();
|
||||||
|
wrapper1.eq(YxStoreProduct::getIsShow, ShopCommonEnum.SHOW_1.getValue())
|
||||||
|
.eq(YxStoreProduct::getId, evaluationDTO.getProduct());
|
||||||
|
YxStoreProduct yxStoreProduct = storeProductMapper.selectOne(wrapper1);
|
||||||
|
//这里需要有一个非空判断
|
||||||
|
if (ObjectUtil.isNotNull(yxStoreProduct)){
|
||||||
|
evaluationDTO.setProductInfo(yxStoreProduct);
|
||||||
|
}else{
|
||||||
|
evaluationDTO.setProductInfo(new YxStoreProduct().setStoreName("该评测商品已删除或已下架"));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*评测列表
|
||||||
|
* @return List
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<YxEvaluationQueryVo> getList(int page,int limit){
|
||||||
|
LambdaQueryWrapper<YxEvaluation> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(YxEvaluation::getIsShow, ShopCommonEnum.SHOW_1.getValue())
|
||||||
|
.orderByAsc(YxEvaluation::getSort);
|
||||||
|
Page<YxEvaluation> pageModel = new Page<>(page, limit);
|
||||||
|
IPage<YxEvaluation> pageList = yxEvaluationMapper.selectPage(pageModel, wrapper);
|
||||||
|
return generator.convert(pageList.getRecords(), YxEvaluationQueryVo.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app查询评测
|
||||||
|
* @param id 商品id
|
||||||
|
* @param uid 用户id
|
||||||
|
* @return List
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "id", value = "词条ID", paramType = "query", dataType = "int",dataTypeClass = Integer.class)
|
||||||
|
})
|
||||||
|
public EvaluationDTO getEvaluationById(Long uid,int id) {
|
||||||
|
EvaluationDTO evaluationDTO=generator.convert(this.baseMapper.selectById(id), EvaluationDTO.class);
|
||||||
|
YxStoreProduct yxStoreProduct = yxStoreProductService.getProductInfo(Long.valueOf(evaluationDTO.getProduct()));
|
||||||
|
evaluationDTO.setProductInfo(yxStoreProduct);
|
||||||
|
//是否收藏
|
||||||
|
boolean isCollect = yxEvaluationRelationService.isEvaluationRelation(id, uid);
|
||||||
|
evaluationDTO.setIsCollect(isCollect);
|
||||||
|
return evaluationDTO;
|
||||||
|
}
|
||||||
|
}
|
||||||
+22
@@ -0,0 +1,22 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.evaluation.service.mapper;
|
||||||
|
|
||||||
|
import co.yixiang.common.mapper.CoreMapper;
|
||||||
|
import co.yixiang.modules.evaluation.domain.YxEvaluation;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author hupeng
|
||||||
|
* @date 2022-09-21
|
||||||
|
*/
|
||||||
|
@Repository
|
||||||
|
public interface YxEvaluationMapper extends CoreMapper<YxEvaluation> {
|
||||||
|
|
||||||
|
}
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
package co.yixiang.modules.evaluation.service.mapper;
|
||||||
|
|
||||||
|
|
||||||
|
import co.yixiang.common.mapper.CoreMapper;
|
||||||
|
import co.yixiang.modules.evaluation.domain.YxStoreEvaluationRelation;
|
||||||
|
import co.yixiang.modules.evaluation.vo.YxStoreEvaluationRelationQueryVo;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 评测点赞和收藏表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author sj
|
||||||
|
* @since 2022-10-19
|
||||||
|
*/
|
||||||
|
@Repository
|
||||||
|
public interface YxEvaluationRelationMapper extends CoreMapper<YxStoreEvaluationRelation> {
|
||||||
|
|
||||||
|
|
||||||
|
@Select("select B.id evaluation_id,B.home_image as homeImage,A.id id," +
|
||||||
|
"B.is_show as isShow"+
|
||||||
|
" from yx_store_evaluation_relation A left join yx_evaluation B " +
|
||||||
|
"on A.evaluation_id = B.id where A.uid=#{uid} and A.is_del = 0 and B.is_del = 0 order by A.create_time desc")
|
||||||
|
List<YxStoreEvaluationRelationQueryVo> selectRelationList(Page page, @Param("uid") Long uid);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package co.yixiang.modules.evaluation.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 评测表 查询
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author sj
|
||||||
|
* @date 2022-10-7
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ApiModel(value ="YxEvaluationQueryVo对象",description = "首页评测查询")
|
||||||
|
public class YxEvaluationQueryVo implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "评测id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "首页图")
|
||||||
|
private String homeImage;
|
||||||
|
|
||||||
|
}
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
package co.yixiang.modules.evaluation.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
@Data
|
||||||
|
@ApiModel(value = "YxStoreEvaluationRelationQueryVo对象", description = "评测收藏表查询参数")
|
||||||
|
public class YxStoreEvaluationRelationQueryVo {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用户ID")
|
||||||
|
private Long uid;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "评测ID")
|
||||||
|
private Long evaluationId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "类型(收藏(collect")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "添加时间")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "首页图片")
|
||||||
|
private String homeImage;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否显示")
|
||||||
|
private Integer isShow;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.expert.domain;
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.bean.copier.CopyOptions;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author sj
|
||||||
|
* @date 2022-09-17
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("yx_store_expert")
|
||||||
|
public class YxStoreExpert implements Serializable {
|
||||||
|
|
||||||
|
/** 专家id */
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 状态(0:显示,1:不显示) */
|
||||||
|
@ApiModelProperty(value = "状态(0:显示,1:隐藏)")
|
||||||
|
private Integer isShow;
|
||||||
|
|
||||||
|
/** 排序 */
|
||||||
|
@ApiModelProperty(value = "排序")
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
|
||||||
|
/** 专家人像大图 */
|
||||||
|
@NotBlank
|
||||||
|
private String image;
|
||||||
|
|
||||||
|
|
||||||
|
/** 专家名称 */
|
||||||
|
@NotBlank
|
||||||
|
private String expertName;
|
||||||
|
|
||||||
|
|
||||||
|
/** 专家简介 */
|
||||||
|
@NotBlank
|
||||||
|
private String expertInfo;
|
||||||
|
|
||||||
|
|
||||||
|
/** 专家的职级 */
|
||||||
|
@NotBlank
|
||||||
|
private String expertStatus;
|
||||||
|
|
||||||
|
|
||||||
|
/** 专家所属单位 */
|
||||||
|
// @NotBlank
|
||||||
|
private String expertUnit;
|
||||||
|
|
||||||
|
|
||||||
|
/** 添加时间 */
|
||||||
|
@TableField(fill= FieldFill.INSERT)
|
||||||
|
private Timestamp createTime;
|
||||||
|
|
||||||
|
|
||||||
|
/** 更新时间 */
|
||||||
|
@TableField(fill= FieldFill.INSERT_UPDATE)
|
||||||
|
private Timestamp updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
/** 是否删除 */
|
||||||
|
private Integer isDel;
|
||||||
|
|
||||||
|
|
||||||
|
public void copy(YxStoreExpert source){
|
||||||
|
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2018-2020
|
||||||
|
* All rights reserved, Designed By www.yixiang.co
|
||||||
|
* 注意:
|
||||||
|
* 本软件为www.yixiang.co开发研制,未经购买不得使用
|
||||||
|
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台)
|
||||||
|
* 一经发现盗用、分享等行为,将追究法律责任,后果自负
|
||||||
|
*/
|
||||||
|
package co.yixiang.modules.expert.rest;
|
||||||
|
|
||||||
|
import co.yixiang.domain.PageResult;
|
||||||
|
import co.yixiang.dozer.service.IGenerator;
|
||||||
|
import co.yixiang.logging.aop.log.Log;
|
||||||
|
import co.yixiang.modules.expert.domain.YxStoreExpert;
|
||||||
|
import co.yixiang.modules.expert.service.YxStoreExpertService;
|
||||||
|
import co.yixiang.modules.expert.service.dto.YxStoreExpertDto;
|
||||||
|
import co.yixiang.modules.expert.service.dto.YxStoreExpertQueryCriteria;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
/**
|
||||||
|
* @author ssj
|
||||||
|
* @date 2022-09-17
|
||||||
|
*/
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Api(tags = " 专家管理")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/yxStoreExpert")
|
||||||
|
public class YxStoreExpertController {
|
||||||
|
|
||||||
|
private final YxStoreExpertService yxStoreExpertService;
|
||||||
|
private final IGenerator generator;
|
||||||
|
|
||||||
|
|
||||||
|
@Log("导出数据")
|
||||||
|
@ApiOperation("导出数据")
|
||||||
|
@GetMapping(value = "/download")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions('admin','yxStoreExpert:list')")
|
||||||
|
public void download(HttpServletResponse response, YxStoreExpertQueryCriteria criteria) throws IOException {
|
||||||
|
yxStoreExpertService.download(generator.convert(yxStoreExpertService.queryAll(criteria), YxStoreExpertDto.class), response);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
@Log("查询 专家")
|
||||||
|
@ApiOperation("查询 专家")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions('admin','yxStoreExpert:list')")
|
||||||
|
public ResponseEntity<PageResult<YxStoreExpertDto>> getYxStoreExperts(YxStoreExpertQueryCriteria criteria, Pageable pageable){
|
||||||
|
return new ResponseEntity<>(yxStoreExpertService.queryAll(criteria,pageable),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
@Log("新增 专家")
|
||||||
|
@ApiOperation("新增 专家")
|
||||||
|
// @PreAuthorize("ss.hasAnyPermissions('admin','yxStoreExpert:add')")
|
||||||
|
public ResponseEntity<Object> create(@Validated @RequestBody YxStoreExpert resources){
|
||||||
|
return new ResponseEntity<>(yxStoreExpertService.save(resources),HttpStatus.CREATED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping
|
||||||
|
@Log("修改 专家")
|
||||||
|
@ApiOperation("修改 专家")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions('admin','yxStoreExpert:edit')")
|
||||||
|
public ResponseEntity<Object> update(@Validated @RequestBody YxStoreExpert resources){
|
||||||
|
yxStoreExpertService.updateById(resources);
|
||||||
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Log("删除 专家")
|
||||||
|
@ApiOperation("删除 专家")
|
||||||
|
// @PreAuthorize("@ss.hasAnyPermissions ('admin','yxStoreExpert:del')")
|
||||||
|
@DeleteMapping
|
||||||
|
public ResponseEntity<Object> deleteAll(@RequestBody Long[] ids) {
|
||||||
|
Arrays.asList(ids).forEach(id->{
|
||||||
|
yxStoreExpertService.removeById(id);
|
||||||
|
});
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user