打包费功能添加
This commit is contained in:
parent
bf7489138f
commit
2a764f1516
@ -98,6 +98,9 @@ public class ShopOrderData implements Serializable {
|
|||||||
@ApiModelProperty(value = "平台费(分给平台或代理商的费用),根据不同的店铺分类,从商品原价中扣除相应的费用。")
|
@ApiModelProperty(value = "平台费(分给平台或代理商的费用),根据不同的店铺分类,从商品原价中扣除相应的费用。")
|
||||||
private BigDecimal platform_fee;
|
private BigDecimal platform_fee;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "店铺统一设置的打包费")
|
||||||
|
private BigDecimal packing_fee;
|
||||||
|
|
||||||
@ApiModelProperty(value = "代金券id/优惠券/返现:发放选择使用")
|
@ApiModelProperty(value = "代金券id/优惠券/返现:发放选择使用")
|
||||||
private Integer voucher_id;
|
private Integer voucher_id;
|
||||||
|
|
||||||
|
|||||||
@ -62,7 +62,7 @@ public class MchOrderInfoDTO implements Serializable {
|
|||||||
private Long arrival_time;
|
private Long arrival_time;
|
||||||
@ApiModelProperty(value = "订单原价")
|
@ApiModelProperty(value = "订单原价")
|
||||||
private BigDecimal order_product_amount;
|
private BigDecimal order_product_amount;
|
||||||
@ApiModelProperty(value = "应付金额/应支付金额:order_goods_amount - order_discount_amount + order_shipping_fee - order_voucher_price - order_points_fee - order_adjust_fee")
|
@ApiModelProperty(value = "应付金额/应支付金额:order_goods_amount - order_discount_amount + order_shipping_fee + packing_fee - order_voucher_price - order_points_fee - order_adjust_fee")
|
||||||
private BigDecimal order_payment_amount;
|
private BigDecimal order_payment_amount;
|
||||||
@ApiModelProperty(value = "货币编号")
|
@ApiModelProperty(value = "货币编号")
|
||||||
private Integer currency_id;
|
private Integer currency_id;
|
||||||
@ -74,6 +74,8 @@ public class MchOrderInfoDTO implements Serializable {
|
|||||||
private BigDecimal order_shipping_fee;
|
private BigDecimal order_shipping_fee;
|
||||||
@ApiModelProperty(value = "平台费")
|
@ApiModelProperty(value = "平台费")
|
||||||
private BigDecimal platform_fee;
|
private BigDecimal platform_fee;
|
||||||
|
@ApiModelProperty(value = "店铺统一设置的打包费")
|
||||||
|
private BigDecimal packing_fee;
|
||||||
//总计优惠金额 order_discount_amount + order_voucher_price + order_points_fee + order_adjust_fee
|
//总计优惠金额 order_discount_amount + order_voucher_price + order_points_fee + order_adjust_fee
|
||||||
@ApiModelProperty(value = "总计优惠金额,优惠、折扣、活动费用")
|
@ApiModelProperty(value = "总计优惠金额,优惠、折扣、活动费用")
|
||||||
private BigDecimal total_discount_amount;
|
private BigDecimal total_discount_amount;
|
||||||
|
|||||||
@ -87,7 +87,7 @@ public class ShopStoreBase implements Serializable {
|
|||||||
@ApiModelProperty(value = "店铺分类编号")
|
@ApiModelProperty(value = "店铺分类编号")
|
||||||
private Integer store_category_id;
|
private Integer store_category_id;
|
||||||
|
|
||||||
@ApiModelProperty(value = "店铺资料信息状态(ENUM):3210-待完善资料; 3220-等待审核 ; 3230-资料审核没有通过; 3240-资料审核通过,待付款")
|
@ApiModelProperty(value = "店铺资料信息状态(ENUM):3210-待完善资料; 3220-等待审核; 3230-资料审核没有通过; 3240-资料审核通过,待付款")
|
||||||
private Integer store_state_id;
|
private Integer store_state_id;
|
||||||
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@ -130,4 +130,16 @@ public class ShopStoreBase implements Serializable {
|
|||||||
@ApiModelProperty(value = "店铺分账比例数值 0.00-100.00 范围内,数值根据店铺分类计算得出,也可以超管指定一个数值。")
|
@ApiModelProperty(value = "店铺分账比例数值 0.00-100.00 范围内,数值根据店铺分类计算得出,也可以超管指定一个数值。")
|
||||||
private BigDecimal split_ratio;
|
private BigDecimal split_ratio;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "店铺统一的打包费, 0-10元范围")
|
||||||
|
private BigDecimal packing_fee;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
@ApiModelProperty(value = "新增时间")
|
||||||
|
private Date created_at;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
@ApiModelProperty(value = "修改时间")
|
||||||
|
private Date updated_at;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -58,6 +58,12 @@ public class ShopStoreInfo implements Serializable {
|
|||||||
@ApiModelProperty(value = "卖家电话")
|
@ApiModelProperty(value = "卖家电话")
|
||||||
private String store_tel;
|
private String store_tel;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "联系人")
|
||||||
|
private String contact_name;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "联系人手机")
|
||||||
|
private String contact_mobile;
|
||||||
|
|
||||||
@ApiModelProperty(value = "qq")
|
@ApiModelProperty(value = "qq")
|
||||||
private String store_qq;
|
private String store_qq;
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
package com.suisung.mall.shop.base.service.impl;
|
package com.suisung.mall.shop.base.service.impl;
|
||||||
|
|
||||||
import cn.hutool.captcha.CaptchaUtil;
|
|
||||||
import cn.hutool.captcha.LineCaptcha;
|
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
@ -96,6 +94,7 @@ public class ShopBaseConfigServiceImpl extends BaseServiceImpl<ShopBaseConfigMap
|
|||||||
return Convert.toInt(config_value);
|
return Convert.toInt(config_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取验证码
|
* 获取验证码
|
||||||
*/
|
*/
|
||||||
@ -105,35 +104,220 @@ public class ShopBaseConfigServiceImpl extends BaseServiceImpl<ShopBaseConfigMap
|
|||||||
response.setHeader("Pragma", "no-cache");
|
response.setHeader("Pragma", "no-cache");
|
||||||
response.setHeader("Cache-Control", "no-cache");
|
response.setHeader("Cache-Control", "no-cache");
|
||||||
response.setDateHeader("Expires", 0);
|
response.setDateHeader("Expires", 0);
|
||||||
// 产生验证码图片的。图片的宽是116,高是36,验证码的长度是4,干扰线的条数是20
|
|
||||||
LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(120, 40, 4, 20);
|
|
||||||
|
|
||||||
// 可选:设置自定义字体(如果需要)
|
|
||||||
// lineCaptcha.setFont(new Font("Arial", Font.BOLD, 16));
|
|
||||||
|
|
||||||
// 拼接时间戳
|
|
||||||
String verify_token = getParameter("verify_token", String.class);
|
|
||||||
|
|
||||||
//获取验证码图片中的字符串
|
|
||||||
String code = RedisConstant.Verifycode_NameSpace + verify_token + lineCaptcha.getCode();
|
|
||||||
redisService.set(code, "", 60); // 有效期一分钟
|
|
||||||
|
|
||||||
//获取到response的响应流。
|
|
||||||
BufferedImage image = lineCaptcha.getImage();
|
|
||||||
OutputStream os = null;
|
OutputStream os = null;
|
||||||
try {
|
try {
|
||||||
|
// 获取verify_token参数
|
||||||
|
String verify_token = getParameter("verify_token", String.class);
|
||||||
|
if (StrUtil.isBlank(verify_token)) {
|
||||||
|
logger.warn("验证码请求缺少verify_token参数");
|
||||||
|
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建一个不依赖字体的简单数字验证码
|
||||||
|
String captchaCode = generateSimpleCaptcha(4);
|
||||||
|
|
||||||
|
// 手动创建简单的验证码图片
|
||||||
|
BufferedImage image = createSimpleCaptchaImage(captchaCode);
|
||||||
|
|
||||||
|
// 保存验证码到Redis
|
||||||
|
String code = RedisConstant.Verifycode_NameSpace + verify_token + captchaCode;
|
||||||
|
redisService.set(code, "", 60); // 有效期一分钟
|
||||||
|
|
||||||
|
// 输出图片到响应流
|
||||||
os = response.getOutputStream();
|
os = response.getOutputStream();
|
||||||
ImageIO.write(image, "png", os);
|
if (image != null) {
|
||||||
} catch (IOException e) {
|
ImageIO.write(image, "png", os);
|
||||||
logger.error("获取验证码响应异常!" + e.getMessage(), e);
|
} else {
|
||||||
} finally {
|
logger.error("生成验证码图片失败,image为null");
|
||||||
|
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
os.flush();
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("获取验证码响应异常: " + e.getMessage(), e);
|
||||||
try {
|
try {
|
||||||
assert os != null;
|
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
os.close();
|
} catch (Exception ex) {
|
||||||
} catch (IOException e) {
|
logger.error("设置错误响应状态异常: " + ex.getMessage(), ex);
|
||||||
logger.error("获取验证码响应异常!" + e.getMessage(), e);
|
}
|
||||||
|
} finally {
|
||||||
|
if (os != null) {
|
||||||
|
try {
|
||||||
|
os.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.error("关闭输出流异常: " + e.getMessage(), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成简单的数字验证码
|
||||||
|
*
|
||||||
|
* @param length 验证码长度
|
||||||
|
* @return 验证码字符串
|
||||||
|
*/
|
||||||
|
private String generateSimpleCaptcha(int length) {
|
||||||
|
String chars = "0123456789";
|
||||||
|
StringBuilder captcha = new StringBuilder();
|
||||||
|
java.util.Random random = new java.util.Random();
|
||||||
|
for (int i = 0; i < length; i++) {
|
||||||
|
captcha.append(chars.charAt(random.nextInt(chars.length())));
|
||||||
|
}
|
||||||
|
return captcha.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建简单的验证码图片(不依赖系统字体)
|
||||||
|
*
|
||||||
|
* @param captchaCode 验证码
|
||||||
|
* @return 验证码图片
|
||||||
|
*/
|
||||||
|
private BufferedImage createSimpleCaptchaImage(String captchaCode) {
|
||||||
|
int width = 120;
|
||||||
|
int height = 40;
|
||||||
|
|
||||||
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
||||||
|
java.awt.Graphics2D g = image.createGraphics();
|
||||||
|
|
||||||
|
// 设置背景色
|
||||||
|
g.setColor(java.awt.Color.WHITE);
|
||||||
|
g.fillRect(0, 0, width, height);
|
||||||
|
|
||||||
|
// 绘制干扰线
|
||||||
|
java.util.Random random = new java.util.Random();
|
||||||
|
g.setColor(java.awt.Color.LIGHT_GRAY);
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
int x1 = random.nextInt(width);
|
||||||
|
int y1 = random.nextInt(height);
|
||||||
|
int x2 = random.nextInt(width);
|
||||||
|
int y2 = random.nextInt(height);
|
||||||
|
g.drawLine(x1, y1, x2, y2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 绘制验证码(使用简单的图形而不是文字)
|
||||||
|
g.setColor(java.awt.Color.BLACK);
|
||||||
|
int fontSize = 20;
|
||||||
|
for (int i = 0; i < captchaCode.length(); i++) {
|
||||||
|
char c = captchaCode.charAt(i);
|
||||||
|
// 使用drawString可能会触发字体问题,所以我们用图形代替
|
||||||
|
int x = 20 + i * 20;
|
||||||
|
int y = 25;
|
||||||
|
|
||||||
|
// 绘制数字的简单表示(这里仍然可能有问题,所以我们用点阵方式)
|
||||||
|
drawSimpleNumber(g, c, x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
g.dispose();
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用简单图形绘制数字(避免使用字体)
|
||||||
|
*
|
||||||
|
* @param g Graphics对象
|
||||||
|
* @param c 要绘制的字符
|
||||||
|
* @param x x坐标
|
||||||
|
* @param y y坐标
|
||||||
|
*/
|
||||||
|
private void drawSimpleNumber(java.awt.Graphics2D g, char c, int x, int y) {
|
||||||
|
// 简单的数字绘制,避免使用字体
|
||||||
|
switch (c) {
|
||||||
|
case '0':
|
||||||
|
g.drawOval(x, y - 15, 15, 15);
|
||||||
|
break;
|
||||||
|
case '1':
|
||||||
|
g.drawLine(x + 7, y - 15, x + 7, y);
|
||||||
|
break;
|
||||||
|
case '2':
|
||||||
|
g.drawLine(x, y - 15, x + 15, y - 15); // 上横线
|
||||||
|
g.drawLine(x + 15, y - 15, x + 15, y - 7); // 右上竖线
|
||||||
|
g.drawLine(x, y - 7, x + 15, y - 7); // 中横线
|
||||||
|
g.drawLine(x, y - 7, x, y); // 左下竖线
|
||||||
|
g.drawLine(x, y, x + 15, y); // 下横线
|
||||||
|
break;
|
||||||
|
case '3':
|
||||||
|
g.drawLine(x, y - 15, x + 15, y - 15); // 上横线
|
||||||
|
g.drawLine(x + 15, y - 15, x + 15, y); // 右竖线
|
||||||
|
g.drawLine(x, y - 7, x + 15, y - 7); // 中横线
|
||||||
|
g.drawLine(x, y, x + 15, y); // 下横线
|
||||||
|
break;
|
||||||
|
case '4':
|
||||||
|
g.drawLine(x, y - 15, x, y - 7); // 左上竖线
|
||||||
|
g.drawLine(x + 15, y - 15, x + 15, y); // 右竖线
|
||||||
|
g.drawLine(x, y - 7, x + 15, y - 7); // 中横线
|
||||||
|
break;
|
||||||
|
case '5':
|
||||||
|
g.drawLine(x, y - 15, x + 15, y - 15); // 上横线
|
||||||
|
g.drawLine(x, y - 15, x, y - 7); // 左上竖线
|
||||||
|
g.drawLine(x, y - 7, x + 15, y - 7); // 中横线
|
||||||
|
g.drawLine(x + 15, y - 7, x + 15, y); // 右下竖线
|
||||||
|
g.drawLine(x, y, x + 15, y); // 下横线
|
||||||
|
break;
|
||||||
|
case '6':
|
||||||
|
g.drawOval(x, y - 15, 15, 15);
|
||||||
|
g.drawLine(x, y - 7, x, y); // 左下竖线
|
||||||
|
g.drawLine(x, y, x + 15, y); // 下横线
|
||||||
|
break;
|
||||||
|
case '7':
|
||||||
|
g.drawLine(x, y - 15, x + 15, y - 15); // 上横线
|
||||||
|
g.drawLine(x + 15, y - 15, x + 15, y); // 右竖线
|
||||||
|
break;
|
||||||
|
case '8':
|
||||||
|
g.drawOval(x, y - 15, 15, 15);
|
||||||
|
g.drawOval(x, y - 7, 15, 15);
|
||||||
|
break;
|
||||||
|
case '9':
|
||||||
|
g.drawOval(x, y - 15, 15, 15);
|
||||||
|
g.drawLine(x + 15, y - 7, x + 15, y); // 右下竖线
|
||||||
|
g.drawLine(x, y, x + 15, y); // 下横线
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// 绘制一个简单的点作为默认
|
||||||
|
g.fillOval(x + 7, y - 7, 3, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * 获取验证码
|
||||||
|
// */
|
||||||
|
// @Override
|
||||||
|
// public void image(HttpServletResponse response) {
|
||||||
|
// response.setContentType("image/png");
|
||||||
|
// response.setHeader("Pragma", "no-cache");
|
||||||
|
// response.setHeader("Cache-Control", "no-cache");
|
||||||
|
// response.setDateHeader("Expires", 0);
|
||||||
|
// // 产生验证码图片的。图片的宽是116,高是36,验证码的长度是4,干扰线的条数是20
|
||||||
|
// LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(120, 40, 4, 20);
|
||||||
|
//
|
||||||
|
// // 可选:设置自定义字体(如果需要)
|
||||||
|
//// lineCaptcha.setFont(new Font("Arial", Font.BOLD, 16));
|
||||||
|
//
|
||||||
|
// // 拼接时间戳
|
||||||
|
// String verify_token = getParameter("verify_token", String.class);
|
||||||
|
//
|
||||||
|
// //获取验证码图片中的字符串
|
||||||
|
// String code = RedisConstant.Verifycode_NameSpace + verify_token + lineCaptcha.getCode();
|
||||||
|
// redisService.set(code, "", 60); // 有效期一分钟
|
||||||
|
//
|
||||||
|
// //获取到response的响应流。
|
||||||
|
// BufferedImage image = lineCaptcha.getImage();
|
||||||
|
// OutputStream os = null;
|
||||||
|
// try {
|
||||||
|
// os = response.getOutputStream();
|
||||||
|
// ImageIO.write(image, "png", os);
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// logger.error("获取验证码响应异常!" + e.getMessage(), e);
|
||||||
|
// } finally {
|
||||||
|
// try {
|
||||||
|
// assert os != null;
|
||||||
|
// os.close();
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// logger.error("获取验证码响应异常!" + e.getMessage(), e);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1455,6 +1455,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
// 配送方式
|
// 配送方式
|
||||||
cart_data.put("delivery_type_id", delivery_type_id);
|
cart_data.put("delivery_type_id", delivery_type_id);
|
||||||
|
|
||||||
|
|
||||||
// 修改为distributor_user_id
|
// 修改为distributor_user_id
|
||||||
Integer distributor_user_id = getParameter("distributor_user_id", Integer.class);
|
Integer distributor_user_id = getParameter("distributor_user_id", Integer.class);
|
||||||
if (CheckUtil.isNotEmpty(distributor_user_id)) {
|
if (CheckUtil.isNotEmpty(distributor_user_id)) {
|
||||||
@ -1573,6 +1574,10 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
|
|
||||||
cart_data.put("order_id", order_id_row);
|
cart_data.put("order_id", order_id_row);
|
||||||
|
|
||||||
|
// BigDecimal packingFee = BigDecimal.ZERO;
|
||||||
|
// if (1 == 1) {
|
||||||
|
// cart_data.put("packing_fee", packingFee);
|
||||||
|
// }
|
||||||
|
|
||||||
// 判断是否拼团购买
|
// 判断是否拼团购买
|
||||||
if (gb_id != null) {
|
if (gb_id != null) {
|
||||||
@ -5153,7 +5158,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
if (shopProductItem == null) {
|
if (shopProductItem == null) {
|
||||||
throw new ApiException(I18nUtil._("无法获取订单中的商品,请检查!"));
|
throw new ApiException(I18nUtil._("无法获取订单中的商品,请检查!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer item_quantity_frozen = shopProductItem.getItem_quantity_frozen();
|
Integer item_quantity_frozen = shopProductItem.getItem_quantity_frozen();
|
||||||
int quantity_frozen = item_quantity_frozen - order_item_quantity;
|
int quantity_frozen = item_quantity_frozen - order_item_quantity;
|
||||||
shopProductItem.setItem_quantity_frozen(quantity_frozen > 0 ? quantity_frozen : 0);
|
shopProductItem.setItem_quantity_frozen(quantity_frozen > 0 ? quantity_frozen : 0);
|
||||||
@ -6164,9 +6169,11 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
Integer kind_id = Convert.toInt(item.get("kind_id"));
|
Integer kind_id = Convert.toInt(item.get("kind_id"));
|
||||||
|
|
||||||
List<Integer> kinds = Arrays.asList(StateCode.PRODUCT_KIND_FUWU, StateCode.PRODUCT_KIND_CARD);
|
List<Integer> kinds = Arrays.asList(StateCode.PRODUCT_KIND_FUWU, StateCode.PRODUCT_KIND_CARD);
|
||||||
|
// 是否为虚拟商品订单
|
||||||
|
boolean isVirtualGoods = kinds.contains(kind_id);
|
||||||
// 新增用于判断次卡、优惠券、券码在订单种的类型
|
// 新增用于判断次卡、优惠券、券码在订单种的类型
|
||||||
ShopProductIndex shopProductIndex = null;
|
ShopProductIndex shopProductIndex = null;
|
||||||
if (kinds.contains(kind_id)) {
|
if (isVirtualGoods) {
|
||||||
if (item_items.size() > 1) {
|
if (item_items.size() > 1) {
|
||||||
throw new ApiException(I18nUtil._("服务类商品每单只可以购买一种商品"));
|
throw new ApiException(I18nUtil._("服务类商品每单只可以购买一种商品"));
|
||||||
}
|
}
|
||||||
@ -6325,13 +6332,28 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
//总金额 - 满减
|
//总金额 - 满减
|
||||||
BigDecimal order_money_select_items = Convert.toBigDecimal(store_item.get("order_money_select_items"));
|
BigDecimal order_money_select_items = Convert.toBigDecimal(store_item.get("order_money_select_items"));
|
||||||
BigDecimal freight = Convert.toBigDecimal(store_item.get("freight"));
|
BigDecimal freight = Convert.toBigDecimal(store_item.get("freight"));
|
||||||
|
|
||||||
|
// TODO 注:配送方式:5-到店自提;10-普通快递;16-同城配送;
|
||||||
|
Integer delivery_type_id = Convert.toInt(checkout_row.get("delivery_type_id")); //StateCode.DELIVERY_TYPE_SAME_CITY;
|
||||||
|
|
||||||
|
// 店铺统一设置的打包费
|
||||||
|
BigDecimal packingFee = BigDecimal.ZERO;
|
||||||
|
if (!isVirtualGoods && !is_virtual && delivery_type_id.equals(StateCode.DELIVERY_TYPE_SAME_CITY)) {
|
||||||
|
packingFee = shopStoreBaseService.getStorePackingFee(_store_id);
|
||||||
|
if (packingFee.compareTo(new BigDecimal("10")) > 0) {
|
||||||
|
packingFee = new BigDecimal("10");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BigDecimal voucher_price = Convert.toBigDecimal(order_voucher_row.get("voucher_price"));
|
BigDecimal voucher_price = Convert.toBigDecimal(order_voucher_row.get("voucher_price"));
|
||||||
// 应付款金额计算
|
// 【重要】应付款金额计算
|
||||||
BigDecimal order_payment_amount = NumberUtil.sub(NumberUtil.add(order_money_select_items, freight), voucher_price);
|
BigDecimal order_payment_amount = NumberUtil.sub(NumberUtil.add(order_money_select_items, freight, packingFee), voucher_price);
|
||||||
order_payment_amount = NumberUtil.sub(order_payment_amount, dedu_price);
|
order_payment_amount = NumberUtil.sub(order_payment_amount, dedu_price);
|
||||||
order_payment_amount = NumberUtil.max(order_payment_amount, BigDecimal.valueOf(0));
|
order_payment_amount = NumberUtil.max(order_payment_amount, BigDecimal.valueOf(0));
|
||||||
|
|
||||||
base_row.put("order_product_amount", Convert.toBigDecimal(store_item.get("productMoneyOriginGoods")));
|
base_row.put("order_product_amount", Convert.toBigDecimal(store_item.get("productMoneyOriginGoods")));
|
||||||
|
|
||||||
|
// 【重要】应付款金额计算
|
||||||
base_row.put("order_payment_amount", order_payment_amount);
|
base_row.put("order_payment_amount", order_payment_amount);
|
||||||
|
|
||||||
// 增加汇率
|
// 增加汇率
|
||||||
@ -6356,7 +6378,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
cart_type_id = 2;
|
cart_type_id = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 应付金额/应支付金额:order_goods_amount - order_discount_amount + order_shipping_fee - order_voucher_price - order_points_fee - order_adjust_fee
|
// 应付金额/应支付金额:order_goods_amount - order_discount_amount + order_shipping_fee + packing_fee - order_voucher_price - order_points_fee - order_adjust_fee
|
||||||
// 手工调整默认为0,order_points_fee积分折扣暂未开启
|
// 手工调整默认为0,order_points_fee积分折扣暂未开启
|
||||||
Integer store_id = Convert.toInt(store_item.get("store_id"));
|
Integer store_id = Convert.toInt(store_item.get("store_id"));
|
||||||
String store_name = Convert.toStr(store_item.get("store_name"));
|
String store_name = Convert.toStr(store_item.get("store_name"));
|
||||||
@ -6368,14 +6390,14 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
base_row.put("buyer_user_id", buyer_user_id);
|
base_row.put("buyer_user_id", buyer_user_id);
|
||||||
base_row.put("buyer_user_name", buyer_user_name);
|
base_row.put("buyer_user_name", buyer_user_name);
|
||||||
|
|
||||||
// 订单基础信息保存
|
|
||||||
ShopOrderBase baseRow = Convert.convert(ShopOrderBase.class, base_row);
|
ShopOrderBase baseRow = Convert.convert(ShopOrderBase.class, base_row);
|
||||||
|
// 订单基础信息保存
|
||||||
boolean flag = saveOrUpdate(baseRow);
|
boolean flag = saveOrUpdate(baseRow);
|
||||||
|
|
||||||
Integer chain_store_id = chain_row.getStore_id();
|
Integer chain_store_id = chain_row.getStore_id();
|
||||||
Integer base_store_id = (Integer) base_row.get("store_id");
|
Integer base_store_id = (Integer) base_row.get("store_id");
|
||||||
// TODO 注:配送方式:5-到店自提;10-普通快递;16-同城配送;
|
|
||||||
Integer delivery_type_id = (Integer) checkout_row.get("delivery_type_id"); //StateCode.DELIVERY_TYPE_SAME_CITY;
|
|
||||||
|
|
||||||
// 订单信息保存处理
|
// 订单信息保存处理
|
||||||
if (flag) {
|
if (flag) {
|
||||||
@ -6406,7 +6428,6 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
info_row.setOrder_id(order_id);
|
info_row.setOrder_id(order_id);
|
||||||
info_row.setOrder_title(product_item_name); // 订单标题
|
info_row.setOrder_title(product_item_name); // 订单标题
|
||||||
if (fixOrderVo != null && fixOrderVo.isFix_price() && StrUtil.isNotEmpty(fixOrderVo.getOrder_title())) {
|
if (fixOrderVo != null && fixOrderVo.isFix_price() && StrUtil.isNotEmpty(fixOrderVo.getOrder_title())) {
|
||||||
@ -6598,9 +6619,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
|
|
||||||
//均分组合套餐 (其余活动可视情况使用此处)
|
//均分组合套餐 (其余活动可视情况使用此处)
|
||||||
|
|
||||||
|
|
||||||
BigDecimal deduct_discount = BigDecimal.ZERO;
|
BigDecimal deduct_discount = BigDecimal.ZERO;
|
||||||
|
|
||||||
BigDecimal reduction_discount = BigDecimal.ZERO;
|
BigDecimal reduction_discount = BigDecimal.ZERO;
|
||||||
BigDecimal reduction_again_discount = BigDecimal.ZERO;
|
BigDecimal reduction_again_discount = BigDecimal.ZERO;
|
||||||
BigDecimal multple_discount = BigDecimal.ZERO;
|
BigDecimal multple_discount = BigDecimal.ZERO;
|
||||||
@ -6733,7 +6752,6 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
BigDecimal item_purchase_rate = Convert.toBigDecimal(_item.get("item_purchase_rate"));
|
BigDecimal item_purchase_rate = Convert.toBigDecimal(_item.get("item_purchase_rate"));
|
||||||
BigDecimal item_sales_rate = Convert.toBigDecimal(_item.get("item_sales_rate"));
|
BigDecimal item_sales_rate = Convert.toBigDecimal(_item.get("item_sales_rate"));
|
||||||
|
|
||||||
|
|
||||||
item_row.setOrder_id(order_id);
|
item_row.setOrder_id(order_id);
|
||||||
item_row.setBuyer_id((Integer) base_row.get("buyer_user_id")); // 买家user_id 冗余
|
item_row.setBuyer_id((Integer) base_row.get("buyer_user_id")); // 买家user_id 冗余
|
||||||
item_row.setStore_id((Integer) base_row.get("store_id")); // 店铺ID
|
item_row.setStore_id((Integer) base_row.get("store_id")); // 店铺ID
|
||||||
@ -6867,6 +6885,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
item_row.setActivity_type_id(StateCode.ACTIVITY_TYPE_MULTIPLE_FOLD); // 活动类型:0-默认;1101-加价购=搭配宝;1102-店铺满赠-小礼品;1103-限时折扣;1104-优惠套装;1105-店铺优惠券coupon优惠券;1106-拼团;1107-满减送;1108-阶梯价
|
item_row.setActivity_type_id(StateCode.ACTIVITY_TYPE_MULTIPLE_FOLD); // 活动类型:0-默认;1101-加价购=搭配宝;1102-店铺满赠-小礼品;1103-限时折扣;1104-优惠套装;1105-店铺优惠券coupon优惠券;1106-拼团;1107-满减送;1108-阶梯价
|
||||||
item_row.setActivity_id(actId); // 促销活动ID:与activity_type_id搭配使用, 团购ID/限时折扣ID/优惠套装ID
|
item_row.setActivity_id(actId); // 促销活动ID:与activity_type_id搭配使用, 团购ID/限时折扣ID/优惠套装ID
|
||||||
item_row.setOrder_item_discount_amount(NumberUtil.add(item_row.getOrder_item_discount_amount(), reduceMoney)); // 优惠金额 负数
|
item_row.setOrder_item_discount_amount(NumberUtil.add(item_row.getOrder_item_discount_amount(), reduceMoney)); // 优惠金额 负数
|
||||||
|
|
||||||
} else if (CollUtil.isNotEmpty(pulse_groupbooking) && gb_id != null) {
|
} else if (CollUtil.isNotEmpty(pulse_groupbooking) && gb_id != null) {
|
||||||
// 商品可以拼团,需要额外判断用户是否拼团购买
|
// 商品可以拼团,需要额外判断用户是否拼团购买
|
||||||
Integer activity_id = Convert.toInt(pulse_groupbooking.get("activity_id"));
|
Integer activity_id = Convert.toInt(pulse_groupbooking.get("activity_id"));
|
||||||
@ -7335,7 +7354,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new ApiException(String.format(I18nUtil._("商品: %s 已经下架,不可下单"), item.get("product_item_name")));
|
throw new ApiException(String.format(I18nUtil._("商品[%s]已下架,不可下单"), item.get("product_item_name")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7508,20 +7527,25 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
data_row.setOrder_heka(order_heka);
|
data_row.setOrder_heka(order_heka);
|
||||||
data_row.setInvoice_company_code(StrUtil.isNotBlank(invoice_company_code) ? invoice_company_code : ""); // 发票信息
|
data_row.setInvoice_company_code(StrUtil.isNotBlank(invoice_company_code) ? invoice_company_code : ""); // 发票信息
|
||||||
data_row.setOrder_message((String) order_message.get(StrUtil.toString(base_row.get("store_id")))); // 买家订单留言
|
data_row.setOrder_message((String) order_message.get(StrUtil.toString(base_row.get("store_id")))); // 买家订单留言
|
||||||
data_row.setOrder_item_amount(_order_money_select_items); // 商品总价格/商品金额, 不包含运费
|
|
||||||
|
data_row.setOrder_item_amount(_order_money_select_items); // 商品总价格/商品金额, 【不包含运费,不含打包费】
|
||||||
data_row.setOrder_adjust_fee(BigDecimal.valueOf(0)); // 手工调整费用店铺优惠
|
data_row.setOrder_adjust_fee(BigDecimal.valueOf(0)); // 手工调整费用店铺优惠
|
||||||
data_row.setOrder_points_fee(2 == cart_type_id ? points_amount : BigDecimal.valueOf(0)); // 积分费用, 只考虑每次兑换一个,此处直接复用item变量,反正只有一个
|
data_row.setOrder_points_fee(2 == cart_type_id ? points_amount : BigDecimal.valueOf(0)); // 积分费用, 只考虑每次兑换一个,此处直接复用item变量,反正只有一个
|
||||||
// 积分抵扣费用 是否采用负数?
|
// 积分抵扣费用 是否采用负数?
|
||||||
data_row.setOrder_discount_amount(order_discount_amount); // 折扣价格/优惠总金额
|
data_row.setOrder_discount_amount(order_discount_amount); // 折扣价格/优惠总金额
|
||||||
data_row.setOrder_shipping_fee_amount(_freight); // 运费价格/运费金额
|
data_row.setOrder_shipping_fee_amount(_freight); // 运费价格/运费金额
|
||||||
data_row.setOrder_shipping_fee(_freight); // 实际运费金额-卖家可修改
|
data_row.setOrder_shipping_fee(_freight); // 实际运费金额-卖家可修改
|
||||||
|
// 店铺统一设置的打包费
|
||||||
|
data_row.setPacking_fee(packingFee);
|
||||||
|
|
||||||
// 从 base_row 中获取应付款 order_payment_amount,计算平台和代理商的总计分账金额
|
// 从 base_row 中获取应付款 order_payment_amount,计算平台和代理商的总计分账金额
|
||||||
BigDecimal split_amount_from = order_payment_amount.subtract(_freight);
|
BigDecimal split_amount_from = NumberUtil.sub(order_payment_amount, _freight, packingFee);
|
||||||
|
|
||||||
BigDecimal platform_fee = calculatePlatformAndAgentShareAmount(Convert.toInt(base_row.get("store_id")), split_amount_from);
|
BigDecimal platform_fee = calculatePlatformAndAgentShareAmount(Convert.toInt(base_row.get("store_id")), split_amount_from);
|
||||||
data_row.setTotal_separate_value(platform_fee); // 从拉卡拉分账,给平台和代理商的总计分账金额
|
data_row.setTotal_separate_value(platform_fee); // 从拉卡拉分账,给平台和代理商的总计分账金额
|
||||||
data_row.setPlatform_fee(platform_fee);
|
data_row.setPlatform_fee(platform_fee);
|
||||||
|
|
||||||
|
|
||||||
Integer voucher_id = (Integer) order_voucher_row.get("voucher_id");
|
Integer voucher_id = (Integer) order_voucher_row.get("voucher_id");
|
||||||
String voucher_code = (String) order_voucher_row.get("voucher_code");
|
String voucher_code = (String) order_voucher_row.get("voucher_code");
|
||||||
BigDecimal _voucher_price = Convert.toBigDecimal(order_voucher_row.get("voucher_price"));
|
BigDecimal _voucher_price = Convert.toBigDecimal(order_voucher_row.get("voucher_price"));
|
||||||
|
|||||||
@ -294,9 +294,11 @@ public interface ShopProductBaseService extends IBaseService<ShopProductBase> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 加载商品
|
* 加载商品
|
||||||
|
*
|
||||||
* @param store_id
|
* @param store_id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Map<String,Long> getProductBasicIdByStore(Integer store_id,List<String> productNumberList);
|
Map<String, Long> getProductBasicIdByStore(Integer store_id, List<String> productNumberList);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4647,7 +4647,6 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
|
|||||||
@Override
|
@Override
|
||||||
public boolean isVirtual(Integer kind_id) {
|
public boolean isVirtual(Integer kind_id) {
|
||||||
List<Integer> kindIds = Arrays.asList(StateCode.PRODUCT_KIND_ENTITY, StateCode.PRODUCT_KIND_O2O);
|
List<Integer> kindIds = Arrays.asList(StateCode.PRODUCT_KIND_ENTITY, StateCode.PRODUCT_KIND_O2O);
|
||||||
|
|
||||||
return !kindIds.contains(kind_id);
|
return !kindIds.contains(kind_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -211,4 +211,12 @@ public interface ShopStoreBaseService extends IBaseService<ShopStoreBase> {
|
|||||||
String appendStoreIdToAccount(Integer userId, Integer storeId);
|
String appendStoreIdToAccount(Integer userId, Integer storeId);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取店铺统一设定的打包费
|
||||||
|
*
|
||||||
|
* @param storeId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
BigDecimal getStorePackingFee(Integer storeId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2308,7 +2308,6 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
|
|||||||
info.setStore_address(store_address);
|
info.setStore_address(store_address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
String store_opening_hours = getParameter("store_opening_hours");
|
String store_opening_hours = getParameter("store_opening_hours");
|
||||||
if (StrUtil.isNotBlank(store_opening_hours)) {
|
if (StrUtil.isNotBlank(store_opening_hours)) {
|
||||||
info.setStore_opening_hours(store_opening_hours);
|
info.setStore_opening_hours(store_opening_hours);
|
||||||
@ -2339,6 +2338,16 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
|
|||||||
base.setStore_biz_state(storeBizState);
|
base.setStore_biz_state(storeBizState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 打包费
|
||||||
|
BigDecimal packingFee = Convert.toBigDecimal(getParameter("packing_fee"));
|
||||||
|
if (packingFee != null && packingFee.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
if (packingFee.compareTo(new BigDecimal("10")) > 0) {
|
||||||
|
return CommonResult.failed("打包费请控制在0到10元范围");
|
||||||
|
}
|
||||||
|
base.setPacking_fee(packingFee);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 百度坐标系BD09经纬度 转出 火星坐标系GCJ02经纬度 (因为数据库保存的经纬度统一是GCJ02经纬度,所以需要转换 )
|
// 百度坐标系BD09经纬度 转出 火星坐标系GCJ02经纬度 (因为数据库保存的经纬度统一是GCJ02经纬度,所以需要转换 )
|
||||||
base = bd09ToGcj02Gps(base);
|
base = bd09ToGcj02Gps(base);
|
||||||
|
|
||||||
@ -2490,6 +2499,15 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 打包费、联系人、联系人手机
|
||||||
|
BigDecimal packingFee = Convert.toBigDecimal(getParameter("packing_fee"));
|
||||||
|
if (packingFee != null && packingFee.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
if (packingFee.compareTo(new BigDecimal("10")) > 0) {
|
||||||
|
return CommonResult.failed("打包费请控制在0到10元范围");
|
||||||
|
}
|
||||||
|
base.setPacking_fee(packingFee);
|
||||||
|
}
|
||||||
|
|
||||||
// 百度坐标系BD09经纬度 转出 火星坐标系GCJ02经纬度 (因为数据库保存的经纬度统一是GCJ02经纬度,所以需要转换 )
|
// 百度坐标系BD09经纬度 转出 火星坐标系GCJ02经纬度 (因为数据库保存的经纬度统一是GCJ02经纬度,所以需要转换 )
|
||||||
base = bd09ToGcj02Gps(base);
|
base = bd09ToGcj02Gps(base);
|
||||||
|
|
||||||
@ -3091,6 +3109,7 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
|
|||||||
shopStoreBase.setStore_name(shopMchEntry.getStore_name());
|
shopStoreBase.setStore_name(shopMchEntry.getStore_name());
|
||||||
shopStoreBase.setStore_category_id(shopMchEntry.getBiz_category()); // 重要,店铺分类id,对应 shop_base_store_category 表的分类
|
shopStoreBase.setStore_category_id(shopMchEntry.getBiz_category()); // 重要,店铺分类id,对应 shop_base_store_category 表的分类
|
||||||
shopStoreBase.setSplit_ratio(shopMchEntry.getSplit_ratio()); // 分账比例
|
shopStoreBase.setSplit_ratio(shopMchEntry.getSplit_ratio()); // 分账比例
|
||||||
|
shopStoreBase.setPacking_fee(BigDecimal.ZERO);// 默认0元打包费
|
||||||
String storeFacadeImage = shopMchEntry.getFront_facade_image();
|
String storeFacadeImage = shopMchEntry.getFront_facade_image();
|
||||||
String storeLogoImage = shopMchEntry.getStore_logo();
|
String storeLogoImage = shopMchEntry.getStore_logo();
|
||||||
if (StrUtil.isBlank(storeLogoImage)) {
|
if (StrUtil.isBlank(storeLogoImage)) {
|
||||||
@ -3136,10 +3155,15 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
|
|||||||
shopStoreInfo.setStore_opening_hours("08:00");
|
shopStoreInfo.setStore_opening_hours("08:00");
|
||||||
shopStoreInfo.setStore_close_hours("22:00");
|
shopStoreInfo.setStore_close_hours("22:00");
|
||||||
shopStoreInfo.setStore_discount(BigDecimal.valueOf(10));// 原价
|
shopStoreInfo.setStore_discount(BigDecimal.valueOf(10));// 原价
|
||||||
shopStoreInfo.setStore_tel(shopMchEntry.getLogin_mobile());
|
|
||||||
shopStoreInfo.setStore_banner(storeFacadeImage);
|
shopStoreInfo.setStore_banner(storeFacadeImage);
|
||||||
|
|
||||||
String websiteXFTC = "https://www.gpsxcs.cn";
|
// 联系人手机号码
|
||||||
|
String contact_mobile = StrUtil.isBlank(shopMchEntry.getLegal_person_mobile()) ? shopMchEntry.getLogin_mobile() : shopMchEntry.getLegal_person_mobile();
|
||||||
|
shopStoreInfo.setStore_tel(contact_mobile);
|
||||||
|
shopStoreInfo.setContact_mobile(contact_mobile);
|
||||||
|
shopStoreInfo.setContact_name(shopMchEntry.getContact_name());
|
||||||
|
|
||||||
|
String websiteXFTC = "https://www.gpxscs.cn";
|
||||||
JSONArray list = new JSONArray();
|
JSONArray list = new JSONArray();
|
||||||
if (StrUtil.isNotBlank(storeFacadeImage)) {
|
if (StrUtil.isNotBlank(storeFacadeImage)) {
|
||||||
JSONObject slide = new JSONObject();
|
JSONObject slide = new JSONObject();
|
||||||
@ -3856,5 +3880,28 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取店铺统一设定的打包费
|
||||||
|
*
|
||||||
|
* @param storeId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public BigDecimal getStorePackingFee(Integer storeId) {
|
||||||
|
if (storeId == null || storeId <= 0) {
|
||||||
|
return BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryWrapper<ShopStoreBase> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq("store_id", storeId).select("packing_fee");
|
||||||
|
|
||||||
|
ShopStoreBase shopStoreBase = shopStoreBaseService.findOne(queryWrapper);
|
||||||
|
if (shopStoreBase != null) {
|
||||||
|
return shopStoreBase.getPacking_fee();
|
||||||
|
}
|
||||||
|
|
||||||
|
return BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -570,6 +570,7 @@
|
|||||||
<result property="order_product_amount" column="order_product_amount"/>
|
<result property="order_product_amount" column="order_product_amount"/>
|
||||||
<result property="order_payment_amount" column="order_payment_amount"/>
|
<result property="order_payment_amount" column="order_payment_amount"/>
|
||||||
<result property="order_shipping_fee" column="order_shipping_fee"/>
|
<result property="order_shipping_fee" column="order_shipping_fee"/>
|
||||||
|
<result property="packing_fee" column="packing_fee"/>
|
||||||
<!--总计优惠金额 order_discount_amount + order_voucher_price + order_points_fee + order_adjust_fee-->
|
<!--总计优惠金额 order_discount_amount + order_voucher_price + order_points_fee + order_adjust_fee-->
|
||||||
<result property="total_discount_amount" column="total_discount_amount"/>
|
<result property="total_discount_amount" column="total_discount_amount"/>
|
||||||
<result property="order_income_amount" column="order_income_amount"/>
|
<result property="order_income_amount" column="order_income_amount"/>
|
||||||
@ -579,7 +580,6 @@
|
|||||||
<result property="currency_id" column="currency_id"/>
|
<result property="currency_id" column="currency_id"/>
|
||||||
<result property="order_state_id" column="order_state_id"/>
|
<result property="order_state_id" column="order_state_id"/>
|
||||||
<result property="delivery_type_id" column="delivery_type_id"/>
|
<result property="delivery_type_id" column="delivery_type_id"/>
|
||||||
<result property="order_shipping_fee" column="order_shipping_fee"/>
|
|
||||||
<result property="distance" column="distance"/>
|
<result property="distance" column="distance"/>
|
||||||
|
|
||||||
<!-- 店铺嵌套对象映射 -->
|
<!-- 店铺嵌套对象映射 -->
|
||||||
@ -625,7 +625,7 @@
|
|||||||
<result property="h5_url" column="h5_url"/>
|
<result property="h5_url" column="h5_url"/>
|
||||||
<result property="feed" column="feed"/>
|
<result property="feed" column="feed"/>
|
||||||
</association>
|
</association>
|
||||||
|
|
||||||
<!-- 订单商品集合映射-->
|
<!-- 订单商品集合映射-->
|
||||||
<collection property="order_items" ofType="com.suisung.mall.common.modules.order.dto.MchOrderItemDTO">
|
<collection property="order_items" ofType="com.suisung.mall.common.modules.order.dto.MchOrderItemDTO">
|
||||||
<result property="product_id" column="product_id"/>
|
<result property="product_id" column="product_id"/>
|
||||||
@ -782,6 +782,7 @@
|
|||||||
(ob.order_product_amount-od.order_discount_amount-od.voucher_price-od.order_points_fee-od.order_adjust_fee-od.platform_fee-od.order_shipping_fee)
|
(ob.order_product_amount-od.order_discount_amount-od.voucher_price-od.order_points_fee-od.order_adjust_fee-od.platform_fee-od.order_shipping_fee)
|
||||||
as order_income_amount,
|
as order_income_amount,
|
||||||
od.platform_fee,
|
od.platform_fee,
|
||||||
|
od.packing_fee,
|
||||||
od.order_message,
|
od.order_message,
|
||||||
sb.store_id,
|
sb.store_id,
|
||||||
sb.store_name,
|
sb.store_name,
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
, order_desc, order_delay_time, delivery_type_id, delivery_time_id, delivery_time, delivery_time_rang,
|
, order_desc, order_delay_time, delivery_type_id, delivery_time_id, delivery_time, delivery_time_rang,
|
||||||
delivery_time_h, delivery_time_i, delivery_istimer, invoice_type_id, invoice_company_code, order_invoice_title,
|
delivery_time_h, delivery_time_i, delivery_istimer, invoice_type_id, invoice_company_code, order_invoice_title,
|
||||||
order_message, order_item_amount, order_discount_amount, order_adjust_fee, order_points_fee,
|
order_message, order_item_amount, order_discount_amount, order_adjust_fee, order_points_fee,
|
||||||
order_shipping_fee_amount, order_shipping_fee, platform_fee, voucher_id, voucher_number, voucher_price, redpacket_id,
|
order_shipping_fee_amount, order_shipping_fee, platform_fee, packing_fee, voucher_id, voucher_number, voucher_price, redpacket_id,
|
||||||
redpacket_number, redpacket_price, order_redpacket_price, order_resource_ext1, order_resource_ext2,
|
redpacket_number, redpacket_price, order_redpacket_price, order_resource_ext1, order_resource_ext2,
|
||||||
order_resource_ext3, trade_payment_money, trade_payment_recharge_card, trade_payment_credit,
|
order_resource_ext3, trade_payment_money, trade_payment_recharge_card, trade_payment_credit,
|
||||||
order_refund_status, order_refund_amount, order_refund_agree_amount, order_return_status, order_return_num,
|
order_refund_status, order_refund_amount, order_refund_agree_amount, order_return_status, order_return_num,
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
store_address, store_latitude, store_longitude, store_is_selfsupport, store_type, store_is_open, store_biz_state, shop_parent_id,
|
store_address, store_latitude, store_longitude, store_is_selfsupport, store_type, store_is_open, store_biz_state, shop_parent_id,
|
||||||
store_category_id, store_state_id, store_time, store_end_time, product_category_ids, store_o2o_tags,
|
store_category_id, store_state_id, store_time, store_end_time, product_category_ids, store_o2o_tags,
|
||||||
store_o2o_flag, store_o2o_merchant_id, store_circle, subsite_id, lkl_merchant_no, lkl_term_no, wx_qrcode,
|
store_o2o_flag, store_o2o_merchant_id, store_circle, subsite_id, lkl_merchant_no, lkl_term_no, wx_qrcode,
|
||||||
split_ratio
|
split_ratio, packing_fee, created_at, updated_at
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="statisticState" resultType="java.util.Map">
|
<select id="statisticState" resultType="java.util.Map">
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@ -548,7 +548,7 @@
|
|||||||
<!--定义基础镜像-->
|
<!--定义基础镜像-->
|
||||||
<!-- <baseImage>java:8</baseImage>-->
|
<!-- <baseImage>java:8</baseImage>-->
|
||||||
<!-- <baseImage>openjdk:8-jre</baseImage>-->
|
<!-- <baseImage>openjdk:8-jre</baseImage>-->
|
||||||
<baseImage>openjdk:8-jre</baseImage>
|
<baseImage>openjdk:8-jre-alpine</baseImage>
|
||||||
<!--定义容器启动命令,注意不能换行-->
|
<!--定义容器启动命令,注意不能换行-->
|
||||||
<entryPoint>["java", "-jar", "-Xms128m", "-Xmx512m", "-XX:MetaspaceSize=128m", "-XX:MaxMetaspaceSize=256m", "-XX:+UseContainerSupport", "-XX:MaxRAMPercentage=60.0", "-XX:+UseSerialGC", "-XX:MinHeapFreeRatio=40", "-XX:MaxHeapFreeRatio=60", "-Dspring.profiles.active=${spring.profile}", "-Duser.timezone=Asia/Shanghai", "/${project.build.finalName}.jar"]
|
<entryPoint>["java", "-jar", "-Xms128m", "-Xmx512m", "-XX:MetaspaceSize=128m", "-XX:MaxMetaspaceSize=256m", "-XX:+UseContainerSupport", "-XX:MaxRAMPercentage=60.0", "-XX:+UseSerialGC", "-XX:MinHeapFreeRatio=40", "-XX:MaxHeapFreeRatio=60", "-Dspring.profiles.active=${spring.profile}", "-Duser.timezone=Asia/Shanghai", "/${project.build.finalName}.jar"]
|
||||||
</entryPoint>
|
</entryPoint>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user