241019更新
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,3 +5,4 @@
|
|||||||
/.idea/jarRepositories.xml
|
/.idea/jarRepositories.xml
|
||||||
/.idea/misc.xml
|
/.idea/misc.xml
|
||||||
/.idea/vcs.xml
|
/.idea/vcs.xml
|
||||||
|
/file/
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -159,11 +160,11 @@ public class MpController extends BaseController {
|
|||||||
if (tenantId.equals(0)) {
|
if (tenantId.equals(0)) {
|
||||||
return fail("租户ID不存在", null);
|
return fail("租户ID不存在", null);
|
||||||
}
|
}
|
||||||
System.out.println("mpInfo = " + mpInfo);
|
// System.out.println("mpInfo = " + mpInfo);
|
||||||
// 从缓存读取信息
|
// 从缓存读取信息
|
||||||
if (StrUtil.isNotBlank(mpInfo)) {
|
if (StrUtil.isNotBlank(mpInfo)) {
|
||||||
final Object object = JSONUtil.parseObject(mpInfo, Object.class);
|
final Object object = JSONUtil.parseObject(mpInfo, Object.class);
|
||||||
System.out.println("object = " + object);
|
// System.out.println("object = " + object);
|
||||||
return success(object);
|
return success(object);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -304,17 +305,20 @@ public class MpController extends BaseController {
|
|||||||
List<Goods> goodsList = goodsService.getGoodsSpecType0(param);
|
List<Goods> goodsList = goodsService.getGoodsSpecType0(param);
|
||||||
if (getLoginUser() != null) {
|
if (getLoginUser() != null) {
|
||||||
for (Goods goods : goodsList) {
|
for (Goods goods : goodsList) {
|
||||||
|
BigDecimal originPrice = goods.getPrice();
|
||||||
|
goods.setPrice(goods.getSalePrice());
|
||||||
if (getLoginUser().getGradeId().equals(33)) {
|
if (getLoginUser().getGradeId().equals(33)) {
|
||||||
if (goods.getDealerGift()) goods.setShowGift(true);
|
if (goods.getDealerGift()) goods.setShowGift(true);
|
||||||
goods.setPrice(goods.getDealerPrice());
|
goods.setPrice(goods.getDealerPrice());
|
||||||
}
|
}
|
||||||
// 会员店
|
// 会员店
|
||||||
if (getLoginUser().getGradeId().equals(31)) {
|
if (getLoginUser().getGradeId().equals(31)) {
|
||||||
|
goods.setPrice(originPrice);
|
||||||
if (goods.getPriceGift()) goods.setShowGift(true);
|
if (goods.getPriceGift()) goods.setShowGift(true);
|
||||||
}
|
}
|
||||||
if (getLoginUser().getGradeId().equals(0)) {
|
// if (getLoginUser().getGradeId().equals(0)) {
|
||||||
goods.setPrice(goods.getSalePrice());
|
// goods.setPrice(goods.getSalePrice());
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
for (Goods goods : goodsList) {
|
for (Goods goods : goodsList) {
|
||||||
|
|||||||
@@ -40,21 +40,22 @@ public class MybatisPlusConfig {
|
|||||||
@Override
|
@Override
|
||||||
public Expression getTenantId() {
|
public Expression getTenantId() {
|
||||||
// 从域名拿ID
|
// 从域名拿ID
|
||||||
String Domain = request.getHeader("Domain");
|
// String Domain = request.getHeader("Domain");
|
||||||
if (StrUtil.isNotBlank(Domain)) {
|
// if (StrUtil.isNotBlank(Domain)) {
|
||||||
String key = "Domain:" + Domain;
|
// String key = "Domain:" + Domain;
|
||||||
String tenantId = redisUtil.get(key);
|
// String tenantId = redisUtil.get(key);
|
||||||
if(tenantId != null){
|
// if(tenantId != null){
|
||||||
System.out.println("从域名拿TID = " + tenantId);
|
// System.out.println("从域名拿TID = " + tenantId);
|
||||||
return new LongValue(tenantId);
|
// return new LongValue(tenantId);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
// 从请求头拿ID
|
// // 从请求头拿ID
|
||||||
final String tenantId = request.getHeader("tenantId");
|
// final String tenantId = request.getHeader("tenantId");
|
||||||
if(tenantId != null){
|
// if(tenantId != null){
|
||||||
return new LongValue(tenantId);
|
// return new LongValue(tenantId);
|
||||||
}
|
// }
|
||||||
return getLoginUserTenantId();
|
// return getLoginUserTenantId();
|
||||||
|
return new LongValue(10158);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -2,23 +2,13 @@ package com.gxwebsoft.common.core.utils;
|
|||||||
|
|
||||||
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpRequest;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.gxwebsoft.common.core.security.JwtUtil;
|
|
||||||
import com.gxwebsoft.common.core.web.ApiResult;
|
import com.gxwebsoft.common.core.web.ApiResult;
|
||||||
import com.gxwebsoft.common.system.entity.Payment;
|
import com.gxwebsoft.common.system.entity.*;
|
||||||
import com.gxwebsoft.common.system.entity.Role;
|
|
||||||
import com.gxwebsoft.common.system.entity.User;
|
|
||||||
import com.gxwebsoft.common.system.entity.UserRole;
|
|
||||||
import com.gxwebsoft.common.system.param.RoleParam;
|
|
||||||
import com.gxwebsoft.shop.entity.MerchantAccount;
|
import com.gxwebsoft.shop.entity.MerchantAccount;
|
||||||
import com.gxwebsoft.shop.entity.Order;
|
import com.gxwebsoft.shop.entity.Order;
|
||||||
import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction;
|
import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction;
|
||||||
import org.springframework.http.*;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.client.RestClientException;
|
|
||||||
import org.springframework.web.client.RestTemplate;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
@@ -121,6 +111,29 @@ public class RequestUtil {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public User getByUserIdWithoutLogin(Integer userId) {
|
||||||
|
User user = new User();
|
||||||
|
user.setUserId(userId);
|
||||||
|
user.setAuthCode("1700083");
|
||||||
|
String path = "/system/user/getUserWithoutLogin";
|
||||||
|
try {
|
||||||
|
// 链式构建请求
|
||||||
|
String result = HttpRequest.post(host.concat(path))
|
||||||
|
.header("Tenantid", TENANT_ID)
|
||||||
|
.body(JSONUtil.toJSONString(user))
|
||||||
|
.timeout(20000)//超时,毫秒
|
||||||
|
.execute().body();
|
||||||
|
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||||
|
System.out.println("jsonObject = " + jsonObject);
|
||||||
|
final String data = jsonObject.getString("data");
|
||||||
|
return JSONObject.parseObject(data, User.class);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
// 新增用户
|
// 新增用户
|
||||||
public boolean saveUserByPhone(MerchantAccount merchantAccount) {
|
public boolean saveUserByPhone(MerchantAccount merchantAccount) {
|
||||||
String path = "/system/user/";
|
String path = "/system/user/";
|
||||||
@@ -172,14 +185,29 @@ public class RequestUtil {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateUserBalanceWithoutLogin(User user) {
|
||||||
|
user.setAuthCode("1700083");
|
||||||
|
try {
|
||||||
|
// 链式构建请求
|
||||||
|
final String body = HttpRequest.post(host.concat("/system/user/updateUserBalanceWithoutLogin"))
|
||||||
|
.header("Tenantid", TENANT_ID)
|
||||||
|
.body(JSONUtil.toJSONString(user))
|
||||||
|
.timeout(20000)
|
||||||
|
.execute().body();
|
||||||
|
JSONUtil.parseObject(body, ApiResult.class);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public User getParent(Integer userId) {
|
public User getParent(Integer userId) {
|
||||||
try {
|
try {
|
||||||
// 链式构建请求
|
// 链式构建请求
|
||||||
final String result = HttpRequest.get(host.concat("/system/user-referee/getReferee/" + userId))
|
final String result = HttpRequest.get(host.concat("/system/user-referee/getReferee/" + userId))
|
||||||
.header("Authorization", ACCESS_TOKEN)
|
|
||||||
.header("Tenantid", TENANT_ID)
|
.header("Tenantid", TENANT_ID)
|
||||||
.timeout(20000)
|
.timeout(20000)
|
||||||
.execute().body();
|
.execute().body();
|
||||||
|
System.out.println("result = " + result);
|
||||||
JSONObject jsonObject = JSONObject.parseObject(result);
|
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||||
final String data = jsonObject.getString("data");
|
final String data = jsonObject.getString("data");
|
||||||
return JSONObject.parseObject(data, User.class);
|
return JSONObject.parseObject(data, User.class);
|
||||||
@@ -276,4 +304,20 @@ public class RequestUtil {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ApiResult<DictData> getDictData(Integer dictId) {
|
||||||
|
String path = "/system/dict-data/page?dictId=" + dictId;
|
||||||
|
try {
|
||||||
|
// 链式构建请求
|
||||||
|
final String body = HttpRequest.get(host.concat(path))
|
||||||
|
.header("tenantId", TENANT_ID)
|
||||||
|
.timeout(20000)
|
||||||
|
.execute().body();
|
||||||
|
// System.out.println("body = " + body);
|
||||||
|
return JSONUtil.parseObject(body, ApiResult.class);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,12 @@ public class DictData implements Serializable {
|
|||||||
@ApiModelProperty(value = "字典数据名称")
|
@ApiModelProperty(value = "字典数据名称")
|
||||||
private String dictDataName;
|
private String dictDataName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "预设字段:路由地址")
|
||||||
|
private String path;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "预设字段:组件路径")
|
||||||
|
private String component;
|
||||||
|
|
||||||
@ApiModelProperty(value = "排序号")
|
@ApiModelProperty(value = "排序号")
|
||||||
private Integer sortNumber;
|
private Integer sortNumber;
|
||||||
|
|
||||||
|
|||||||
@@ -272,6 +272,8 @@ public class User implements UserDetails {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private MerchantAccount merchantAccount;
|
private MerchantAccount merchantAccount;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String authCode;
|
||||||
// @ApiModelProperty("企业信息")
|
// @ApiModelProperty("企业信息")
|
||||||
// @TableField(exist = false)
|
// @TableField(exist = false)
|
||||||
// private Company companyInfo;
|
// private Company companyInfo;
|
||||||
|
|||||||
@@ -2,10 +2,14 @@ package com.gxwebsoft.oa.controller;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateField;
|
import cn.hutool.core.date.DateField;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.gxwebsoft.common.core.security.JwtUtil;
|
import com.gxwebsoft.common.core.security.JwtUtil;
|
||||||
|
import com.gxwebsoft.common.core.utils.JSONUtil;
|
||||||
import com.gxwebsoft.common.core.utils.MyQrCodeUtil;
|
import com.gxwebsoft.common.core.utils.MyQrCodeUtil;
|
||||||
|
import com.gxwebsoft.common.core.utils.RequestUtil;
|
||||||
import com.gxwebsoft.common.core.web.*;
|
import com.gxwebsoft.common.core.web.*;
|
||||||
|
import com.gxwebsoft.common.system.entity.DictData;
|
||||||
import com.gxwebsoft.common.system.entity.Role;
|
import com.gxwebsoft.common.system.entity.Role;
|
||||||
import com.gxwebsoft.common.system.entity.User;
|
import com.gxwebsoft.common.system.entity.User;
|
||||||
import com.gxwebsoft.oa.entity.Task;
|
import com.gxwebsoft.oa.entity.Task;
|
||||||
@@ -15,8 +19,11 @@ import com.gxwebsoft.oa.param.TaskParam;
|
|||||||
import com.gxwebsoft.oa.service.TaskCountService;
|
import com.gxwebsoft.oa.service.TaskCountService;
|
||||||
import com.gxwebsoft.oa.service.TaskRecordService;
|
import com.gxwebsoft.oa.service.TaskRecordService;
|
||||||
import com.gxwebsoft.oa.service.TaskService;
|
import com.gxwebsoft.oa.service.TaskService;
|
||||||
|
import com.gxwebsoft.shop.entity.Order;
|
||||||
|
import com.gxwebsoft.shop.service.OrderService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
@@ -29,6 +36,7 @@ import java.text.SimpleDateFormat;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import static com.gxwebsoft.common.core.constants.TaskConstants.*;
|
import static com.gxwebsoft.common.core.constants.TaskConstants.*;
|
||||||
|
|
||||||
@@ -48,13 +56,17 @@ public class TaskController extends BaseController {
|
|||||||
private TaskRecordService taskRecordService;
|
private TaskRecordService taskRecordService;
|
||||||
@Resource
|
@Resource
|
||||||
private TaskCountService taskCountService;
|
private TaskCountService taskCountService;
|
||||||
|
@Resource
|
||||||
|
private OrderService orderService;
|
||||||
|
@Autowired
|
||||||
|
private RequestUtil requestUtil;
|
||||||
|
|
||||||
@ApiOperation("分页查询任务记录表")
|
@ApiOperation("分页查询任务记录表")
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public ApiResult<PageResult<Task>> page(TaskParam param) {
|
public ApiResult<PageResult<Task>> page(TaskParam param) {
|
||||||
// 使用关联查询
|
// 使用关联查询
|
||||||
param.setLoginUserId(getLoginUserId());
|
param.setLoginUserId(getLoginUserId());
|
||||||
return success(taskService.pageRel(param));
|
return success(taskService.pageRel(param));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("查询全部任务记录表")
|
@ApiOperation("查询全部任务记录表")
|
||||||
@@ -72,9 +84,9 @@ public class TaskController extends BaseController {
|
|||||||
public ApiResult<Task> get(@PathVariable("id") Integer id) {
|
public ApiResult<Task> get(@PathVariable("id") Integer id) {
|
||||||
// 更新阅读状态
|
// 更新阅读状态
|
||||||
Task task = taskService.getByIdRel(id);
|
Task task = taskService.getByIdRel(id);
|
||||||
if(!task.getLastReadUser().equals(getLoginUserId())){
|
if (!task.getLastReadUser().equals(getLoginUserId())) {
|
||||||
task.setIsRead(1);
|
task.setIsRead(1);
|
||||||
taskService.updateById(task);
|
taskService.updateById(task);
|
||||||
}
|
}
|
||||||
return success(task);
|
return success(task);
|
||||||
}
|
}
|
||||||
@@ -96,8 +108,8 @@ public class TaskController extends BaseController {
|
|||||||
task.setLastAvatar(loginUser.getAvatar());
|
task.setLastAvatar(loginUser.getAvatar());
|
||||||
task.setLastReadUser(loginUser.getUserId());
|
task.setLastReadUser(loginUser.getUserId());
|
||||||
task.setLastNickname(loginUser.getNickname());
|
task.setLastNickname(loginUser.getNickname());
|
||||||
if(task.getName() == null){
|
if (task.getName() == null) {
|
||||||
task.setName(task.getContent());
|
task.setName(task.getContent());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (taskService.saveByRel(task)) {
|
if (taskService.saveByRel(task)) {
|
||||||
@@ -166,7 +178,7 @@ public class TaskController extends BaseController {
|
|||||||
@GetMapping("/taskQRCode")
|
@GetMapping("/taskQRCode")
|
||||||
public ApiResult<?> taskQRCode(TaskParam param, HttpServletRequest request) throws IOException {
|
public ApiResult<?> taskQRCode(TaskParam param, HttpServletRequest request) throws IOException {
|
||||||
String url = "https://modules.gxwebsoft.com/oa/task/detail?id=".concat(param.getTaskId().toString());
|
String url = "https://modules.gxwebsoft.com/oa/task/detail?id=".concat(param.getTaskId().toString());
|
||||||
final String qrCode = MyQrCodeUtil.getTaskCode(param.getTaskId(),url);
|
final String qrCode = MyQrCodeUtil.getTaskCode(param.getTaskId(), url);
|
||||||
return success("操作成功", qrCode);
|
return success("操作成功", qrCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,8 +187,8 @@ public class TaskController extends BaseController {
|
|||||||
public ApiResult<?> taskJoinQRCode(TaskParam param, HttpServletRequest request) throws IOException {
|
public ApiResult<?> taskJoinQRCode(TaskParam param, HttpServletRequest request) throws IOException {
|
||||||
User loginUser = getLoginUser();
|
User loginUser = getLoginUser();
|
||||||
String access_token = JwtUtil.getAccessToken(request);
|
String access_token = JwtUtil.getAccessToken(request);
|
||||||
String url = "https://modules.gxwebsoft.com/passport/register?type=join&dealerId=".concat(loginUser.getUserId().toString())+"&token=".concat(access_token);
|
String url = "https://modules.gxwebsoft.com/passport/register?type=join&dealerId=".concat(loginUser.getUserId().toString()) + "&token=".concat(access_token);
|
||||||
final String qrCode = MyQrCodeUtil.getUserCode(loginUser.getUserId(),url);
|
final String qrCode = MyQrCodeUtil.getUserCode(loginUser.getUserId(), url);
|
||||||
return success("操作成功", qrCode);
|
return success("操作成功", qrCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -184,72 +196,116 @@ public class TaskController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 每日清零
|
* 每日清零
|
||||||
*/
|
*/
|
||||||
@Scheduled(cron="0 0 0 * * ?")
|
@Scheduled(cron = "0 0 0 * * ?")
|
||||||
public void todayTask() {
|
public void todayTask() {
|
||||||
System.out.println("每日清零任务 = ");
|
System.out.println("每日清零任务 = ");
|
||||||
final boolean update = taskCountService.update(new LambdaUpdateWrapper<TaskCount>().set(TaskCount::getToday, 0));
|
final boolean update = taskCountService.update(new LambdaUpdateWrapper<TaskCount>().set(TaskCount::getToday, 0));
|
||||||
System.out.println("update = " + update);
|
System.out.println("update = " + update);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 本月清零
|
* 本月清零
|
||||||
*/
|
*/
|
||||||
@Scheduled(cron="0 0 1 * * ?")
|
@Scheduled(cron = "0 0 1 * * ?")
|
||||||
public void monthTask() {
|
public void monthTask() {
|
||||||
taskCountService.update(new LambdaUpdateWrapper<TaskCount>().set(TaskCount::getMonth, 0));
|
taskCountService.update(new LambdaUpdateWrapper<TaskCount>().set(TaskCount::getMonth, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 每年清零
|
* 每年清零
|
||||||
*/
|
*/
|
||||||
@Scheduled(cron = "0 0 0 1 * ?")
|
@Scheduled(cron = "0 0 0 1 * ?")
|
||||||
public void yearTask(){
|
public void yearTask() {
|
||||||
taskCountService.update(new LambdaUpdateWrapper<TaskCount>().set(TaskCount::getYear, 0));
|
taskCountService.update(new LambdaUpdateWrapper<TaskCount>().set(TaskCount::getYear, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 定时结算已解决待评价的工单的任务
|
* 定时结算已解决待评价的工单的任务
|
||||||
* 1个小时内没有用户再次提交新的回复则自动结算
|
* 1个小时内没有用户再次提交新的回复则自动结算
|
||||||
* 时间间隔2分钟执行一次
|
* 时间间隔2分钟执行一次
|
||||||
*/
|
*/
|
||||||
@Scheduled(cron="*/30 * * * * *")
|
@Scheduled(cron = "*/30 * * * * *")
|
||||||
public void updateProgressTask() {
|
public void updateProgressTask() {
|
||||||
// System.out.println("定时任务开始:updateProgressTask = " + DateUtil.now());
|
// System.out.println("定时任务开始:updateProgressTask = " + DateUtil.now());
|
||||||
TaskParam taskParam = new TaskParam();
|
TaskParam taskParam = new TaskParam();
|
||||||
taskParam.setProgress(TOBECONFIRMED);
|
taskParam.setProgress(TOBECONFIRMED);
|
||||||
// taskParam.setTaskId(689);
|
// taskParam.setTaskId(689);
|
||||||
taskParam.setLimit(10L);
|
taskParam.setLimit(10L);
|
||||||
final PageResult<Task> result = taskService.pageRelAll(taskParam);
|
final PageResult<Task> result = taskService.pageRelAll(taskParam);
|
||||||
if(result.getCount() == 0){
|
if (result.getCount() == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final List<Task> list = result.getList();
|
final List<Task> list = result.getList();
|
||||||
if (!CollectionUtils.isEmpty(list)) {
|
if (!CollectionUtils.isEmpty(list)) {
|
||||||
list.forEach(task -> {
|
list.forEach(task -> {
|
||||||
try {
|
try {
|
||||||
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
Date newDate = DateUtil.offset(task.getUpdateTime(), DateField.MINUTE, 60 * 24);
|
Date newDate = DateUtil.offset(task.getUpdateTime(), DateField.MINUTE, 60 * 24);
|
||||||
Date date1 = df.parse(newDate.toString());
|
Date date1 = df.parse(newDate.toString());
|
||||||
Date date2 = df.parse(DateUtil.now());
|
Date date2 = df.parse(DateUtil.now());
|
||||||
final boolean after = date2.after(date1);
|
final boolean after = date2.after(date1);
|
||||||
if(after){
|
if (after) {
|
||||||
// 更新工单状态
|
// 更新工单状态
|
||||||
task.setProgress(COMPLETED);
|
task.setProgress(COMPLETED);
|
||||||
task.setStatus(TASK_STATUS_1);
|
task.setStatus(TASK_STATUS_1);
|
||||||
taskService.updateByIdAll(task);
|
taskService.updateByIdAll(task);
|
||||||
// 待评价的工单超过24小时没有评价则自动确认
|
// 待评价的工单超过24小时没有评价则自动确认
|
||||||
final TaskRecord taskRecord = new TaskRecord();
|
final TaskRecord taskRecord = new TaskRecord();
|
||||||
taskRecord.setTaskId(task.getTaskId());
|
taskRecord.setTaskId(task.getTaskId());
|
||||||
taskRecord.setContent("超过24小时没有评价的工单系统已自动评价");
|
taskRecord.setContent("超过24小时没有评价的工单系统已自动评价");
|
||||||
taskRecord.setTenantId(task.getTenantId());
|
taskRecord.setTenantId(task.getTenantId());
|
||||||
final boolean save = taskRecordService.save(taskRecord);
|
final boolean save = taskRecordService.save(taskRecord);
|
||||||
System.out.println("save = " + save);
|
System.out.println("save = " + save);
|
||||||
System.out.println("超过24小时没有评价的工单已自动确认 = " + task.getTaskId());
|
System.out.println("超过24小时没有评价的工单已自动确认 = " + task.getTaskId());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Scheduled(cron = "* * * * * *")
|
||||||
|
public void task() {
|
||||||
|
// 15分钟未支付取消
|
||||||
|
orderService.update(
|
||||||
|
new LambdaUpdateWrapper<Order>()
|
||||||
|
.eq(Order::getPayStatus, 0)
|
||||||
|
.eq(Order::getOrderStatus, 0)
|
||||||
|
.apply("now() > DATE_ADD(`create_time`, INTERVAL " + 60 + " MINUTE)")
|
||||||
|
.set(Order::getOrderStatus, 2)
|
||||||
|
);
|
||||||
|
|
||||||
|
// 7天自动确认收货
|
||||||
|
requestUtil.setTenantId("10158");
|
||||||
|
ApiResult<?> dictDataApiResult = requestUtil.getDictData(790);
|
||||||
|
Map<String, Object> dictDataApiResultData = (Map<String, Object>) dictDataApiResult.getData();
|
||||||
|
List<Object> dictDataList = (List<Object>) dictDataApiResultData.get("list");
|
||||||
|
int autoConfirmDay = 0;
|
||||||
|
for (Object dictData : dictDataList) {
|
||||||
|
Map<String, Object> dictData1 = JSONUtil.parseObject(JSONUtil.toJSONString(dictData), Map.class);
|
||||||
|
if (dictData1.get("dictDataName").equals("自动确认收货")) autoConfirmDay = Integer.parseInt(dictData1.get("dictDataCode").toString());
|
||||||
|
}
|
||||||
|
// System.out.println("autoConfirmDay = " + autoConfirmDay);
|
||||||
|
if (autoConfirmDay != 0) {
|
||||||
|
List<Order> expressOrderList = orderService.list(
|
||||||
|
new LambdaQueryWrapper<Order>()
|
||||||
|
.eq(Order::getType, 0)
|
||||||
|
.eq(Order::getDeliveryType, 0)
|
||||||
|
.eq(Order::getPayStatus, 1)
|
||||||
|
.eq(Order::getOrderStatus, 0)
|
||||||
|
.eq(Order::getDeliveryStatus, 20)
|
||||||
|
);
|
||||||
|
if (!expressOrderList.isEmpty()) {
|
||||||
|
for (Order expressOrder : expressOrderList) {
|
||||||
|
if (expressOrder.getDeliveryTime() != null &&
|
||||||
|
DateUtil.offsetDay(expressOrder.getDeliveryTime(), autoConfirmDay).isBeforeOrEquals(new Date())) {
|
||||||
|
expressOrder.setOrderStatus(1);
|
||||||
|
orderService.updateById(expressOrder);
|
||||||
|
orderService.doSettle(expressOrder.getOrderId());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
}
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,11 +9,10 @@ import com.gxwebsoft.common.core.web.BaseController;
|
|||||||
import com.gxwebsoft.common.core.web.BatchParam;
|
import com.gxwebsoft.common.core.web.BatchParam;
|
||||||
import com.gxwebsoft.common.core.web.PageResult;
|
import com.gxwebsoft.common.core.web.PageResult;
|
||||||
import com.gxwebsoft.common.system.entity.User;
|
import com.gxwebsoft.common.system.entity.User;
|
||||||
import com.gxwebsoft.shop.entity.Cart;
|
import com.gxwebsoft.shop.entity.*;
|
||||||
import com.gxwebsoft.shop.entity.Merchant;
|
|
||||||
import com.gxwebsoft.shop.param.CartParam;
|
import com.gxwebsoft.shop.param.CartParam;
|
||||||
import com.gxwebsoft.shop.service.CartService;
|
import com.gxwebsoft.shop.service.*;
|
||||||
import com.gxwebsoft.shop.service.MerchantService;
|
import com.gxwebsoft.shop.vo.CartShopVo;
|
||||||
import com.gxwebsoft.shop.vo.CartVo;
|
import com.gxwebsoft.shop.vo.CartVo;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@@ -24,10 +23,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.HashMap;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -44,6 +40,12 @@ public class CartController extends BaseController {
|
|||||||
private CartService cartService;
|
private CartService cartService;
|
||||||
@Resource
|
@Resource
|
||||||
private MerchantService merchantService;
|
private MerchantService merchantService;
|
||||||
|
@Resource
|
||||||
|
private OrderService orderService;
|
||||||
|
@Resource
|
||||||
|
private OrderGoodsService orderGoodsService;
|
||||||
|
@Resource
|
||||||
|
private GoodsService goodsService;
|
||||||
|
|
||||||
@ApiOperation("分页查询购物车")
|
@ApiOperation("分页查询购物车")
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@@ -62,7 +64,62 @@ public class CartController extends BaseController {
|
|||||||
// 附加用户ID
|
// 附加用户ID
|
||||||
param.setUserId(getLoginUserId());
|
param.setUserId(getLoginUserId());
|
||||||
param.setLoginUser(getLoginUser());
|
param.setLoginUser(getLoginUser());
|
||||||
return success(cartService.listRel(param));
|
if (param.getOrderId() != null) {
|
||||||
|
Order order = orderService.getById(param.getOrderId());
|
||||||
|
List<OrderGoods> orderGoodsList = orderGoodsService.listByOrderId(order.getOrderId());
|
||||||
|
Merchant merchant = null;
|
||||||
|
if (order.getType().equals(1)) {
|
||||||
|
merchant = merchantService.getById(order.getMerchantId());
|
||||||
|
} else {
|
||||||
|
if (order.getDeliveryType().equals(0)) {
|
||||||
|
merchant = merchantService.getById(orderGoodsList.get(0).getMerchantId());
|
||||||
|
} else {
|
||||||
|
merchant = merchantService.getById(order.getSelfTakeMerchantId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CartVo cartVo = new CartVo();
|
||||||
|
List<CartShopVo> shops = new ArrayList<>();
|
||||||
|
CartShopVo cartShopVo = new CartShopVo();
|
||||||
|
cartShopVo.setShopLogo(merchant.getImage());
|
||||||
|
cartShopVo.setShopName(merchant.getMerchantName());
|
||||||
|
cartShopVo.setShopId(merchant.getMerchantId());
|
||||||
|
|
||||||
|
int selectedNum = 0;
|
||||||
|
int totalNum = 0;
|
||||||
|
BigDecimal totalPrice = BigDecimal.ZERO;
|
||||||
|
List<Cart> cartList = new ArrayList<>();
|
||||||
|
for (OrderGoods orderGoods : orderGoodsList) {
|
||||||
|
Goods goods = goodsService.getById(orderGoods.getGoodsId());
|
||||||
|
Merchant goodsMerchant = merchantService.getById(orderGoods.getMerchantId());
|
||||||
|
|
||||||
|
Cart cart = new Cart();
|
||||||
|
cart.setAddress(goodsMerchant.getAddress());
|
||||||
|
cart.setCartNum(orderGoods.getTotalNum());
|
||||||
|
cart.setGoods(goods);
|
||||||
|
cart.setGoodsId(orderGoods.getGoodsId());
|
||||||
|
cart.setGoodsName(goods.getGoodsName());
|
||||||
|
cart.setImage(goods.getImage());
|
||||||
|
cart.setMerchantId(goodsMerchant.getMerchantId());
|
||||||
|
cart.setMerchantName(goodsMerchant.getMerchantName());
|
||||||
|
cart.setPrice(orderGoods.getPrice());
|
||||||
|
cart.setSelected(true);
|
||||||
|
cart.setTenantId(orderGoods.getTenantId());
|
||||||
|
cart.setUserId(orderGoods.getUserId());
|
||||||
|
cart.setTotalPrice(orderGoods.getPrice().multiply(BigDecimal.valueOf(orderGoods.getTotalNum())));
|
||||||
|
cartList.add(cart);
|
||||||
|
selectedNum += orderGoods.getTotalNum();
|
||||||
|
totalNum += orderGoods.getTotalNum();
|
||||||
|
totalPrice = totalPrice.add(cart.getTotalPrice());
|
||||||
|
}
|
||||||
|
cartShopVo.setCarts(cartList);
|
||||||
|
cartShopVo.setMerchant(merchant);
|
||||||
|
shops.add(cartShopVo);
|
||||||
|
cartVo.setShops(shops);
|
||||||
|
cartVo.setSelectNums(Long.valueOf(selectedNum));
|
||||||
|
cartVo.setTotalNums(Long.valueOf(totalNum));
|
||||||
|
cartVo.setTotalPrice(totalPrice);
|
||||||
|
return success(cartVo);
|
||||||
|
} else return success(cartService.listRel(param));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreAuthorize("hasAuthority('shop:cart:list')")
|
@PreAuthorize("hasAuthority('shop:cart:list')")
|
||||||
@@ -96,7 +153,7 @@ public class CartController extends BaseController {
|
|||||||
.eq(Cart::getGoodsId, cart.getGoodsId())
|
.eq(Cart::getGoodsId, cart.getGoodsId())
|
||||||
.eq(Cart::getUserId, cart.getUserId())
|
.eq(Cart::getUserId, cart.getUserId())
|
||||||
.eq(Cart::getType, cart.getType());
|
.eq(Cart::getType, cart.getType());
|
||||||
if (cart.getSpec() != null) cartLambdaQueryWrapper.eq(Cart::getSpec, cart.getSpec());
|
if (cart.getSpec() != null && !cart.getSpec().isEmpty()) cartLambdaQueryWrapper.eq(Cart::getSpec, cart.getSpec());
|
||||||
cartLambdaQueryWrapper.last("limit 1");
|
cartLambdaQueryWrapper.last("limit 1");
|
||||||
final Cart one = cartService.getOne(cartLambdaQueryWrapper);
|
final Cart one = cartService.getOne(cartLambdaQueryWrapper);
|
||||||
if (ObjectUtil.isNotEmpty(one)) {
|
if (ObjectUtil.isNotEmpty(one)) {
|
||||||
@@ -104,6 +161,9 @@ public class CartController extends BaseController {
|
|||||||
one.setCartNum(one.getCartNum() + cart.getCartNum());
|
one.setCartNum(one.getCartNum() + cart.getCartNum());
|
||||||
cartService.updateById(one);
|
cartService.updateById(one);
|
||||||
return success("添加成功", one.getId());
|
return success("添加成功", one.getId());
|
||||||
|
} else {
|
||||||
|
cartService.save(cart);
|
||||||
|
return success("添加成功", cart.getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (cartService.save(cart)) {
|
if (cartService.save(cart)) {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.gxwebsoft.shop.controller;
|
package com.gxwebsoft.shop.controller;
|
||||||
|
|
||||||
import com.gxwebsoft.common.core.web.BaseController;
|
import com.gxwebsoft.common.core.web.BaseController;
|
||||||
|
import com.gxwebsoft.shop.entity.Order;
|
||||||
import com.gxwebsoft.shop.service.DealerCapitalService;
|
import com.gxwebsoft.shop.service.DealerCapitalService;
|
||||||
import com.gxwebsoft.shop.entity.DealerCapital;
|
import com.gxwebsoft.shop.entity.DealerCapital;
|
||||||
import com.gxwebsoft.shop.param.DealerCapitalParam;
|
import com.gxwebsoft.shop.param.DealerCapitalParam;
|
||||||
@@ -10,6 +11,7 @@ import com.gxwebsoft.common.core.web.PageParam;
|
|||||||
import com.gxwebsoft.common.core.web.BatchParam;
|
import com.gxwebsoft.common.core.web.BatchParam;
|
||||||
import com.gxwebsoft.common.core.annotation.OperationLog;
|
import com.gxwebsoft.common.core.annotation.OperationLog;
|
||||||
import com.gxwebsoft.common.system.entity.User;
|
import com.gxwebsoft.common.system.entity.User;
|
||||||
|
import com.gxwebsoft.shop.service.OrderService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
@@ -30,6 +32,8 @@ import java.util.List;
|
|||||||
public class DealerCapitalController extends BaseController {
|
public class DealerCapitalController extends BaseController {
|
||||||
@Resource
|
@Resource
|
||||||
private DealerCapitalService dealerCapitalService;
|
private DealerCapitalService dealerCapitalService;
|
||||||
|
@Resource
|
||||||
|
private OrderService orderService;
|
||||||
|
|
||||||
@ApiOperation("分页查询分销商资金明细表")
|
@ApiOperation("分页查询分销商资金明细表")
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@@ -38,6 +42,21 @@ public class DealerCapitalController extends BaseController {
|
|||||||
return success(dealerCapitalService.pageRel(param));
|
return success(dealerCapitalService.pageRel(param));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("查询全部分销商资金明细表")
|
||||||
|
@GetMapping("/list-for-user")
|
||||||
|
public ApiResult<?> listForUser(DealerCapitalParam param) {
|
||||||
|
if (getLoginUser() != null) param.setUserId(getLoginUserId());
|
||||||
|
else return fail("请先登录");
|
||||||
|
// 使用关联查询
|
||||||
|
List<DealerCapital> dealerCapitalList = dealerCapitalService.listRel(param);
|
||||||
|
if (!dealerCapitalList.isEmpty()) {
|
||||||
|
for (DealerCapital dealerCapital : dealerCapitalList) {
|
||||||
|
dealerCapital.setOrder(orderService.getById(dealerCapital.getOrderId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return success(dealerCapitalList);
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation("查询全部分销商资金明细表")
|
@ApiOperation("查询全部分销商资金明细表")
|
||||||
@GetMapping()
|
@GetMapping()
|
||||||
public ApiResult<List<DealerCapital>> list(DealerCapitalParam param) {
|
public ApiResult<List<DealerCapital>> list(DealerCapitalParam param) {
|
||||||
@@ -59,7 +78,7 @@ public class DealerCapitalController extends BaseController {
|
|||||||
// 记录当前登录用户id
|
// 记录当前登录用户id
|
||||||
User loginUser = getLoginUser();
|
User loginUser = getLoginUser();
|
||||||
if (loginUser != null) {
|
if (loginUser != null) {
|
||||||
dealerCapital.setUserId(loginUser.getUserId());
|
dealerCapital.setUserId(loginUser.getUserId());
|
||||||
}
|
}
|
||||||
if (dealerCapitalService.save(dealerCapital)) {
|
if (dealerCapitalService.save(dealerCapital)) {
|
||||||
return success("添加成功");
|
return success("添加成功");
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import com.gxwebsoft.shop.param.DealerUserParam;
|
|||||||
import com.gxwebsoft.shop.service.DealerUserService;
|
import com.gxwebsoft.shop.service.DealerUserService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -46,6 +47,8 @@ public class DealerUserController extends BaseController {
|
|||||||
@Resource
|
@Resource
|
||||||
private ConfigProperties config;
|
private ConfigProperties config;
|
||||||
|
|
||||||
|
// @Value("${config.server-url}")
|
||||||
|
final private String serverUrl = "https://nbg-img.websoft.top";
|
||||||
|
|
||||||
@ApiOperation("生成专属二维码")
|
@ApiOperation("生成专属二维码")
|
||||||
@GetMapping("/getDealerUserQrcode")
|
@GetMapping("/getDealerUserQrcode")
|
||||||
@@ -62,8 +65,12 @@ public class DealerUserController extends BaseController {
|
|||||||
final HashMap<String, Object> map = new HashMap<>();
|
final HashMap<String, Object> map = new HashMap<>();
|
||||||
map.put("scene", loginUserId);
|
map.put("scene", loginUserId);
|
||||||
map.put("page", "package/dealer/invite");
|
map.put("page", "package/dealer/invite");
|
||||||
map.put("env_version", "trial"); // 正式版为"release",体验版为"trial",开发版为"develop"
|
map.put("env_version", "release"); // 正式版为"release",体验版为"trial",开发版为"develop"
|
||||||
|
|
||||||
|
HttpResponse response = HttpRequest.post(apiUrl)
|
||||||
|
.body(JSON.toJSONString(map))
|
||||||
|
.execute();
|
||||||
|
System.out.println("response = " + response);
|
||||||
// 获取图片 Buffer
|
// 获取图片 Buffer
|
||||||
byte[] qrCode = HttpRequest.post(apiUrl)
|
byte[] qrCode = HttpRequest.post(apiUrl)
|
||||||
.body(JSON.toJSONString(map))
|
.body(JSON.toJSONString(map))
|
||||||
@@ -72,11 +79,11 @@ public class DealerUserController extends BaseController {
|
|||||||
// // 保存的文件名称
|
// // 保存的文件名称
|
||||||
final String fileName = loginUserId.toString().concat(".png");
|
final String fileName = loginUserId.toString().concat(".png");
|
||||||
// 保存路径
|
// 保存路径
|
||||||
String filePath = getUploadDir().concat("user-code/") + fileName;
|
String filePath = getUploadDir().concat("qr/userCode_") + fileName;
|
||||||
File file = FileUtil.writeBytes(qrCode, filePath);
|
File file = FileUtil.writeBytes(qrCode, filePath);
|
||||||
|
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
final String qrcode = config.getFileServer().concat("/user-code/").concat(fileName);
|
final String qrcode = serverUrl.concat("/qr/userCode_").concat(fileName);
|
||||||
dealerUser.setQrcode(qrcode);
|
dealerUser.setQrcode(qrcode);
|
||||||
dealerUserService.updateById(dealerUser);
|
dealerUserService.updateById(dealerUser);
|
||||||
return success("操作成功", qrcode);
|
return success("操作成功", qrcode);
|
||||||
@@ -208,6 +215,6 @@ public class DealerUserController extends BaseController {
|
|||||||
|
|
||||||
|
|
||||||
private String getUploadDir() {
|
private String getUploadDir() {
|
||||||
return config.getUploadPath() + "file/";
|
return config.getUploadPath();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -191,6 +192,17 @@ public class GoodsCategoryController extends BaseController {
|
|||||||
v.setGoodsSpecValue(JSONUtil.parseObject(spec.getSpecValue(), Object.class));
|
v.setGoodsSpecValue(JSONUtil.parseObject(spec.getSpecValue(), Object.class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
BigDecimal originPrice = v.getPrice();
|
||||||
|
v.setPrice(v.getSalePrice());
|
||||||
|
if (getLoginUser().getGradeId().equals(33)) {
|
||||||
|
if (v.getDealerGift()) v.setShowGift(true);
|
||||||
|
v.setPrice(v.getDealerPrice());
|
||||||
|
}
|
||||||
|
// 会员店
|
||||||
|
if (getLoginUser().getGradeId().equals(31)) {
|
||||||
|
v.setPrice(originPrice);
|
||||||
|
if (v.getPriceGift()) v.setShowGift(true);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
d.setGoods(collectGoods.get(d.getCategoryId()));
|
d.setGoods(collectGoods.get(d.getCategoryId()));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -86,10 +87,13 @@ public class GoodsController extends BaseController {
|
|||||||
// 整理商品价格
|
// 整理商品价格
|
||||||
final User loginUser = getLoginUser();
|
final User loginUser = getLoginUser();
|
||||||
if (loginUser != null) {
|
if (loginUser != null) {
|
||||||
|
BigDecimal originPrice = goods.getPrice();
|
||||||
|
goods.setPrice(goods.getSalePrice());
|
||||||
if (loginUser.getGradeId().equals(33)) {
|
if (loginUser.getGradeId().equals(33)) {
|
||||||
goods.setPrice(goods.getDealerPrice());
|
goods.setPrice(goods.getDealerPrice());
|
||||||
}
|
}
|
||||||
if (loginUser.getGradeId().equals(0)) {
|
if (loginUser.getGradeId().equals(0)) {
|
||||||
|
goods.setPrice(originPrice);
|
||||||
goods.setPrice(goods.getSalePrice());
|
goods.setPrice(goods.getSalePrice());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.gxwebsoft.shop.controller;
|
package com.gxwebsoft.shop.controller;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.gxwebsoft.common.core.security.JwtUtil;
|
import com.gxwebsoft.common.core.security.JwtUtil;
|
||||||
import com.gxwebsoft.common.core.utils.RequestUtil;
|
import com.gxwebsoft.common.core.utils.RequestUtil;
|
||||||
@@ -96,18 +97,19 @@ public class MerchantApplyController extends BaseController {
|
|||||||
@ApiOperation("修改商户入驻申请")
|
@ApiOperation("修改商户入驻申请")
|
||||||
@PutMapping()
|
@PutMapping()
|
||||||
public ApiResult<?> update(@RequestBody MerchantApply merchantApply, HttpServletRequest request) {
|
public ApiResult<?> update(@RequestBody MerchantApply merchantApply, HttpServletRequest request) {
|
||||||
|
MerchantApply merchantApply1 = merchantApplyService.getByIdRel(merchantApply.getApplyId());
|
||||||
if (merchantApply.getStatus().equals(1)) {
|
if (merchantApply.getStatus().equals(1)) {
|
||||||
// TODO 审核通过则创建商户
|
// TODO 审核通过则创建商户
|
||||||
final Merchant one = merchantService.getOne(new LambdaQueryWrapper<Merchant>().eq(Merchant::getPhone, merchantApply.getPhone()).last("limit 1"));
|
final Merchant one = merchantService.getOne(new LambdaQueryWrapper<Merchant>().eq(Merchant::getPhone, merchantApply1.getPhone()).last("limit 1"));
|
||||||
final MerchantAccount merchantAccount = new MerchantAccount();
|
final MerchantAccount merchantAccount = new MerchantAccount();
|
||||||
BeanUtils.copyProperties(merchantApply, merchantAccount);
|
BeanUtils.copyProperties(merchantApply1, merchantAccount);
|
||||||
final User user = new User();
|
final User user = new User();
|
||||||
final User loingUser = new User();
|
final User loingUser = new User();
|
||||||
loingUser.setUserId(merchantAccount.getUserId());
|
loingUser.setUserId(merchantAccount.getUserId());
|
||||||
|
|
||||||
Integer gradeId = 30;
|
Integer gradeId = 30;
|
||||||
if (ObjectUtil.isNotEmpty(one)) {
|
if (ObjectUtil.isNotEmpty(one)) {
|
||||||
BeanUtils.copyProperties(merchantApply, one);
|
BeanUtils.copyProperties(merchantApply1, one);
|
||||||
one.setStatus(0);
|
one.setStatus(0);
|
||||||
merchantService.updateById(one);
|
merchantService.updateById(one);
|
||||||
user.setMerchantId(one.getMerchantId());
|
user.setMerchantId(one.getMerchantId());
|
||||||
@@ -122,8 +124,11 @@ public class MerchantApplyController extends BaseController {
|
|||||||
loingUser.setGradeName(one.getShopType());
|
loingUser.setGradeName(one.getShopType());
|
||||||
} else {
|
} else {
|
||||||
final Merchant merchant = new Merchant();
|
final Merchant merchant = new Merchant();
|
||||||
BeanUtils.copyProperties(merchantApply, merchant);
|
BeanUtils.copyProperties(merchantApply1, merchant);
|
||||||
merchant.setStatus(0);
|
merchant.setStatus(0);
|
||||||
|
List<String> lngNLat = StrUtil.split(merchantApply1.getLngAndLat(), ",");
|
||||||
|
merchant.setLng(lngNLat.get(0));
|
||||||
|
merchant.setLat(lngNLat.get(1));
|
||||||
merchantService.save(merchant);
|
merchantService.save(merchant);
|
||||||
user.setMerchantId(merchant.getMerchantId());
|
user.setMerchantId(merchant.getMerchantId());
|
||||||
user.setMerchantName(merchant.getMerchantName());
|
user.setMerchantName(merchant.getMerchantName());
|
||||||
@@ -142,25 +147,25 @@ public class MerchantApplyController extends BaseController {
|
|||||||
// TODO 创建商户账号
|
// TODO 创建商户账号
|
||||||
requestUtil.setAccessToken(JwtUtil.getAccessToken(request));
|
requestUtil.setAccessToken(JwtUtil.getAccessToken(request));
|
||||||
requestUtil.setTenantId(getTenantId().toString());
|
requestUtil.setTenantId(getTenantId().toString());
|
||||||
merchantAccount.setRealName(merchantApply.getRealName());
|
merchantAccount.setRealName(merchantApply1.getRealName());
|
||||||
requestUtil.saveUserByPhone(merchantAccount);
|
requestUtil.saveUserByPhone(merchantAccount);
|
||||||
requestUtil.updateUser(loingUser);
|
requestUtil.updateUser(loingUser);
|
||||||
// TODO 更新用户表的商户ID
|
// TODO 更新用户表的商户ID
|
||||||
requestUtil.updateUserMerchantId(user);
|
requestUtil.updateUserMerchantId(user);
|
||||||
|
|
||||||
DealerUser check = dealerUserService.getByUserId(merchantApply.getUserId());
|
DealerUser check = dealerUserService.getByUserId(merchantApply1.getUserId());
|
||||||
if (check == null) {
|
if (check == null) {
|
||||||
DealerUser dealerUser = new DealerUser();
|
DealerUser dealerUser = new DealerUser();
|
||||||
dealerUser.setUserId(merchantApply.getUserId());
|
dealerUser.setUserId(merchantApply1.getUserId());
|
||||||
dealerUser.setRealName(merchantApply.getRealName());
|
dealerUser.setRealName(merchantApply1.getRealName());
|
||||||
dealerUser.setMobile(merchantApply.getPhone());
|
dealerUser.setMobile(merchantApply1.getPhone());
|
||||||
dealerUserService.save(dealerUser);
|
dealerUserService.save(dealerUser);
|
||||||
User parentUser = requestUtil.getParent(merchantApply.getUserId());
|
User parentUser = requestUtil.getParent(merchantApply1.getUserId());
|
||||||
if (parentUser != null) {
|
if (parentUser != null) {
|
||||||
dealerUser.setRefereeId(parentUser.getUserId());
|
dealerUser.setRefereeId(parentUser.getUserId());
|
||||||
if (merchantApply.getRefereeId() != null) {
|
if (merchantApply1.getRefereeId() != null) {
|
||||||
// 上级
|
// 上级
|
||||||
DealerUser dealerUser1 = dealerUserService.getByUserId(merchantApply.getRefereeId());
|
DealerUser dealerUser1 = dealerUserService.getByUserId(merchantApply1.getRefereeId());
|
||||||
dealerUser1.setFirstNum(dealerUser1.getFirstNum() + 1);
|
dealerUser1.setFirstNum(dealerUser1.getFirstNum() + 1);
|
||||||
dealerUserService.updateById(dealerUser1);
|
dealerUserService.updateById(dealerUser1);
|
||||||
|
|
||||||
@@ -176,7 +181,7 @@ public class MerchantApplyController extends BaseController {
|
|||||||
}
|
}
|
||||||
// TODO 驳回
|
// TODO 驳回
|
||||||
|
|
||||||
if (merchantApplyService.updateById(merchantApply)) {
|
if (merchantApplyService.updateById(merchantApply1)) {
|
||||||
return success("修改成功");
|
return success("修改成功");
|
||||||
}
|
}
|
||||||
return fail("修改失败");
|
return fail("修改失败");
|
||||||
|
|||||||
@@ -374,10 +374,22 @@ public class OrderController extends BaseController {
|
|||||||
if (order1.getOrderStatus().equals(1)) return fail("订单已完成");
|
if (order1.getOrderStatus().equals(1)) return fail("订单已完成");
|
||||||
order1.setOrderStatus(1);
|
order1.setOrderStatus(1);
|
||||||
orderService.updateById(order1);
|
orderService.updateById(order1);
|
||||||
orderService.settle(access_token, getTenantId().toString(), order1);
|
orderService.doSettle(order1.getOrderId());
|
||||||
return success("提货成功");
|
return success("提货成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("商城发货订单确认收货")
|
||||||
|
@PostMapping("/delivery-confirm")
|
||||||
|
public ApiResult<?> deliveryConfirm(@RequestBody Order order, HttpServletRequest request) {
|
||||||
|
String access_token = JwtUtil.getAccessToken(request);
|
||||||
|
Order order1 = orderService.getById(order.getOrderId());
|
||||||
|
if (order1.getOrderStatus().equals(1)) return fail("订单已完成");
|
||||||
|
order1.setOrderStatus(1);
|
||||||
|
orderService.updateById(order1);
|
||||||
|
orderService.doSettle(order1.getOrderId());
|
||||||
|
return success("确认收货成功");
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation("外卖确认收货")
|
@ApiOperation("外卖确认收货")
|
||||||
@PostMapping("/out-take-confirm")
|
@PostMapping("/out-take-confirm")
|
||||||
public ApiResult<?> outTakeConfirm(@RequestBody Order order, HttpServletRequest request) {
|
public ApiResult<?> outTakeConfirm(@RequestBody Order order, HttpServletRequest request) {
|
||||||
@@ -387,7 +399,7 @@ public class OrderController extends BaseController {
|
|||||||
order1.setOrderStatus(1);
|
order1.setOrderStatus(1);
|
||||||
order1.setHasTakeGift(order.getHasTakeGift());
|
order1.setHasTakeGift(order.getHasTakeGift());
|
||||||
orderService.updateById(order1);
|
orderService.updateById(order1);
|
||||||
orderService.settle(access_token, getTenantId().toString(), order1);
|
orderService.doSettle(order1.getOrderId());
|
||||||
return success("外卖确认收货");
|
return success("外卖确认收货");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,21 @@
|
|||||||
package com.gxwebsoft.shop.controller;
|
package com.gxwebsoft.shop.controller;
|
||||||
|
|
||||||
|
import cn.binarywang.wx.miniapp.api.WxMaOrderShippingService;
|
||||||
|
import cn.binarywang.wx.miniapp.api.WxMaService;
|
||||||
|
import cn.binarywang.wx.miniapp.api.impl.WxMaOrderShippingServiceImpl;
|
||||||
|
import cn.binarywang.wx.miniapp.bean.shop.request.shipping.*;
|
||||||
|
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaOrderShippingInfoBaseResponse;
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.http.HttpUtil;
|
import cn.hutool.http.HttpUtil;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.gxwebsoft.common.core.security.JwtUtil;
|
import com.gxwebsoft.common.core.security.JwtUtil;
|
||||||
import com.gxwebsoft.common.core.utils.JSONUtil;
|
import com.gxwebsoft.common.core.utils.JSONUtil;
|
||||||
|
import com.gxwebsoft.common.core.utils.RequestUtil;
|
||||||
import com.gxwebsoft.common.core.web.BaseController;
|
import com.gxwebsoft.common.core.web.BaseController;
|
||||||
|
import com.gxwebsoft.shop.config.WxMaProperties;
|
||||||
import com.gxwebsoft.shop.entity.*;
|
import com.gxwebsoft.shop.entity.*;
|
||||||
import com.gxwebsoft.shop.param.GoodsStockInMerchantParam;
|
import com.gxwebsoft.shop.param.GoodsStockInMerchantParam;
|
||||||
import com.gxwebsoft.shop.service.*;
|
import com.gxwebsoft.shop.service.*;
|
||||||
@@ -22,16 +32,17 @@ import com.kuaidi100.sdk.response.BOrderResp;
|
|||||||
import com.kuaidi100.sdk.response.SubscribeResp;
|
import com.kuaidi100.sdk.response.SubscribeResp;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import static com.gxwebsoft.shop.consts.OrderPayType.PAY_TYPE_FRIEND;
|
||||||
import java.util.Map;
|
import static com.gxwebsoft.shop.consts.OrderPayType.PAY_TYPE_WECHAT;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发货单控制器
|
* 发货单控制器
|
||||||
@@ -57,6 +68,13 @@ public class OrderDeliveryController extends BaseController {
|
|||||||
private GoodsStockInMerchantService goodsStockInMerchantService;
|
private GoodsStockInMerchantService goodsStockInMerchantService;
|
||||||
@Resource
|
@Resource
|
||||||
private MerchantService merchantService;
|
private MerchantService merchantService;
|
||||||
|
@Resource
|
||||||
|
private WxMaProperties wxMaProperties;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private WeChatController weChatController;
|
||||||
|
@Autowired
|
||||||
|
private RequestUtil requestUtil;
|
||||||
|
|
||||||
@ApiOperation("分页查询发货单")
|
@ApiOperation("分页查询发货单")
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@@ -115,6 +133,7 @@ public class OrderDeliveryController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
merchant = merchantService.getById(goodsStockInMerchantList.get(0).getMerchantId());
|
merchant = merchantService.getById(goodsStockInMerchantList.get(0).getMerchantId());
|
||||||
|
// merchant = merchantService.getById(3095);
|
||||||
if (merchant != null) {
|
if (merchant != null) {
|
||||||
// 商家发货
|
// 商家发货
|
||||||
Express express = expressService.getByIdRel(orderDelivery.getExpressId());
|
Express express = expressService.getByIdRel(orderDelivery.getExpressId());
|
||||||
@@ -142,8 +161,47 @@ public class OrderDeliveryController extends BaseController {
|
|||||||
order.setDeliveryStatus(20);
|
order.setDeliveryStatus(20);
|
||||||
order.setDeliveryTime(DateUtil.date());
|
order.setDeliveryTime(DateUtil.date());
|
||||||
orderService.updateById(order);
|
orderService.updateById(order);
|
||||||
// 结算
|
|
||||||
orderService.settle(access_token, tenantId, order);
|
if (order.getPayType().equals(PAY_TYPE_WECHAT) || (order.getPayType().equals(PAY_TYPE_FRIEND) && order.getFriendPayType().equals(PAY_TYPE_WECHAT))) {
|
||||||
|
User user = requestUtil.getByUserId(order.getPayUserId());
|
||||||
|
// 上传小程序发货信息
|
||||||
|
WxMaOrderShippingInfoUploadRequest uploadRequest = new WxMaOrderShippingInfoUploadRequest();
|
||||||
|
uploadRequest.setLogisticsType(1);
|
||||||
|
uploadRequest.setDeliveryMode(1);
|
||||||
|
|
||||||
|
OrderKeyBean orderKeyBean = new OrderKeyBean();
|
||||||
|
orderKeyBean.setOrderNumberType(2);
|
||||||
|
orderKeyBean.setTransactionId(order.getTransactionId());
|
||||||
|
uploadRequest.setOrderKey(orderKeyBean);
|
||||||
|
|
||||||
|
uploadRequest.setOrderKey(orderKeyBean);
|
||||||
|
|
||||||
|
List<ShippingListBean> shippingList = new ArrayList<>();
|
||||||
|
ShippingListBean shippingListBean = new ShippingListBean();
|
||||||
|
shippingListBean.setTrackingNo((String) bOrderData.get("kuaidinum"));
|
||||||
|
shippingListBean.setExpressCompany(express.getWxCode());
|
||||||
|
ContactBean contactBean = new ContactBean();
|
||||||
|
contactBean.setReceiverContact(user.getMobile());
|
||||||
|
shippingListBean.setContact(contactBean);
|
||||||
|
shippingList.add(shippingListBean);
|
||||||
|
uploadRequest.setShippingList(shippingList);
|
||||||
|
|
||||||
|
String itemDesc = orderGoodsList.get(0).getGoods().getGoodsName();
|
||||||
|
if (orderGoodsList.size() > 1) itemDesc += "等" + orderGoodsList.size() + "件商品";
|
||||||
|
shippingListBean.setItemDesc(itemDesc);
|
||||||
|
|
||||||
|
uploadRequest.setUploadTime(new DateTime().toString(DatePattern.UTC_WITH_ZONE_OFFSET_PATTERN));
|
||||||
|
|
||||||
|
PayerBean payerBean = new PayerBean();
|
||||||
|
|
||||||
|
payerBean.setOpenid(user.getOpenid());
|
||||||
|
uploadRequest.setPayer(payerBean);
|
||||||
|
|
||||||
|
WxMaService wxMaService = weChatController.wxMaService();
|
||||||
|
WxMaOrderShippingService wxMaOrderShippingService = new WxMaOrderShippingServiceImpl(wxMaService);
|
||||||
|
WxMaOrderShippingInfoBaseResponse response = wxMaOrderShippingService.upload(uploadRequest);
|
||||||
|
System.out.println("response" + response);
|
||||||
|
}
|
||||||
return success("操作成功");
|
return success("操作成功");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ public class WxPayNotifyNbgController extends BaseController {
|
|||||||
// TODO 4. 清除购物车
|
// TODO 4. 清除购物车
|
||||||
final boolean remove = cartService.remove(new LambdaQueryWrapper<Cart>().eq(Cart::getUserId, order.getUserId()).eq(Cart::getIsNew, true));
|
final boolean remove = cartService.remove(new LambdaQueryWrapper<Cart>().eq(Cart::getUserId, order.getUserId()).eq(Cart::getIsNew, true));
|
||||||
System.out.println("remove = " + remove);
|
System.out.println("remove = " + remove);
|
||||||
|
orderService.settle(order);
|
||||||
|
|
||||||
// TODO 5.累计会员积分
|
// TODO 5.累计会员积分
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.gxwebsoft.shop.entity;
|
package com.gxwebsoft.shop.entity;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
@@ -41,11 +43,14 @@ public class DealerCapital implements Serializable {
|
|||||||
private BigDecimal money;
|
private BigDecimal money;
|
||||||
|
|
||||||
@ApiModelProperty(value = "描述")
|
@ApiModelProperty(value = "描述")
|
||||||
|
@TableField(value = "`describe`")
|
||||||
private String describe;
|
private String describe;
|
||||||
|
|
||||||
@ApiModelProperty(value = "对方用户ID")
|
@ApiModelProperty(value = "对方用户ID")
|
||||||
private Integer toUserId;
|
private Integer toUserId;
|
||||||
|
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
@ApiModelProperty(value = "商城ID")
|
@ApiModelProperty(value = "商城ID")
|
||||||
private Integer tenantId;
|
private Integer tenantId;
|
||||||
|
|
||||||
@@ -55,4 +60,7 @@ public class DealerCapital implements Serializable {
|
|||||||
@ApiModelProperty(value = "修改时间")
|
@ApiModelProperty(value = "修改时间")
|
||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Order order;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,9 @@ public class Express implements Serializable {
|
|||||||
@ApiModelProperty(value = "物流公司名称")
|
@ApiModelProperty(value = "物流公司名称")
|
||||||
private String expressName;
|
private String expressName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "物流公司编码 (微信)")
|
||||||
|
private String wxCode;
|
||||||
|
|
||||||
@ApiModelProperty(value = "物流公司编码 (快递100)")
|
@ApiModelProperty(value = "物流公司编码 (快递100)")
|
||||||
private String kuaidi100Code;
|
private String kuaidi100Code;
|
||||||
|
|
||||||
|
|||||||
@@ -80,6 +80,15 @@ public class Goods implements Serializable {
|
|||||||
@ApiModelProperty(value = "进货价格")
|
@ApiModelProperty(value = "进货价格")
|
||||||
private BigDecimal price;
|
private BigDecimal price;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "会员店直推分佣")
|
||||||
|
private BigDecimal memberStoreCommission;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "供应商直推分佣")
|
||||||
|
private BigDecimal supplierCommission;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "合作伙伴直推分佣")
|
||||||
|
private BigDecimal coopCommission;
|
||||||
|
|
||||||
@ApiModelProperty(value = "销售价格")
|
@ApiModelProperty(value = "销售价格")
|
||||||
private BigDecimal salePrice;
|
private BigDecimal salePrice;
|
||||||
|
|
||||||
@@ -116,6 +125,9 @@ public class Goods implements Serializable {
|
|||||||
@ApiModelProperty(value = "赠品数(会员店)")
|
@ApiModelProperty(value = "赠品数(会员店)")
|
||||||
private Integer priceGiftNum;
|
private Integer priceGiftNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "赠品名(会员店)")
|
||||||
|
private String priceGiftName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "赠品数(经销商)")
|
@ApiModelProperty(value = "赠品数(经销商)")
|
||||||
private Integer dealerGiftNum;
|
private Integer dealerGiftNum;
|
||||||
|
|
||||||
@@ -140,6 +152,8 @@ public class Goods implements Serializable {
|
|||||||
@ApiModelProperty(value = "商户ID")
|
@ApiModelProperty(value = "商户ID")
|
||||||
private Integer merchantId;
|
private Integer merchantId;
|
||||||
|
|
||||||
|
private Integer canExpress;
|
||||||
|
|
||||||
@ApiModelProperty(value = "商户名称")
|
@ApiModelProperty(value = "商户名称")
|
||||||
private String merchantName;
|
private String merchantName;
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,8 @@ public class Merchant implements Serializable {
|
|||||||
@ApiModelProperty(value = "商户图标")
|
@ApiModelProperty(value = "商户图标")
|
||||||
private String image;
|
private String image;
|
||||||
|
|
||||||
|
private String swiper;
|
||||||
|
|
||||||
@ApiModelProperty(value = "商户手机号")
|
@ApiModelProperty(value = "商户手机号")
|
||||||
private String phone;
|
private String phone;
|
||||||
|
|
||||||
|
|||||||
@@ -63,12 +63,22 @@ public class MerchantApply implements Serializable {
|
|||||||
@ApiModelProperty(value = "商户分类")
|
@ApiModelProperty(value = "商户分类")
|
||||||
private String category;
|
private String category;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "经营分类ID")
|
||||||
|
private Integer merchantCategoryId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "经营分类ID")
|
||||||
|
private String merchantCategoryTitle;
|
||||||
|
|
||||||
@ApiModelProperty(value = "手续费")
|
@ApiModelProperty(value = "手续费")
|
||||||
private BigDecimal commission;
|
private BigDecimal commission;
|
||||||
|
|
||||||
@ApiModelProperty(value = "关键字")
|
@ApiModelProperty(value = "关键字")
|
||||||
private String keywords;
|
private String keywords;
|
||||||
|
|
||||||
|
private String startTime;
|
||||||
|
|
||||||
|
private String endTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "营业执照")
|
@ApiModelProperty(value = "营业执照")
|
||||||
private String yyzz;
|
private String yyzz;
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ public class UserBalanceLog implements Serializable {
|
|||||||
@ApiModelProperty(value = "用户ID")
|
@ApiModelProperty(value = "用户ID")
|
||||||
private Integer userId;
|
private Integer userId;
|
||||||
|
|
||||||
|
private Integer orderId;
|
||||||
|
|
||||||
@ApiModelProperty(value = "余额变动场景(10用户充值 20用户消费 30管理员操作 40订单退款)")
|
@ApiModelProperty(value = "余额变动场景(10用户充值 20用户消费 30管理员操作 40订单退款)")
|
||||||
private Integer scene;
|
private Integer scene;
|
||||||
|
|
||||||
|
|||||||
@@ -94,4 +94,7 @@ public class CartParam extends BaseParam {
|
|||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Boolean withMerchantInfo;
|
private Boolean withMerchantInfo;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Integer orderId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,4 +39,5 @@ public interface DealerCapitalService extends IService<DealerCapital> {
|
|||||||
*/
|
*/
|
||||||
DealerCapital getByIdRel(Integer id);
|
DealerCapital getByIdRel(Integer id);
|
||||||
|
|
||||||
|
List<DealerCapital> unSettleList(Integer orderId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,11 @@ public interface OrderService extends IService<Order> {
|
|||||||
|
|
||||||
Boolean payByBalance(Order order);
|
Boolean payByBalance(Order order);
|
||||||
|
|
||||||
|
void settle(Order order);
|
||||||
|
|
||||||
void settle(String token, String tenantId, Order order);
|
void settle(String token, String tenantId, Order order);
|
||||||
|
|
||||||
|
void doSettle(Integer orderId);
|
||||||
|
|
||||||
// String payByWxNative(Order order);
|
// String payByWxNative(Order order);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,4 +39,5 @@ public interface UserBalanceLogService extends IService<UserBalanceLog> {
|
|||||||
*/
|
*/
|
||||||
UserBalanceLog getByIdRel(Integer logId);
|
UserBalanceLog getByIdRel(Integer logId);
|
||||||
|
|
||||||
|
List<UserBalanceLog> unSettleList(Integer orderId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.gxwebsoft.shop.service.impl;
|
package com.gxwebsoft.shop.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.gxwebsoft.shop.mapper.DealerCapitalMapper;
|
import com.gxwebsoft.shop.mapper.DealerCapitalMapper;
|
||||||
import com.gxwebsoft.shop.service.DealerCapitalService;
|
import com.gxwebsoft.shop.service.DealerCapitalService;
|
||||||
@@ -44,4 +45,13 @@ public class DealerCapitalServiceImpl extends ServiceImpl<DealerCapitalMapper, D
|
|||||||
return param.getOne(baseMapper.selectListRel(param));
|
return param.getOne(baseMapper.selectListRel(param));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DealerCapital> unSettleList(Integer orderId) {
|
||||||
|
return list(
|
||||||
|
new LambdaQueryWrapper<DealerCapital>()
|
||||||
|
.eq(DealerCapital::getOrderId, orderId)
|
||||||
|
.eq(DealerCapital::getStatus, 0)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import com.gxwebsoft.cms.entity.Website;
|
|||||||
import com.gxwebsoft.cms.entity.WebsiteField;
|
import com.gxwebsoft.cms.entity.WebsiteField;
|
||||||
import com.gxwebsoft.common.core.config.ConfigProperties;
|
import com.gxwebsoft.common.core.config.ConfigProperties;
|
||||||
import com.gxwebsoft.common.core.exception.BusinessException;
|
import com.gxwebsoft.common.core.exception.BusinessException;
|
||||||
import com.gxwebsoft.common.core.security.JwtUtil;
|
|
||||||
import com.gxwebsoft.common.core.utils.RedisUtil;
|
import com.gxwebsoft.common.core.utils.RedisUtil;
|
||||||
import com.gxwebsoft.common.core.utils.RequestUtil;
|
import com.gxwebsoft.common.core.utils.RequestUtil;
|
||||||
import com.gxwebsoft.common.core.web.ApiResult;
|
import com.gxwebsoft.common.core.web.ApiResult;
|
||||||
@@ -85,6 +84,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
private GoodsIncomeConfigService goodsIncomeConfigService;
|
private GoodsIncomeConfigService goodsIncomeConfigService;
|
||||||
@Resource
|
@Resource
|
||||||
private UserBalanceLogService userBalanceLogService;
|
private UserBalanceLogService userBalanceLogService;
|
||||||
|
@Resource
|
||||||
|
private DealerCapitalService dealerCapitalService;
|
||||||
|
|
||||||
|
|
||||||
// public static String privateKeyPath = "/Users/gxwebsoft/JAVA/com.gxwebsoft.modules/src/main/resources/cert/apiclient_key.pem";
|
// public static String privateKeyPath = "/Users/gxwebsoft/JAVA/com.gxwebsoft.modules/src/main/resources/cert/apiclient_key.pem";
|
||||||
@@ -326,7 +327,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 发起网络请求(更新余额接口)
|
// 发起网络请求(更新余额接口)
|
||||||
final RequestUtil requestUtil = new RequestUtil();
|
|
||||||
requestUtil.setAccessToken(order.getAccessToken());
|
requestUtil.setAccessToken(order.getAccessToken());
|
||||||
requestUtil.setTenantId(order.getTenantId().toString());
|
requestUtil.setTenantId(order.getTenantId().toString());
|
||||||
String api = "/system/user/updateUserBalance"; // 更新余额接口
|
String api = "/system/user/updateUserBalance"; // 更新余额接口
|
||||||
@@ -363,146 +363,258 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void settle(Order order) {
|
||||||
|
settle(null, "10158", order);
|
||||||
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* 结算
|
* 结算
|
||||||
* @param order
|
* @param order
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void settle(String token, String tenantId, Order order) {
|
public void settle(String token, String tenantId, Order order) {
|
||||||
|
System.out.println("here settle");
|
||||||
List<OrderGoods> orderGoodsList = orderGoodsService.listByOrderId(order.getOrderId());
|
List<OrderGoods> orderGoodsList = orderGoodsService.listByOrderId(order.getOrderId());
|
||||||
RequestUtil requestUtil = new RequestUtil();
|
if (token != null) requestUtil.setAccessToken(token);
|
||||||
requestUtil.setAccessToken(token);
|
|
||||||
requestUtil.setTenantId(tenantId);
|
requestUtil.setTenantId(tenantId);
|
||||||
String balanceApi = "/system/user/updateUserBalance";
|
// System.out.println(parentRes);
|
||||||
if (order.getType().equals(0)) {
|
if (order.getType().equals(0)) {
|
||||||
User parentUser = requestUtil.getParent(order.getUserId());
|
User parentUser = requestUtil.getParent(order.getUserId());
|
||||||
// System.out.println(parentRes);
|
|
||||||
// 上级收入
|
// 上级收入
|
||||||
|
System.out.println("parentUser = " + (parentUser != null));
|
||||||
if (parentUser != null) {
|
if (parentUser != null) {
|
||||||
// User parentUser = requestUtil.getUserByPhone(parentRes);
|
// User parentUser = requestUtil.getUserByPhone(parentRes);
|
||||||
Merchant parentMerchant = merchantService.getByUserId(parentUser.getUserId());
|
Merchant parentMerchant = merchantService.getByUserId(parentUser.getUserId());
|
||||||
|
System.out.println("parentMerchant = " + (parentMerchant != null));
|
||||||
if (parentMerchant != null) {
|
if (parentMerchant != null) {
|
||||||
for (OrderGoods orderGoods : orderGoodsList) {
|
for (OrderGoods orderGoods : orderGoodsList) {
|
||||||
Goods goods = orderGoods.getGoods();
|
Goods goods = orderGoods.getGoods();
|
||||||
GoodsIncomeConfig goodsIncomeConfig = goodsIncomeConfigService.check(goods.getGoodsId(), orderGoods.getSkuId(), parentMerchant.getShopType());
|
System.out.println("goods = " + (goods != null));
|
||||||
if (goodsIncomeConfig != null) {
|
if (goods != null) {
|
||||||
BigDecimal rate = goodsIncomeConfig.getRate().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
|
// 有单独设置优先使用
|
||||||
BigDecimal amountTotal = orderGoods.getPrice().multiply(BigDecimal.valueOf(orderGoods.getTotalNum()));
|
BigDecimal parentCommission = null;
|
||||||
BigDecimal incomeTotal = amountTotal.multiply(rate);
|
switch (parentMerchant.getShopType()) {
|
||||||
BigDecimal newBalance = parentUser.getBalance().add(incomeTotal);
|
case "会员店" -> parentCommission = goods.getMemberStoreCommission();
|
||||||
parentUser.setBalance(newBalance);
|
case "供应商" -> parentCommission = goods.getSupplierCommission();
|
||||||
requestUtil.updateUserBalance(balanceApi, parentUser);
|
case "合作伙伴" -> parentCommission = goods.getCoopCommission();
|
||||||
|
}
|
||||||
|
System.out.println("parentCommission = " + (parentCommission != null));
|
||||||
|
if (parentCommission != null) {
|
||||||
|
BigDecimal incomeTotal = parentCommission.multiply(BigDecimal.valueOf(orderGoods.getTotalNum()));
|
||||||
|
BigDecimal newBalance = parentUser.getBalance().add(incomeTotal);
|
||||||
|
// parentUser.setBalance(newBalance);
|
||||||
|
// requestUtil.updateUserBalanceWithoutLogin(parentUser);
|
||||||
|
userBalanceLogService.save(new UserBalanceLog() {{
|
||||||
|
setUserId(parentUser.getUserId());
|
||||||
|
setScene(BalanceScene.BALANCE_SCENE_DIRECT_INCOME);
|
||||||
|
setMoney(incomeTotal);
|
||||||
|
setBalance(newBalance);
|
||||||
|
setMerchantId(parentMerchant.getMerchantId());
|
||||||
|
setMerchantCode(parentMerchant.getMerchantCode());
|
||||||
|
setOrderId(order.getOrderId());
|
||||||
|
setTenantId(getTenantId());
|
||||||
|
}});
|
||||||
|
dealerCapitalService.save(new DealerCapital() {{
|
||||||
|
setUserId(parentUser.getUserId());
|
||||||
|
setFlowType(10);
|
||||||
|
setMoney(incomeTotal);
|
||||||
|
setOrderId(order.getOrderId());
|
||||||
|
setDescribe("发展佣金收入");
|
||||||
|
setTenantId(getTenantId());
|
||||||
|
}});
|
||||||
|
} else {
|
||||||
|
GoodsIncomeConfig goodsIncomeConfig = goodsIncomeConfigService.check(goods.getGoodsId(), orderGoods.getSkuId(), parentMerchant.getShopType());
|
||||||
|
System.out.println("goodsIncomeConfig = " + (goodsIncomeConfig != null));
|
||||||
|
if (goodsIncomeConfig != null) {
|
||||||
|
BigDecimal rate = goodsIncomeConfig.getRate().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
|
||||||
|
BigDecimal amountTotal = orderGoods.getPrice().multiply(BigDecimal.valueOf(orderGoods.getTotalNum()));
|
||||||
|
BigDecimal incomeTotal = amountTotal.multiply(rate).multiply(BigDecimal.valueOf(orderGoods.getTotalNum()));
|
||||||
|
BigDecimal newBalance = parentUser.getBalance().add(incomeTotal);
|
||||||
|
// parentUser.setBalance(newBalance);
|
||||||
|
// requestUtil.updateUserBalanceWithoutLogin(parentUser);
|
||||||
|
userBalanceLogService.save(new UserBalanceLog() {{
|
||||||
|
setUserId(parentUser.getUserId());
|
||||||
|
setScene(BalanceScene.BALANCE_SCENE_DIRECT_INCOME);
|
||||||
|
setMoney(incomeTotal);
|
||||||
|
setBalance(newBalance);
|
||||||
|
setMerchantId(parentMerchant.getMerchantId());
|
||||||
|
setMerchantCode(parentMerchant.getMerchantCode());
|
||||||
|
setOrderId(order.getOrderId());
|
||||||
|
setTenantId(getTenantId());
|
||||||
|
}});
|
||||||
|
dealerCapitalService.save(new DealerCapital() {{
|
||||||
|
setUserId(parentUser.getUserId());
|
||||||
|
setFlowType(10);
|
||||||
|
setMoney(incomeTotal);
|
||||||
|
setOrderId(order.getOrderId());
|
||||||
|
setDescribe("直推佣金收入");
|
||||||
|
setTenantId(getTenantId());
|
||||||
|
}});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 供应商收入
|
||||||
|
for (OrderGoods orderGoods : orderGoodsList) {
|
||||||
|
Goods goods = orderGoods.getGoods();
|
||||||
|
if (goods != null) {
|
||||||
|
Merchant supplier = merchantService.getById(goods.getSupplierMerchantId());
|
||||||
|
if (supplier != null) {
|
||||||
|
User supplierUser = requestUtil.getByUserIdWithoutLogin(supplier.getUserId());
|
||||||
|
if (supplierUser != null) {
|
||||||
|
BigDecimal incomeTotal = goods.getBuyingPrice().multiply(BigDecimal.valueOf(orderGoods.getTotalNum()));
|
||||||
|
BigDecimal newBalance = supplierUser.getBalance().add(incomeTotal);
|
||||||
|
// supplierUser.setBalance(newBalance);
|
||||||
|
// requestUtil.updateUserBalanceWithoutLogin(supplierUser);
|
||||||
userBalanceLogService.save(new UserBalanceLog() {{
|
userBalanceLogService.save(new UserBalanceLog() {{
|
||||||
setUserId(parentUser.getUserId());
|
setUserId(supplier.getUserId());
|
||||||
setScene(BalanceScene.BALANCE_SCENE_DIRECT_INCOME);
|
setScene(BalanceScene.BALANCE_SCENE_SUPPLIER);
|
||||||
setMoney(incomeTotal);
|
setMoney(incomeTotal);
|
||||||
setBalance(newBalance);
|
setBalance(newBalance);
|
||||||
setMerchantId(parentMerchant.getMerchantId());
|
setOrderId(order.getOrderId());
|
||||||
setMerchantCode(parentMerchant.getMerchantCode());
|
setMerchantId(supplier.getMerchantId());
|
||||||
setOrderNo(order.getOrderNo());
|
setMerchantCode(supplier.getMerchantCode());
|
||||||
|
setTenantId(getTenantId());
|
||||||
|
}});
|
||||||
|
dealerCapitalService.save(new DealerCapital() {{
|
||||||
|
setUserId(supplier.getUserId());
|
||||||
|
setFlowType(10);
|
||||||
|
setMoney(incomeTotal);
|
||||||
|
setOrderId(order.getOrderId());
|
||||||
|
setDescribe("供应商收入");
|
||||||
setTenantId(getTenantId());
|
setTenantId(getTenantId());
|
||||||
}});
|
}});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 供应商收入
|
|
||||||
for (OrderGoods orderGoods : orderGoodsList) {
|
|
||||||
Goods goods = orderGoods.getGoods();
|
|
||||||
Merchant supplier = merchantService.getById(goods.getSupplierMerchantId());
|
|
||||||
if (supplier != null) {
|
|
||||||
User supplierUser = requestUtil.getByUserId(supplier.getUserId());
|
|
||||||
BigDecimal incomeTotal = goods.getBuyingPrice().multiply(BigDecimal.valueOf(orderGoods.getTotalNum()));
|
|
||||||
BigDecimal newBalance = supplierUser.getBalance().add(incomeTotal);
|
|
||||||
supplierUser.setBalance(newBalance);
|
|
||||||
requestUtil.updateUserBalance(balanceApi, supplierUser);
|
|
||||||
userBalanceLogService.save(new UserBalanceLog() {{
|
|
||||||
setUserId(supplier.getUserId());
|
|
||||||
setScene(BalanceScene.BALANCE_SCENE_SUPPLIER);
|
|
||||||
setMoney(incomeTotal);
|
|
||||||
setBalance(newBalance);
|
|
||||||
setOrderNo(order.getOrderNo());
|
|
||||||
setMerchantId(supplier.getMerchantId());
|
|
||||||
setMerchantCode(supplier.getMerchantCode());
|
|
||||||
setTenantId(getTenantId());
|
|
||||||
}});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 发货门店/提货门店收入
|
// 发货门店/提货门店收入
|
||||||
Merchant merchant = null;
|
Merchant merchant = null;
|
||||||
if (order.getDeliveryType().equals(0)) merchant = merchantService.getById(order.getExpressMerchantId());
|
if (order.getDeliveryType().equals(0)) merchant = merchantService.getById(order.getExpressMerchantId());
|
||||||
else merchant = merchantService.getById(order.getSelfTakeMerchantId());
|
else merchant = merchantService.getById(order.getSelfTakeMerchantId());
|
||||||
|
System.out.println("merchant = " + (merchant != null));
|
||||||
|
|
||||||
if (merchant != null) {
|
if (merchant != null) {
|
||||||
BigDecimal diffAmountTotal = BigDecimal.ZERO;
|
BigDecimal diffAmountTotal = BigDecimal.ZERO;
|
||||||
BigDecimal buyAmountTotal = BigDecimal.ZERO;
|
BigDecimal buyAmountTotal = BigDecimal.ZERO;
|
||||||
User merchantUser = requestUtil.getByUserId(merchant.getUserId());
|
User merchantUser = requestUtil.getByUserIdWithoutLogin(merchant.getUserId());
|
||||||
for (OrderGoods orderGoods : orderGoodsList) {
|
for (OrderGoods orderGoods : orderGoodsList) {
|
||||||
Goods goods = orderGoods.getGoods();
|
Goods goods = orderGoods.getGoods();
|
||||||
BigDecimal merchantAmount = BigDecimal.ZERO;
|
if (goods != null) {
|
||||||
BigDecimal rate = BigDecimal.ZERO;
|
BigDecimal merchantAmount = BigDecimal.ZERO;
|
||||||
switch (merchant.getShopType()) {
|
BigDecimal rate = BigDecimal.ZERO;
|
||||||
case "会员店": {
|
switch (merchant.getShopType()) {
|
||||||
merchantAmount = goods.getMemberStorePrice();
|
case "会员店": {
|
||||||
rate = goods.getMemberStoreRate().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
|
merchantAmount = goods.getMemberStorePrice();
|
||||||
|
rate = goods.getMemberStoreRate().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "实体连锁店": {
|
||||||
|
merchantAmount = goods.getChainStorePrice();
|
||||||
|
rate = goods.getChainStoreRate().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "会员超市": {
|
||||||
|
merchantAmount = goods.getMemberMarketPrice();
|
||||||
|
rate = goods.getMemberMarketRate().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
BigDecimal amountDiff = orderGoods.getPrice().subtract(merchantAmount);
|
||||||
case "实体连锁店": {
|
buyAmountTotal = buyAmountTotal.add(merchantAmount.multiply(BigDecimal.valueOf(orderGoods.getTotalNum())));
|
||||||
merchantAmount = goods.getChainStorePrice();
|
if (amountDiff.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
rate = goods.getChainStoreRate().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
|
diffAmountTotal = diffAmountTotal.add(amountDiff.multiply(BigDecimal.valueOf(orderGoods.getTotalNum())));
|
||||||
|
diffAmountTotal = diffAmountTotal.multiply(rate);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case "会员超市": {
|
|
||||||
merchantAmount = goods.getMemberMarketPrice();
|
|
||||||
rate = goods.getMemberMarketRate().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
BigDecimal amountDiff = orderGoods.getPrice().subtract(merchantAmount);
|
|
||||||
buyAmountTotal = buyAmountTotal.add(merchantAmount.multiply(BigDecimal.valueOf(orderGoods.getTotalNum())));
|
|
||||||
if (amountDiff.compareTo(BigDecimal.ZERO) > 0) {
|
|
||||||
diffAmountTotal = diffAmountTotal.add(amountDiff.multiply(BigDecimal.valueOf(orderGoods.getTotalNum())));
|
|
||||||
diffAmountTotal = diffAmountTotal.multiply(rate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
System.out.println("diffAmountTotal = " + diffAmountTotal);
|
||||||
|
System.out.println("buyAmountTotal = " + buyAmountTotal);
|
||||||
BigDecimal incomeTotal = diffAmountTotal.add(buyAmountTotal);
|
BigDecimal incomeTotal = diffAmountTotal.add(buyAmountTotal);
|
||||||
|
if (incomeTotal.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
BigDecimal newBalance = merchantUser.getBalance().add(incomeTotal);
|
||||||
|
// merchantUser.setBalance(newBalance);
|
||||||
|
// requestUtil.updateUserBalanceWithoutLogin(merchantUser);
|
||||||
|
Merchant finalMerchant = merchant;
|
||||||
|
userBalanceLogService.save(new UserBalanceLog() {{
|
||||||
|
setUserId(merchantUser.getUserId());
|
||||||
|
setScene(BalanceScene.BALANCE_SCENE_DIFF);
|
||||||
|
setMoney(incomeTotal);
|
||||||
|
setBalance(newBalance);
|
||||||
|
setOrderId(order.getOrderId());
|
||||||
|
setMerchantId(finalMerchant.getMerchantId());
|
||||||
|
setMerchantCode(finalMerchant.getMerchantCode());
|
||||||
|
setTenantId(getTenantId());
|
||||||
|
}});
|
||||||
|
dealerCapitalService.save(new DealerCapital() {{
|
||||||
|
setUserId(merchantUser.getUserId());
|
||||||
|
setFlowType(10);
|
||||||
|
setMoney(incomeTotal);
|
||||||
|
setOrderId(order.getOrderId());
|
||||||
|
setDescribe("发货门店/提货门店收入");
|
||||||
|
setTenantId(getTenantId());
|
||||||
|
}});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (order.getType().equals(1)) {
|
||||||
|
// 外卖
|
||||||
|
Merchant merchant = merchantService.getById(order.getMerchantId());
|
||||||
|
User merchantUser = requestUtil.getByUserIdWithoutLogin(merchant.getUserId());
|
||||||
|
if (merchantUser != null) {
|
||||||
|
BigDecimal rate = BigDecimal.ONE.subtract(merchant.getCommission().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP));
|
||||||
|
BigDecimal amountTotal = order.getTotalPrice();
|
||||||
|
BigDecimal incomeTotal = amountTotal.multiply(rate);
|
||||||
BigDecimal newBalance = merchantUser.getBalance().add(incomeTotal);
|
BigDecimal newBalance = merchantUser.getBalance().add(incomeTotal);
|
||||||
merchantUser.setBalance(newBalance);
|
// merchantUser.setBalance(newBalance);
|
||||||
requestUtil.updateUserBalance(balanceApi, merchantUser);
|
// requestUtil.updateUserBalanceWithoutLogin(merchantUser);
|
||||||
Merchant finalMerchant = merchant;
|
|
||||||
userBalanceLogService.save(new UserBalanceLog() {{
|
userBalanceLogService.save(new UserBalanceLog() {{
|
||||||
setUserId(merchantUser.getUserId());
|
setUserId(merchantUser.getUserId());
|
||||||
setScene(BalanceScene.BALANCE_SCENE_DIFF);
|
setScene(BalanceScene.BALANCE_SCENE_OUT_TAKE);
|
||||||
setMoney(incomeTotal);
|
setMoney(incomeTotal);
|
||||||
setBalance(newBalance);
|
setBalance(newBalance);
|
||||||
setOrderNo(order.getOrderNo());
|
setMerchantId(merchant.getMerchantId());
|
||||||
setMerchantId(finalMerchant.getMerchantId());
|
setMerchantCode(merchant.getMerchantCode());
|
||||||
setMerchantCode(finalMerchant.getMerchantCode());
|
setOrderId(order.getOrderId());
|
||||||
|
setTenantId(getTenantId());
|
||||||
|
}});
|
||||||
|
dealerCapitalService.save(new DealerCapital() {{
|
||||||
|
setUserId(merchantUser.getUserId());
|
||||||
|
setFlowType(10);
|
||||||
|
setMoney(incomeTotal);
|
||||||
|
setOrderId(order.getOrderId());
|
||||||
|
setDescribe("门店外卖收入");
|
||||||
setTenantId(getTenantId());
|
setTenantId(getTenantId());
|
||||||
}});
|
}});
|
||||||
}
|
}
|
||||||
} else if (order.getPayType().equals(1)) {
|
}
|
||||||
// 外卖
|
}
|
||||||
Merchant merchant = merchantService.getById(order.getMerchantId());
|
|
||||||
User merchantUser = requestUtil.getByUserId(merchant.getUserId());
|
|
||||||
|
|
||||||
BigDecimal rate = BigDecimal.ONE.subtract(merchant.getCommission().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP));
|
|
||||||
BigDecimal amountTotal = order.getTotalPrice();
|
|
||||||
BigDecimal incomeTotal = amountTotal.multiply(rate);
|
|
||||||
BigDecimal newBalance = merchantUser.getBalance().add(incomeTotal);
|
|
||||||
merchantUser.setBalance(newBalance);
|
|
||||||
requestUtil.updateUserBalance(balanceApi, merchantUser);
|
|
||||||
userBalanceLogService.save(new UserBalanceLog() {{
|
|
||||||
setUserId(merchantUser.getUserId());
|
|
||||||
setScene(BalanceScene.BALANCE_SCENE_OUT_TAKE);
|
|
||||||
setMoney(incomeTotal);
|
|
||||||
setBalance(newBalance);
|
|
||||||
setMerchantId(merchant.getMerchantId());
|
|
||||||
setMerchantCode(merchant.getMerchantCode());
|
|
||||||
setOrderNo(order.getOrderNo());
|
|
||||||
setTenantId(getTenantId());
|
|
||||||
}});
|
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 实际结算
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doSettle(Integer orderId) {
|
||||||
|
List<DealerCapital> dealerCapitalList = dealerCapitalService.unSettleList(orderId);
|
||||||
|
List<UserBalanceLog> userBalanceLogList = userBalanceLogService.unSettleList(orderId);
|
||||||
|
if (!dealerCapitalList.isEmpty()) {
|
||||||
|
requestUtil.setTenantId("10158");
|
||||||
|
for (DealerCapital dealerCapital : dealerCapitalList) {
|
||||||
|
dealerCapital.setStatus(1);
|
||||||
|
User user = requestUtil.getByUserIdWithoutLogin(dealerCapital.getUserId());
|
||||||
|
BigDecimal newBalance = user.getBalance().add(dealerCapital.getMoney());
|
||||||
|
user.setBalance(newBalance);
|
||||||
|
requestUtil.updateUserBalanceWithoutLogin(user);
|
||||||
|
}
|
||||||
|
dealerCapitalService.updateBatchById(dealerCapitalList);
|
||||||
|
}
|
||||||
|
if (!userBalanceLogList.isEmpty()) {
|
||||||
|
for (UserBalanceLog userBalanceLog : userBalanceLogList) {
|
||||||
|
userBalanceLog.setStatus(1);
|
||||||
|
}
|
||||||
|
userBalanceLogService.updateBatchById(userBalanceLogList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.gxwebsoft.shop.service.impl;
|
package com.gxwebsoft.shop.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.gxwebsoft.shop.mapper.UserBalanceLogMapper;
|
import com.gxwebsoft.shop.mapper.UserBalanceLogMapper;
|
||||||
import com.gxwebsoft.shop.service.UserBalanceLogService;
|
import com.gxwebsoft.shop.service.UserBalanceLogService;
|
||||||
@@ -44,4 +45,13 @@ public class UserBalanceLogServiceImpl extends ServiceImpl<UserBalanceLogMapper,
|
|||||||
return param.getOne(baseMapper.selectListRel(param));
|
return param.getOne(baseMapper.selectListRel(param));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<UserBalanceLog> unSettleList(Integer orderId) {
|
||||||
|
return list(
|
||||||
|
new LambdaQueryWrapper<UserBalanceLog>()
|
||||||
|
.eq(UserBalanceLog::getOrderId, orderId)
|
||||||
|
.eq(UserBalanceLog::getStatus, 0)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,6 @@ socketio:
|
|||||||
# 框架配置
|
# 框架配置
|
||||||
config:
|
config:
|
||||||
# 开发环境接口
|
# 开发环境接口
|
||||||
server-url: http://127.0.0.1:9091/api
|
server-url: http://127.0.0.1:9092/api
|
||||||
upload-path: /Users/liangxin/Project/JAVA/nbg-java/file/
|
upload-path: /Users/liangxin/Project/JAVA/nbg-java/file/
|
||||||
local-upload-path: /Users/liangxin/Project/JAVA/nbg-java/file/
|
local-upload-path: /Users/liangxin/Project/JAVA/nbg-java/file/
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ server:
|
|||||||
# 多环境配置
|
# 多环境配置
|
||||||
spring:
|
spring:
|
||||||
profiles:
|
profiles:
|
||||||
# active: dev
|
active: dev
|
||||||
active: prod
|
# active: prod
|
||||||
|
|
||||||
application:
|
application:
|
||||||
name: server
|
name: server
|
||||||
|
|||||||
1700
websoft-modules.log
1700
websoft-modules.log
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user