241019更新
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,3 +5,4 @@
|
||||
/.idea/jarRepositories.xml
|
||||
/.idea/misc.xml
|
||||
/.idea/vcs.xml
|
||||
/file/
|
||||
|
||||
@@ -27,6 +27,7 @@ import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -159,11 +160,11 @@ public class MpController extends BaseController {
|
||||
if (tenantId.equals(0)) {
|
||||
return fail("租户ID不存在", null);
|
||||
}
|
||||
System.out.println("mpInfo = " + mpInfo);
|
||||
// System.out.println("mpInfo = " + mpInfo);
|
||||
// 从缓存读取信息
|
||||
if (StrUtil.isNotBlank(mpInfo)) {
|
||||
final Object object = JSONUtil.parseObject(mpInfo, Object.class);
|
||||
System.out.println("object = " + object);
|
||||
// System.out.println("object = " + object);
|
||||
return success(object);
|
||||
}
|
||||
|
||||
@@ -304,17 +305,20 @@ public class MpController extends BaseController {
|
||||
List<Goods> goodsList = goodsService.getGoodsSpecType0(param);
|
||||
if (getLoginUser() != null) {
|
||||
for (Goods goods : goodsList) {
|
||||
BigDecimal originPrice = goods.getPrice();
|
||||
goods.setPrice(goods.getSalePrice());
|
||||
if (getLoginUser().getGradeId().equals(33)) {
|
||||
if (goods.getDealerGift()) goods.setShowGift(true);
|
||||
goods.setPrice(goods.getDealerPrice());
|
||||
}
|
||||
// 会员店
|
||||
if (getLoginUser().getGradeId().equals(31)) {
|
||||
goods.setPrice(originPrice);
|
||||
if (goods.getPriceGift()) goods.setShowGift(true);
|
||||
}
|
||||
if (getLoginUser().getGradeId().equals(0)) {
|
||||
goods.setPrice(goods.getSalePrice());
|
||||
}
|
||||
// if (getLoginUser().getGradeId().equals(0)) {
|
||||
// goods.setPrice(goods.getSalePrice());
|
||||
// }
|
||||
}
|
||||
}else {
|
||||
for (Goods goods : goodsList) {
|
||||
|
||||
@@ -40,21 +40,22 @@ public class MybatisPlusConfig {
|
||||
@Override
|
||||
public Expression getTenantId() {
|
||||
// 从域名拿ID
|
||||
String Domain = request.getHeader("Domain");
|
||||
if (StrUtil.isNotBlank(Domain)) {
|
||||
String key = "Domain:" + Domain;
|
||||
String tenantId = redisUtil.get(key);
|
||||
if(tenantId != null){
|
||||
System.out.println("从域名拿TID = " + tenantId);
|
||||
return new LongValue(tenantId);
|
||||
}
|
||||
}
|
||||
// 从请求头拿ID
|
||||
final String tenantId = request.getHeader("tenantId");
|
||||
if(tenantId != null){
|
||||
return new LongValue(tenantId);
|
||||
}
|
||||
return getLoginUserTenantId();
|
||||
// String Domain = request.getHeader("Domain");
|
||||
// if (StrUtil.isNotBlank(Domain)) {
|
||||
// String key = "Domain:" + Domain;
|
||||
// String tenantId = redisUtil.get(key);
|
||||
// if(tenantId != null){
|
||||
// System.out.println("从域名拿TID = " + tenantId);
|
||||
// return new LongValue(tenantId);
|
||||
// }
|
||||
// }
|
||||
// // 从请求头拿ID
|
||||
// final String tenantId = request.getHeader("tenantId");
|
||||
// if(tenantId != null){
|
||||
// return new LongValue(tenantId);
|
||||
// }
|
||||
// return getLoginUserTenantId();
|
||||
return new LongValue(10158);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,23 +2,13 @@ package com.gxwebsoft.common.core.utils;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.gxwebsoft.common.core.security.JwtUtil;
|
||||
import com.gxwebsoft.common.core.web.ApiResult;
|
||||
import com.gxwebsoft.common.system.entity.Payment;
|
||||
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.common.system.entity.*;
|
||||
import com.gxwebsoft.shop.entity.MerchantAccount;
|
||||
import com.gxwebsoft.shop.entity.Order;
|
||||
import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction;
|
||||
import org.springframework.http.*;
|
||||
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.HashMap;
|
||||
|
||||
@@ -121,6 +111,29 @@ public class RequestUtil {
|
||||
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) {
|
||||
String path = "/system/user/";
|
||||
@@ -172,14 +185,29 @@ public class RequestUtil {
|
||||
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) {
|
||||
try {
|
||||
// 链式构建请求
|
||||
final String result = HttpRequest.get(host.concat("/system/user-referee/getReferee/" + userId))
|
||||
.header("Authorization", ACCESS_TOKEN)
|
||||
.header("Tenantid", TENANT_ID)
|
||||
.timeout(20000)
|
||||
.execute().body();
|
||||
System.out.println("result = " + result);
|
||||
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||
final String data = jsonObject.getString("data");
|
||||
return JSONObject.parseObject(data, User.class);
|
||||
@@ -276,4 +304,20 @@ public class RequestUtil {
|
||||
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 = "字典数据名称")
|
||||
private String dictDataName;
|
||||
|
||||
@ApiModelProperty(value = "预设字段:路由地址")
|
||||
private String path;
|
||||
|
||||
@ApiModelProperty(value = "预设字段:组件路径")
|
||||
private String component;
|
||||
|
||||
@ApiModelProperty(value = "排序号")
|
||||
private Integer sortNumber;
|
||||
|
||||
|
||||
@@ -272,6 +272,8 @@ public class User implements UserDetails {
|
||||
@TableField(exist = false)
|
||||
private MerchantAccount merchantAccount;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String authCode;
|
||||
// @ApiModelProperty("企业信息")
|
||||
// @TableField(exist = false)
|
||||
// private Company companyInfo;
|
||||
|
||||
@@ -2,10 +2,14 @@ package com.gxwebsoft.oa.controller;
|
||||
|
||||
import cn.hutool.core.date.DateField;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
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.RequestUtil;
|
||||
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.User;
|
||||
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.TaskRecordService;
|
||||
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.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -29,6 +36,7 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.gxwebsoft.common.core.constants.TaskConstants.*;
|
||||
|
||||
@@ -48,13 +56,17 @@ public class TaskController extends BaseController {
|
||||
private TaskRecordService taskRecordService;
|
||||
@Resource
|
||||
private TaskCountService taskCountService;
|
||||
@Resource
|
||||
private OrderService orderService;
|
||||
@Autowired
|
||||
private RequestUtil requestUtil;
|
||||
|
||||
@ApiOperation("分页查询任务记录表")
|
||||
@GetMapping("/page")
|
||||
public ApiResult<PageResult<Task>> page(TaskParam param) {
|
||||
// 使用关联查询
|
||||
param.setLoginUserId(getLoginUserId());
|
||||
return success(taskService.pageRel(param));
|
||||
param.setLoginUserId(getLoginUserId());
|
||||
return success(taskService.pageRel(param));
|
||||
}
|
||||
|
||||
@ApiOperation("查询全部任务记录表")
|
||||
@@ -72,9 +84,9 @@ public class TaskController extends BaseController {
|
||||
public ApiResult<Task> get(@PathVariable("id") Integer id) {
|
||||
// 更新阅读状态
|
||||
Task task = taskService.getByIdRel(id);
|
||||
if(!task.getLastReadUser().equals(getLoginUserId())){
|
||||
task.setIsRead(1);
|
||||
taskService.updateById(task);
|
||||
if (!task.getLastReadUser().equals(getLoginUserId())) {
|
||||
task.setIsRead(1);
|
||||
taskService.updateById(task);
|
||||
}
|
||||
return success(task);
|
||||
}
|
||||
@@ -96,8 +108,8 @@ public class TaskController extends BaseController {
|
||||
task.setLastAvatar(loginUser.getAvatar());
|
||||
task.setLastReadUser(loginUser.getUserId());
|
||||
task.setLastNickname(loginUser.getNickname());
|
||||
if(task.getName() == null){
|
||||
task.setName(task.getContent());
|
||||
if (task.getName() == null) {
|
||||
task.setName(task.getContent());
|
||||
}
|
||||
}
|
||||
if (taskService.saveByRel(task)) {
|
||||
@@ -166,7 +178,7 @@ public class TaskController extends BaseController {
|
||||
@GetMapping("/taskQRCode")
|
||||
public ApiResult<?> taskQRCode(TaskParam param, HttpServletRequest request) throws IOException {
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -175,8 +187,8 @@ public class TaskController extends BaseController {
|
||||
public ApiResult<?> taskJoinQRCode(TaskParam param, HttpServletRequest request) throws IOException {
|
||||
User loginUser = getLoginUser();
|
||||
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);
|
||||
final String qrCode = MyQrCodeUtil.getUserCode(loginUser.getUserId(),url);
|
||||
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);
|
||||
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() {
|
||||
System.out.println("每日清零任务 = ");
|
||||
final boolean update = taskCountService.update(new LambdaUpdateWrapper<TaskCount>().set(TaskCount::getToday, 0));
|
||||
System.out.println("update = " + update);
|
||||
System.out.println("每日清零任务 = ");
|
||||
final boolean update = taskCountService.update(new LambdaUpdateWrapper<TaskCount>().set(TaskCount::getToday, 0));
|
||||
System.out.println("update = " + update);
|
||||
}
|
||||
|
||||
/**
|
||||
* 本月清零
|
||||
*/
|
||||
@Scheduled(cron="0 0 1 * * ?")
|
||||
@Scheduled(cron = "0 0 1 * * ?")
|
||||
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 * ?")
|
||||
public void yearTask(){
|
||||
taskCountService.update(new LambdaUpdateWrapper<TaskCount>().set(TaskCount::getYear, 0));
|
||||
public void yearTask() {
|
||||
taskCountService.update(new LambdaUpdateWrapper<TaskCount>().set(TaskCount::getYear, 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时结算已解决待评价的工单的任务
|
||||
* 1个小时内没有用户再次提交新的回复则自动结算
|
||||
* 时间间隔2分钟执行一次
|
||||
*/
|
||||
@Scheduled(cron="*/30 * * * * *")
|
||||
/**
|
||||
* 定时结算已解决待评价的工单的任务
|
||||
* 1个小时内没有用户再次提交新的回复则自动结算
|
||||
* 时间间隔2分钟执行一次
|
||||
*/
|
||||
@Scheduled(cron = "*/30 * * * * *")
|
||||
public void updateProgressTask() {
|
||||
// System.out.println("定时任务开始:updateProgressTask = " + DateUtil.now());
|
||||
TaskParam taskParam = new TaskParam();
|
||||
taskParam.setProgress(TOBECONFIRMED);
|
||||
TaskParam taskParam = new TaskParam();
|
||||
taskParam.setProgress(TOBECONFIRMED);
|
||||
// taskParam.setTaskId(689);
|
||||
taskParam.setLimit(10L);
|
||||
final PageResult<Task> result = taskService.pageRelAll(taskParam);
|
||||
if(result.getCount() == 0){
|
||||
return;
|
||||
}
|
||||
final List<Task> list = result.getList();
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
list.forEach(task -> {
|
||||
try {
|
||||
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
Date newDate = DateUtil.offset(task.getUpdateTime(), DateField.MINUTE, 60 * 24);
|
||||
Date date1 = df.parse(newDate.toString());
|
||||
Date date2 = df.parse(DateUtil.now());
|
||||
final boolean after = date2.after(date1);
|
||||
if(after){
|
||||
// 更新工单状态
|
||||
task.setProgress(COMPLETED);
|
||||
task.setStatus(TASK_STATUS_1);
|
||||
taskService.updateByIdAll(task);
|
||||
// 待评价的工单超过24小时没有评价则自动确认
|
||||
final TaskRecord taskRecord = new TaskRecord();
|
||||
taskRecord.setTaskId(task.getTaskId());
|
||||
taskRecord.setContent("超过24小时没有评价的工单系统已自动评价");
|
||||
taskRecord.setTenantId(task.getTenantId());
|
||||
final boolean save = taskRecordService.save(taskRecord);
|
||||
System.out.println("save = " + save);
|
||||
System.out.println("超过24小时没有评价的工单已自动确认 = " + task.getTaskId());
|
||||
taskParam.setLimit(10L);
|
||||
final PageResult<Task> result = taskService.pageRelAll(taskParam);
|
||||
if (result.getCount() == 0) {
|
||||
return;
|
||||
}
|
||||
final List<Task> list = result.getList();
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
list.forEach(task -> {
|
||||
try {
|
||||
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
Date newDate = DateUtil.offset(task.getUpdateTime(), DateField.MINUTE, 60 * 24);
|
||||
Date date1 = df.parse(newDate.toString());
|
||||
Date date2 = df.parse(DateUtil.now());
|
||||
final boolean after = date2.after(date1);
|
||||
if (after) {
|
||||
// 更新工单状态
|
||||
task.setProgress(COMPLETED);
|
||||
task.setStatus(TASK_STATUS_1);
|
||||
taskService.updateByIdAll(task);
|
||||
// 待评价的工单超过24小时没有评价则自动确认
|
||||
final TaskRecord taskRecord = new TaskRecord();
|
||||
taskRecord.setTaskId(task.getTaskId());
|
||||
taskRecord.setContent("超过24小时没有评价的工单系统已自动评价");
|
||||
taskRecord.setTenantId(task.getTenantId());
|
||||
final boolean save = taskRecordService.save(taskRecord);
|
||||
System.out.println("save = " + save);
|
||||
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.PageResult;
|
||||
import com.gxwebsoft.common.system.entity.User;
|
||||
import com.gxwebsoft.shop.entity.Cart;
|
||||
import com.gxwebsoft.shop.entity.Merchant;
|
||||
import com.gxwebsoft.shop.entity.*;
|
||||
import com.gxwebsoft.shop.param.CartParam;
|
||||
import com.gxwebsoft.shop.service.CartService;
|
||||
import com.gxwebsoft.shop.service.MerchantService;
|
||||
import com.gxwebsoft.shop.service.*;
|
||||
import com.gxwebsoft.shop.vo.CartShopVo;
|
||||
import com.gxwebsoft.shop.vo.CartVo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -24,10 +23,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -44,6 +40,12 @@ public class CartController extends BaseController {
|
||||
private CartService cartService;
|
||||
@Resource
|
||||
private MerchantService merchantService;
|
||||
@Resource
|
||||
private OrderService orderService;
|
||||
@Resource
|
||||
private OrderGoodsService orderGoodsService;
|
||||
@Resource
|
||||
private GoodsService goodsService;
|
||||
|
||||
@ApiOperation("分页查询购物车")
|
||||
@GetMapping("/page")
|
||||
@@ -62,7 +64,62 @@ public class CartController extends BaseController {
|
||||
// 附加用户ID
|
||||
param.setUserId(getLoginUserId());
|
||||
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')")
|
||||
@@ -96,7 +153,7 @@ public class CartController extends BaseController {
|
||||
.eq(Cart::getGoodsId, cart.getGoodsId())
|
||||
.eq(Cart::getUserId, cart.getUserId())
|
||||
.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");
|
||||
final Cart one = cartService.getOne(cartLambdaQueryWrapper);
|
||||
if (ObjectUtil.isNotEmpty(one)) {
|
||||
@@ -104,6 +161,9 @@ public class CartController extends BaseController {
|
||||
one.setCartNum(one.getCartNum() + cart.getCartNum());
|
||||
cartService.updateById(one);
|
||||
return success("添加成功", one.getId());
|
||||
} else {
|
||||
cartService.save(cart);
|
||||
return success("添加成功", cart.getId());
|
||||
}
|
||||
}
|
||||
if (cartService.save(cart)) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.gxwebsoft.shop.controller;
|
||||
|
||||
import com.gxwebsoft.common.core.web.BaseController;
|
||||
import com.gxwebsoft.shop.entity.Order;
|
||||
import com.gxwebsoft.shop.service.DealerCapitalService;
|
||||
import com.gxwebsoft.shop.entity.DealerCapital;
|
||||
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.annotation.OperationLog;
|
||||
import com.gxwebsoft.common.system.entity.User;
|
||||
import com.gxwebsoft.shop.service.OrderService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@@ -30,6 +32,8 @@ import java.util.List;
|
||||
public class DealerCapitalController extends BaseController {
|
||||
@Resource
|
||||
private DealerCapitalService dealerCapitalService;
|
||||
@Resource
|
||||
private OrderService orderService;
|
||||
|
||||
@ApiOperation("分页查询分销商资金明细表")
|
||||
@GetMapping("/page")
|
||||
@@ -38,6 +42,21 @@ public class DealerCapitalController extends BaseController {
|
||||
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("查询全部分销商资金明细表")
|
||||
@GetMapping()
|
||||
public ApiResult<List<DealerCapital>> list(DealerCapitalParam param) {
|
||||
@@ -59,7 +78,7 @@ public class DealerCapitalController extends BaseController {
|
||||
// 记录当前登录用户id
|
||||
User loginUser = getLoginUser();
|
||||
if (loginUser != null) {
|
||||
dealerCapital.setUserId(loginUser.getUserId());
|
||||
dealerCapital.setUserId(loginUser.getUserId());
|
||||
}
|
||||
if (dealerCapitalService.save(dealerCapital)) {
|
||||
return success("添加成功");
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.gxwebsoft.shop.param.DealerUserParam;
|
||||
import com.gxwebsoft.shop.service.DealerUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -46,6 +47,8 @@ public class DealerUserController extends BaseController {
|
||||
@Resource
|
||||
private ConfigProperties config;
|
||||
|
||||
// @Value("${config.server-url}")
|
||||
final private String serverUrl = "https://nbg-img.websoft.top";
|
||||
|
||||
@ApiOperation("生成专属二维码")
|
||||
@GetMapping("/getDealerUserQrcode")
|
||||
@@ -62,8 +65,12 @@ public class DealerUserController extends BaseController {
|
||||
final HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("scene", loginUserId);
|
||||
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
|
||||
byte[] qrCode = HttpRequest.post(apiUrl)
|
||||
.body(JSON.toJSONString(map))
|
||||
@@ -72,11 +79,11 @@ public class DealerUserController extends BaseController {
|
||||
// // 保存的文件名称
|
||||
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);
|
||||
|
||||
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);
|
||||
dealerUserService.updateById(dealerUser);
|
||||
return success("操作成功", qrcode);
|
||||
@@ -208,6 +215,6 @@ public class DealerUserController extends BaseController {
|
||||
|
||||
|
||||
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 javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -191,6 +192,17 @@ public class GoodsCategoryController extends BaseController {
|
||||
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()));
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -86,10 +87,13 @@ public class GoodsController extends BaseController {
|
||||
// 整理商品价格
|
||||
final User loginUser = getLoginUser();
|
||||
if (loginUser != null) {
|
||||
BigDecimal originPrice = goods.getPrice();
|
||||
goods.setPrice(goods.getSalePrice());
|
||||
if (loginUser.getGradeId().equals(33)) {
|
||||
goods.setPrice(goods.getDealerPrice());
|
||||
}
|
||||
if (loginUser.getGradeId().equals(0)) {
|
||||
goods.setPrice(originPrice);
|
||||
goods.setPrice(goods.getSalePrice());
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.gxwebsoft.shop.controller;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.gxwebsoft.common.core.security.JwtUtil;
|
||||
import com.gxwebsoft.common.core.utils.RequestUtil;
|
||||
@@ -96,18 +97,19 @@ public class MerchantApplyController extends BaseController {
|
||||
@ApiOperation("修改商户入驻申请")
|
||||
@PutMapping()
|
||||
public ApiResult<?> update(@RequestBody MerchantApply merchantApply, HttpServletRequest request) {
|
||||
MerchantApply merchantApply1 = merchantApplyService.getByIdRel(merchantApply.getApplyId());
|
||||
if (merchantApply.getStatus().equals(1)) {
|
||||
// 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();
|
||||
BeanUtils.copyProperties(merchantApply, merchantAccount);
|
||||
BeanUtils.copyProperties(merchantApply1, merchantAccount);
|
||||
final User user = new User();
|
||||
final User loingUser = new User();
|
||||
loingUser.setUserId(merchantAccount.getUserId());
|
||||
|
||||
Integer gradeId = 30;
|
||||
if (ObjectUtil.isNotEmpty(one)) {
|
||||
BeanUtils.copyProperties(merchantApply, one);
|
||||
BeanUtils.copyProperties(merchantApply1, one);
|
||||
one.setStatus(0);
|
||||
merchantService.updateById(one);
|
||||
user.setMerchantId(one.getMerchantId());
|
||||
@@ -122,8 +124,11 @@ public class MerchantApplyController extends BaseController {
|
||||
loingUser.setGradeName(one.getShopType());
|
||||
} else {
|
||||
final Merchant merchant = new Merchant();
|
||||
BeanUtils.copyProperties(merchantApply, merchant);
|
||||
BeanUtils.copyProperties(merchantApply1, merchant);
|
||||
merchant.setStatus(0);
|
||||
List<String> lngNLat = StrUtil.split(merchantApply1.getLngAndLat(), ",");
|
||||
merchant.setLng(lngNLat.get(0));
|
||||
merchant.setLat(lngNLat.get(1));
|
||||
merchantService.save(merchant);
|
||||
user.setMerchantId(merchant.getMerchantId());
|
||||
user.setMerchantName(merchant.getMerchantName());
|
||||
@@ -142,25 +147,25 @@ public class MerchantApplyController extends BaseController {
|
||||
// TODO 创建商户账号
|
||||
requestUtil.setAccessToken(JwtUtil.getAccessToken(request));
|
||||
requestUtil.setTenantId(getTenantId().toString());
|
||||
merchantAccount.setRealName(merchantApply.getRealName());
|
||||
merchantAccount.setRealName(merchantApply1.getRealName());
|
||||
requestUtil.saveUserByPhone(merchantAccount);
|
||||
requestUtil.updateUser(loingUser);
|
||||
// TODO 更新用户表的商户ID
|
||||
requestUtil.updateUserMerchantId(user);
|
||||
|
||||
DealerUser check = dealerUserService.getByUserId(merchantApply.getUserId());
|
||||
DealerUser check = dealerUserService.getByUserId(merchantApply1.getUserId());
|
||||
if (check == null) {
|
||||
DealerUser dealerUser = new DealerUser();
|
||||
dealerUser.setUserId(merchantApply.getUserId());
|
||||
dealerUser.setRealName(merchantApply.getRealName());
|
||||
dealerUser.setMobile(merchantApply.getPhone());
|
||||
dealerUser.setUserId(merchantApply1.getUserId());
|
||||
dealerUser.setRealName(merchantApply1.getRealName());
|
||||
dealerUser.setMobile(merchantApply1.getPhone());
|
||||
dealerUserService.save(dealerUser);
|
||||
User parentUser = requestUtil.getParent(merchantApply.getUserId());
|
||||
User parentUser = requestUtil.getParent(merchantApply1.getUserId());
|
||||
if (parentUser != null) {
|
||||
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);
|
||||
dealerUserService.updateById(dealerUser1);
|
||||
|
||||
@@ -176,7 +181,7 @@ public class MerchantApplyController extends BaseController {
|
||||
}
|
||||
// TODO 驳回
|
||||
|
||||
if (merchantApplyService.updateById(merchantApply)) {
|
||||
if (merchantApplyService.updateById(merchantApply1)) {
|
||||
return success("修改成功");
|
||||
}
|
||||
return fail("修改失败");
|
||||
|
||||
@@ -374,10 +374,22 @@ public class OrderController extends BaseController {
|
||||
if (order1.getOrderStatus().equals(1)) return fail("订单已完成");
|
||||
order1.setOrderStatus(1);
|
||||
orderService.updateById(order1);
|
||||
orderService.settle(access_token, getTenantId().toString(), order1);
|
||||
orderService.doSettle(order1.getOrderId());
|
||||
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("外卖确认收货")
|
||||
@PostMapping("/out-take-confirm")
|
||||
public ApiResult<?> outTakeConfirm(@RequestBody Order order, HttpServletRequest request) {
|
||||
@@ -387,7 +399,7 @@ public class OrderController extends BaseController {
|
||||
order1.setOrderStatus(1);
|
||||
order1.setHasTakeGift(order.getHasTakeGift());
|
||||
orderService.updateById(order1);
|
||||
orderService.settle(access_token, getTenantId().toString(), order1);
|
||||
orderService.doSettle(order1.getOrderId());
|
||||
return success("外卖确认收货");
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,21 @@
|
||||
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.LocalDateTimeUtil;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.gxwebsoft.common.core.security.JwtUtil;
|
||||
import com.gxwebsoft.common.core.utils.JSONUtil;
|
||||
import com.gxwebsoft.common.core.utils.RequestUtil;
|
||||
import com.gxwebsoft.common.core.web.BaseController;
|
||||
import com.gxwebsoft.shop.config.WxMaProperties;
|
||||
import com.gxwebsoft.shop.entity.*;
|
||||
import com.gxwebsoft.shop.param.GoodsStockInMerchantParam;
|
||||
import com.gxwebsoft.shop.service.*;
|
||||
@@ -22,16 +32,17 @@ import com.kuaidi100.sdk.response.BOrderResp;
|
||||
import com.kuaidi100.sdk.response.SubscribeResp;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
import static com.gxwebsoft.shop.consts.OrderPayType.PAY_TYPE_FRIEND;
|
||||
import static com.gxwebsoft.shop.consts.OrderPayType.PAY_TYPE_WECHAT;
|
||||
|
||||
/**
|
||||
* 发货单控制器
|
||||
@@ -57,6 +68,13 @@ public class OrderDeliveryController extends BaseController {
|
||||
private GoodsStockInMerchantService goodsStockInMerchantService;
|
||||
@Resource
|
||||
private MerchantService merchantService;
|
||||
@Resource
|
||||
private WxMaProperties wxMaProperties;
|
||||
|
||||
@Autowired
|
||||
private WeChatController weChatController;
|
||||
@Autowired
|
||||
private RequestUtil requestUtil;
|
||||
|
||||
@ApiOperation("分页查询发货单")
|
||||
@GetMapping("/page")
|
||||
@@ -115,6 +133,7 @@ public class OrderDeliveryController extends BaseController {
|
||||
}
|
||||
}
|
||||
merchant = merchantService.getById(goodsStockInMerchantList.get(0).getMerchantId());
|
||||
// merchant = merchantService.getById(3095);
|
||||
if (merchant != null) {
|
||||
// 商家发货
|
||||
Express express = expressService.getByIdRel(orderDelivery.getExpressId());
|
||||
@@ -142,8 +161,47 @@ public class OrderDeliveryController extends BaseController {
|
||||
order.setDeliveryStatus(20);
|
||||
order.setDeliveryTime(DateUtil.date());
|
||||
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("操作成功");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ public class WxPayNotifyNbgController extends BaseController {
|
||||
// TODO 4. 清除购物车
|
||||
final boolean remove = cartService.remove(new LambdaQueryWrapper<Cart>().eq(Cart::getUserId, order.getUserId()).eq(Cart::getIsNew, true));
|
||||
System.out.println("remove = " + remove);
|
||||
|
||||
orderService.settle(order);
|
||||
|
||||
// TODO 5.累计会员积分
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.gxwebsoft.shop.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
@@ -41,11 +43,14 @@ public class DealerCapital implements Serializable {
|
||||
private BigDecimal money;
|
||||
|
||||
@ApiModelProperty(value = "描述")
|
||||
@TableField(value = "`describe`")
|
||||
private String describe;
|
||||
|
||||
@ApiModelProperty(value = "对方用户ID")
|
||||
private Integer toUserId;
|
||||
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "商城ID")
|
||||
private Integer tenantId;
|
||||
|
||||
@@ -55,4 +60,7 @@ public class DealerCapital implements Serializable {
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Order order;
|
||||
|
||||
}
|
||||
|
||||
@@ -33,6 +33,9 @@ public class Express implements Serializable {
|
||||
@ApiModelProperty(value = "物流公司名称")
|
||||
private String expressName;
|
||||
|
||||
@ApiModelProperty(value = "物流公司编码 (微信)")
|
||||
private String wxCode;
|
||||
|
||||
@ApiModelProperty(value = "物流公司编码 (快递100)")
|
||||
private String kuaidi100Code;
|
||||
|
||||
|
||||
@@ -80,6 +80,15 @@ public class Goods implements Serializable {
|
||||
@ApiModelProperty(value = "进货价格")
|
||||
private BigDecimal price;
|
||||
|
||||
@ApiModelProperty(value = "会员店直推分佣")
|
||||
private BigDecimal memberStoreCommission;
|
||||
|
||||
@ApiModelProperty(value = "供应商直推分佣")
|
||||
private BigDecimal supplierCommission;
|
||||
|
||||
@ApiModelProperty(value = "合作伙伴直推分佣")
|
||||
private BigDecimal coopCommission;
|
||||
|
||||
@ApiModelProperty(value = "销售价格")
|
||||
private BigDecimal salePrice;
|
||||
|
||||
@@ -116,6 +125,9 @@ public class Goods implements Serializable {
|
||||
@ApiModelProperty(value = "赠品数(会员店)")
|
||||
private Integer priceGiftNum;
|
||||
|
||||
@ApiModelProperty(value = "赠品名(会员店)")
|
||||
private String priceGiftName;
|
||||
|
||||
@ApiModelProperty(value = "赠品数(经销商)")
|
||||
private Integer dealerGiftNum;
|
||||
|
||||
@@ -140,6 +152,8 @@ public class Goods implements Serializable {
|
||||
@ApiModelProperty(value = "商户ID")
|
||||
private Integer merchantId;
|
||||
|
||||
private Integer canExpress;
|
||||
|
||||
@ApiModelProperty(value = "商户名称")
|
||||
private String merchantName;
|
||||
|
||||
|
||||
@@ -40,6 +40,8 @@ public class Merchant implements Serializable {
|
||||
@ApiModelProperty(value = "商户图标")
|
||||
private String image;
|
||||
|
||||
private String swiper;
|
||||
|
||||
@ApiModelProperty(value = "商户手机号")
|
||||
private String phone;
|
||||
|
||||
|
||||
@@ -63,12 +63,22 @@ public class MerchantApply implements Serializable {
|
||||
@ApiModelProperty(value = "商户分类")
|
||||
private String category;
|
||||
|
||||
@ApiModelProperty(value = "经营分类ID")
|
||||
private Integer merchantCategoryId;
|
||||
|
||||
@ApiModelProperty(value = "经营分类ID")
|
||||
private String merchantCategoryTitle;
|
||||
|
||||
@ApiModelProperty(value = "手续费")
|
||||
private BigDecimal commission;
|
||||
|
||||
@ApiModelProperty(value = "关键字")
|
||||
private String keywords;
|
||||
|
||||
private String startTime;
|
||||
|
||||
private String endTime;
|
||||
|
||||
@ApiModelProperty(value = "营业执照")
|
||||
private String yyzz;
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@ public class UserBalanceLog implements Serializable {
|
||||
@ApiModelProperty(value = "用户ID")
|
||||
private Integer userId;
|
||||
|
||||
private Integer orderId;
|
||||
|
||||
@ApiModelProperty(value = "余额变动场景(10用户充值 20用户消费 30管理员操作 40订单退款)")
|
||||
private Integer scene;
|
||||
|
||||
|
||||
@@ -94,4 +94,7 @@ public class CartParam extends BaseParam {
|
||||
|
||||
@TableField(exist = false)
|
||||
private Boolean withMerchantInfo;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Integer orderId;
|
||||
}
|
||||
|
||||
@@ -39,4 +39,5 @@ public interface DealerCapitalService extends IService<DealerCapital> {
|
||||
*/
|
||||
DealerCapital getByIdRel(Integer id);
|
||||
|
||||
List<DealerCapital> unSettleList(Integer orderId);
|
||||
}
|
||||
|
||||
@@ -49,7 +49,11 @@ public interface OrderService extends IService<Order> {
|
||||
|
||||
Boolean payByBalance(Order order);
|
||||
|
||||
void settle(Order order);
|
||||
|
||||
void settle(String token, String tenantId, Order order);
|
||||
|
||||
void doSettle(Integer orderId);
|
||||
|
||||
// String payByWxNative(Order order);
|
||||
}
|
||||
|
||||
@@ -39,4 +39,5 @@ public interface UserBalanceLogService extends IService<UserBalanceLog> {
|
||||
*/
|
||||
UserBalanceLog getByIdRel(Integer logId);
|
||||
|
||||
List<UserBalanceLog> unSettleList(Integer orderId);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.gxwebsoft.shop.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.gxwebsoft.shop.mapper.DealerCapitalMapper;
|
||||
import com.gxwebsoft.shop.service.DealerCapitalService;
|
||||
@@ -44,4 +45,13 @@ public class DealerCapitalServiceImpl extends ServiceImpl<DealerCapitalMapper, D
|
||||
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.common.core.config.ConfigProperties;
|
||||
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.RequestUtil;
|
||||
import com.gxwebsoft.common.core.web.ApiResult;
|
||||
@@ -85,6 +84,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
||||
private GoodsIncomeConfigService goodsIncomeConfigService;
|
||||
@Resource
|
||||
private UserBalanceLogService userBalanceLogService;
|
||||
@Resource
|
||||
private DealerCapitalService dealerCapitalService;
|
||||
|
||||
|
||||
// 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.setTenantId(order.getTenantId().toString());
|
||||
String api = "/system/user/updateUserBalance"; // 更新余额接口
|
||||
@@ -363,146 +363,258 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void settle(Order order) {
|
||||
settle(null, "10158", order);
|
||||
}
|
||||
|
||||
/***
|
||||
* 结算
|
||||
* @param order
|
||||
*/
|
||||
@Override
|
||||
public void settle(String token, String tenantId, Order order) {
|
||||
System.out.println("here settle");
|
||||
List<OrderGoods> orderGoodsList = orderGoodsService.listByOrderId(order.getOrderId());
|
||||
RequestUtil requestUtil = new RequestUtil();
|
||||
requestUtil.setAccessToken(token);
|
||||
if (token != null) requestUtil.setAccessToken(token);
|
||||
requestUtil.setTenantId(tenantId);
|
||||
String balanceApi = "/system/user/updateUserBalance";
|
||||
// System.out.println(parentRes);
|
||||
if (order.getType().equals(0)) {
|
||||
User parentUser = requestUtil.getParent(order.getUserId());
|
||||
// System.out.println(parentRes);
|
||||
// 上级收入
|
||||
System.out.println("parentUser = " + (parentUser != null));
|
||||
if (parentUser != null) {
|
||||
// User parentUser = requestUtil.getUserByPhone(parentRes);
|
||||
Merchant parentMerchant = merchantService.getByUserId(parentUser.getUserId());
|
||||
System.out.println("parentMerchant = " + (parentMerchant != null));
|
||||
if (parentMerchant != null) {
|
||||
for (OrderGoods orderGoods : orderGoodsList) {
|
||||
Goods goods = orderGoods.getGoods();
|
||||
GoodsIncomeConfig goodsIncomeConfig = goodsIncomeConfigService.check(goods.getGoodsId(), orderGoods.getSkuId(), parentMerchant.getShopType());
|
||||
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);
|
||||
BigDecimal newBalance = parentUser.getBalance().add(incomeTotal);
|
||||
parentUser.setBalance(newBalance);
|
||||
requestUtil.updateUserBalance(balanceApi, parentUser);
|
||||
System.out.println("goods = " + (goods != null));
|
||||
if (goods != null) {
|
||||
// 有单独设置优先使用
|
||||
BigDecimal parentCommission = null;
|
||||
switch (parentMerchant.getShopType()) {
|
||||
case "会员店" -> parentCommission = goods.getMemberStoreCommission();
|
||||
case "供应商" -> parentCommission = goods.getSupplierCommission();
|
||||
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() {{
|
||||
setUserId(parentUser.getUserId());
|
||||
setScene(BalanceScene.BALANCE_SCENE_DIRECT_INCOME);
|
||||
setUserId(supplier.getUserId());
|
||||
setScene(BalanceScene.BALANCE_SCENE_SUPPLIER);
|
||||
setMoney(incomeTotal);
|
||||
setBalance(newBalance);
|
||||
setMerchantId(parentMerchant.getMerchantId());
|
||||
setMerchantCode(parentMerchant.getMerchantCode());
|
||||
setOrderNo(order.getOrderNo());
|
||||
setOrderId(order.getOrderId());
|
||||
setMerchantId(supplier.getMerchantId());
|
||||
setMerchantCode(supplier.getMerchantCode());
|
||||
setTenantId(getTenantId());
|
||||
}});
|
||||
dealerCapitalService.save(new DealerCapital() {{
|
||||
setUserId(supplier.getUserId());
|
||||
setFlowType(10);
|
||||
setMoney(incomeTotal);
|
||||
setOrderId(order.getOrderId());
|
||||
setDescribe("供应商收入");
|
||||
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;
|
||||
if (order.getDeliveryType().equals(0)) merchant = merchantService.getById(order.getExpressMerchantId());
|
||||
else merchant = merchantService.getById(order.getSelfTakeMerchantId());
|
||||
System.out.println("merchant = " + (merchant != null));
|
||||
|
||||
if (merchant != null) {
|
||||
BigDecimal diffAmountTotal = BigDecimal.ZERO;
|
||||
BigDecimal buyAmountTotal = BigDecimal.ZERO;
|
||||
User merchantUser = requestUtil.getByUserId(merchant.getUserId());
|
||||
User merchantUser = requestUtil.getByUserIdWithoutLogin(merchant.getUserId());
|
||||
for (OrderGoods orderGoods : orderGoodsList) {
|
||||
Goods goods = orderGoods.getGoods();
|
||||
BigDecimal merchantAmount = BigDecimal.ZERO;
|
||||
BigDecimal rate = BigDecimal.ZERO;
|
||||
switch (merchant.getShopType()) {
|
||||
case "会员店": {
|
||||
merchantAmount = goods.getMemberStorePrice();
|
||||
rate = goods.getMemberStoreRate().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
|
||||
if (goods != null) {
|
||||
BigDecimal merchantAmount = BigDecimal.ZERO;
|
||||
BigDecimal rate = BigDecimal.ZERO;
|
||||
switch (merchant.getShopType()) {
|
||||
case "会员店": {
|
||||
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;
|
||||
case "实体连锁店": {
|
||||
merchantAmount = goods.getChainStorePrice();
|
||||
rate = goods.getChainStoreRate().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
|
||||
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);
|
||||
}
|
||||
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);
|
||||
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);
|
||||
merchantUser.setBalance(newBalance);
|
||||
requestUtil.updateUserBalance(balanceApi, merchantUser);
|
||||
Merchant finalMerchant = merchant;
|
||||
// merchantUser.setBalance(newBalance);
|
||||
// requestUtil.updateUserBalanceWithoutLogin(merchantUser);
|
||||
userBalanceLogService.save(new UserBalanceLog() {{
|
||||
setUserId(merchantUser.getUserId());
|
||||
setScene(BalanceScene.BALANCE_SCENE_DIFF);
|
||||
setScene(BalanceScene.BALANCE_SCENE_OUT_TAKE);
|
||||
setMoney(incomeTotal);
|
||||
setBalance(newBalance);
|
||||
setOrderNo(order.getOrderNo());
|
||||
setMerchantId(finalMerchant.getMerchantId());
|
||||
setMerchantCode(finalMerchant.getMerchantCode());
|
||||
setMerchantId(merchant.getMerchantId());
|
||||
setMerchantCode(merchant.getMerchantCode());
|
||||
setOrderId(order.getOrderId());
|
||||
setTenantId(getTenantId());
|
||||
}});
|
||||
dealerCapitalService.save(new DealerCapital() {{
|
||||
setUserId(merchantUser.getUserId());
|
||||
setFlowType(10);
|
||||
setMoney(incomeTotal);
|
||||
setOrderId(order.getOrderId());
|
||||
setDescribe("门店外卖收入");
|
||||
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;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.gxwebsoft.shop.mapper.UserBalanceLogMapper;
|
||||
import com.gxwebsoft.shop.service.UserBalanceLogService;
|
||||
@@ -44,4 +45,13 @@ public class UserBalanceLogServiceImpl extends ServiceImpl<UserBalanceLogMapper,
|
||||
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:
|
||||
# 开发环境接口
|
||||
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/
|
||||
local-upload-path: /Users/liangxin/Project/JAVA/nbg-java/file/
|
||||
|
||||
@@ -4,8 +4,8 @@ server:
|
||||
# 多环境配置
|
||||
spring:
|
||||
profiles:
|
||||
# active: dev
|
||||
active: prod
|
||||
active: dev
|
||||
# active: prod
|
||||
|
||||
application:
|
||||
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