fix conflict
This commit is contained in:
commit
04041627f5
|
|
@ -0,0 +1,52 @@
|
|||
package com.bonus.utils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
public class Arith {
|
||||
private static final int DEF_DIV_SCALE = 10;
|
||||
|
||||
private Arith() {
|
||||
}
|
||||
|
||||
public static double add(double v1, double v2) {
|
||||
BigDecimal b1 = new BigDecimal(Double.toString(v1));
|
||||
BigDecimal b2 = new BigDecimal(Double.toString(v2));
|
||||
return b1.add(b2).doubleValue();
|
||||
}
|
||||
|
||||
public static double sub(double v1, double v2) {
|
||||
BigDecimal b1 = new BigDecimal(Double.toString(v1));
|
||||
BigDecimal b2 = new BigDecimal(Double.toString(v2));
|
||||
return b1.subtract(b2).doubleValue();
|
||||
}
|
||||
|
||||
public static double mul(double v1, double v2) {
|
||||
BigDecimal b1 = new BigDecimal(Double.toString(v1));
|
||||
BigDecimal b2 = new BigDecimal(Double.toString(v2));
|
||||
return b1.multiply(b2).doubleValue();
|
||||
}
|
||||
|
||||
public static double div(double v1, double v2) {
|
||||
return div(v1, v2, 10);
|
||||
}
|
||||
|
||||
public static double div(double v1, double v2, int scale) {
|
||||
if (scale < 0) {
|
||||
throw new IllegalArgumentException("The scale must be a positive integer or zero");
|
||||
} else {
|
||||
BigDecimal b1 = new BigDecimal(Double.toString(v1));
|
||||
BigDecimal b2 = new BigDecimal(Double.toString(v2));
|
||||
return b1.divide(b2, scale, 4).doubleValue();
|
||||
}
|
||||
}
|
||||
|
||||
public static double round(double v, int scale) {
|
||||
if (scale < 0) {
|
||||
throw new IllegalArgumentException("The scale must be a positive integer or zero");
|
||||
} else {
|
||||
BigDecimal b = new BigDecimal(Double.toString(v));
|
||||
BigDecimal one = new BigDecimal("1");
|
||||
return b.divide(one, scale, 4).doubleValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +1,13 @@
|
|||
package com.bonus.core.common.enums;
|
||||
|
||||
import com.bonus.core.common.converter.LeExcelFieldConvertor;
|
||||
import com.bonus.core.common.converter.LeExcelFieldEnum;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
//public enum DeliveryTypeEnum implements LeExcelFieldEnum<DeliveryTypeEnum> {
|
||||
public enum DeliveryTypeEnum {
|
||||
public enum DeliveryTypeEnum implements LeExcelFieldEnum<DeliveryTypeEnum> {
|
||||
SELF_TAKE(1, "自取堂食"),
|
||||
MERCHANT(2, "商家配送"),
|
||||
DINING_CABINET(3, "取餐柜配送"),
|
||||
|
|
@ -80,17 +81,22 @@ public enum DeliveryTypeEnum {
|
|||
return getTypeEnum(key) != NONE;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Integer getKey() {
|
||||
return this.key;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getDesc() {
|
||||
return this.desc;
|
||||
}
|
||||
|
||||
// public static class ExcelConvertor extends LeExcelFieldConvertor<DeliveryTypeEnum> {
|
||||
// public ExcelConvertor() {
|
||||
// super(DeliveryTypeEnum.class);
|
||||
// }
|
||||
// }
|
||||
public static class ExcelConvertor extends LeExcelFieldConvertor<DeliveryTypeEnum> {
|
||||
public ExcelConvertor() {
|
||||
super(DeliveryTypeEnum.class);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,503 @@
|
|||
package com.bonus.core.common.utils;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import com.fasterxml.jackson.core.JsonParseException;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.*;
|
||||
import com.fasterxml.jackson.databind.module.SimpleModule;
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class JacksonUtil {
|
||||
private static final ObjectMapper objectMapper;
|
||||
private static final ObjectMapper objectMapperIgnoreNull;
|
||||
private static final Logger logger;
|
||||
|
||||
public static ObjectMapper getInstance() {
|
||||
return objectMapper;
|
||||
}
|
||||
|
||||
public static ObjectMapper getInstanceIgnoreNull() {
|
||||
return objectMapperIgnoreNull;
|
||||
}
|
||||
|
||||
public static ObjectNode objectNode() {
|
||||
return getInstance().createObjectNode();
|
||||
}
|
||||
|
||||
public static ArrayNode arrayNode() {
|
||||
return getInstance().createArrayNode();
|
||||
}
|
||||
|
||||
public static boolean isNull(JsonNode jsonNode) {
|
||||
return jsonNode == null || jsonNode.isNull() || jsonNode.isMissingNode();
|
||||
}
|
||||
|
||||
public static boolean isNullOrEmpty(JsonNode jsonNode) {
|
||||
return jsonNode == null || jsonNode.isNull() || jsonNode.isMissingNode() || jsonNode.isEmpty();
|
||||
}
|
||||
|
||||
public static String writeValueAsString(Object obj) {
|
||||
try {
|
||||
return getInstance().writeValueAsString(obj);
|
||||
} catch (IOException var2) {
|
||||
logger.error(var2.getMessage(), var2);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static Optional<String> writeValueAsStringOptional(Object obj) {
|
||||
return Optional.ofNullable(writeValueAsString(obj));
|
||||
}
|
||||
|
||||
public static String writeValueAsStringIgnoreNull(Object obj) {
|
||||
try {
|
||||
return getInstanceIgnoreNull().writeValueAsString(obj);
|
||||
} catch (IOException var2) {
|
||||
logger.error(var2.getMessage(), var2);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static Optional<String> writeValueAsStringIgnoreNullOptional(Object obj) {
|
||||
return Optional.ofNullable(writeValueAsStringIgnoreNull(obj));
|
||||
}
|
||||
|
||||
public static <T> T readValue(String jsonStr, TypeReference<T> valueTypeRef) {
|
||||
try {
|
||||
return getInstance().readValue(jsonStr, valueTypeRef);
|
||||
} catch (JsonParseException var3) {
|
||||
logger.error(var3.getMessage(), var3);
|
||||
} catch (JsonMappingException var4) {
|
||||
logger.error(var4.getMessage(), var4);
|
||||
} catch (IOException var5) {
|
||||
logger.error(var5.getMessage(), var5);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static <T> Optional<T> readValueOptional(String jsonStr, TypeReference<T> valueTypeRef) {
|
||||
return Optional.ofNullable(readValue(jsonStr, valueTypeRef));
|
||||
}
|
||||
|
||||
public static <T> T readValue(String jsonStr, Class<T> clazz) {
|
||||
try {
|
||||
return getInstance().readValue(jsonStr, clazz);
|
||||
} catch (JsonParseException var3) {
|
||||
logger.error(var3.getMessage(), var3);
|
||||
} catch (JsonMappingException var4) {
|
||||
logger.error(var4.getMessage(), var4);
|
||||
} catch (Exception var5) {
|
||||
logger.error(var5.getMessage(), var5);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static <T> Optional<T> readValueOptional(String jsonStr, Class<T> clazz) {
|
||||
return Optional.ofNullable(readValue(jsonStr, clazz));
|
||||
}
|
||||
|
||||
public static <T> T readValueOrEmpty(String jsonStr, Class<T> clazz) throws InvocationTargetException, InstantiationException, IllegalAccessException, NoSuchMethodException {
|
||||
try {
|
||||
T t = readValue(jsonStr, clazz);
|
||||
return t != null ? t : clazz.getDeclaredConstructor().newInstance();
|
||||
} catch (Throwable var3) {
|
||||
throw var3;
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> T readValue(String jsonStr, Class<?> parametrized, Class<?>... parameterClasses) {
|
||||
try {
|
||||
JavaType javaType = getInstance().getTypeFactory().constructParametricType(parametrized, parameterClasses);
|
||||
return getInstance().readValue(jsonStr, javaType);
|
||||
} catch (JsonParseException var4) {
|
||||
logger.error(var4.getMessage(), var4);
|
||||
} catch (JsonMappingException var5) {
|
||||
logger.error(var5.getMessage(), var5);
|
||||
} catch (IOException var6) {
|
||||
logger.error(var6.getMessage(), var6);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static <T> List<T> readList(String jsonStr, Class<?>... parameterClasses) {
|
||||
List<T> list = (List)readValue(jsonStr, List.class, parameterClasses);
|
||||
return (List)(list != null ? list : CollUtil.newArrayList(new Object[0]));
|
||||
}
|
||||
|
||||
public static JsonNode readTree(String jsonStr) {
|
||||
try {
|
||||
return getInstance().readTree(jsonStr);
|
||||
} catch (IOException var2) {
|
||||
logger.error(var2.getMessage(), var2);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonNode readTreeOrMissing(String jsonStr) {
|
||||
JsonNode jsonNode = readTree(jsonStr);
|
||||
return jsonNode != null ? jsonNode : getInstance().missingNode();
|
||||
}
|
||||
|
||||
public static <T> T treeToValue(JsonNode node, Class<T> clz) {
|
||||
try {
|
||||
return getInstance().treeToValue(node, clz);
|
||||
} catch (IOException var3) {
|
||||
logger.error(var3.getMessage(), var3);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> Optional<T> treeToValueOptional(JsonNode node, Class<T> clz) {
|
||||
return Optional.ofNullable(treeToValue(node, clz));
|
||||
}
|
||||
|
||||
public static <T> T treeToValueOrEmpty(JsonNode node, Class<T> clz) throws InvocationTargetException, InstantiationException, IllegalAccessException, NoSuchMethodException {
|
||||
try {
|
||||
T t = treeToValue(node, clz);
|
||||
return t != null ? t : clz.getDeclaredConstructor().newInstance();
|
||||
} catch (Throwable var3) {
|
||||
throw var3;
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> T treeToValue(JsonNode node, TypeReference<T> typeR) {
|
||||
try {
|
||||
JavaType javaType = getInstance().getTypeFactory().constructType(typeR);
|
||||
return getInstance().treeToValue(node, javaType);
|
||||
} catch (IOException var3) {
|
||||
logger.error(var3.getMessage(), var3);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> T treeToValue(JsonNode node, Class<?> parametrized, Class<?>... parameterClasses) {
|
||||
try {
|
||||
JavaType javaType = getInstance().getTypeFactory().constructParametricType(parametrized, parameterClasses);
|
||||
return getInstance().treeToValue(node, javaType);
|
||||
} catch (IOException var4) {
|
||||
logger.error(var4.getMessage(), var4);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> Optional<T> treeToValueOptional(JsonNode node, Class<?> parametrized, Class<?>... parameterClasses) {
|
||||
return Optional.ofNullable(treeToValue(node, parametrized, parameterClasses));
|
||||
}
|
||||
|
||||
public static <T> List<T> treeToList(JsonNode node, Class<T>... parameterClasses) {
|
||||
List<T> list = (List)treeToValue(node, List.class, parameterClasses);
|
||||
return (List)(list != null ? list : CollUtil.newArrayList(new Object[0]));
|
||||
}
|
||||
|
||||
public static JsonNode valueToTree(Object obj) {
|
||||
return getInstance().valueToTree(obj);
|
||||
}
|
||||
|
||||
public static JsonNode valueToTreeIgnoreNull(Object obj) {
|
||||
return getInstanceIgnoreNull().valueToTree(obj);
|
||||
}
|
||||
|
||||
public static int getIntValue(JsonNode jsonNode, String key, int defaultValue) {
|
||||
if (jsonNode != null && !jsonNode.isNull() && !jsonNode.isMissingNode()) {
|
||||
JsonNode node = jsonNode.get(key);
|
||||
return node != null && !node.isNull() && !node.isMissingNode() ? node.asInt(defaultValue) : defaultValue;
|
||||
} else {
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
public static Integer getInt(JsonNode jsonNode, String key) {
|
||||
if (jsonNode != null && !jsonNode.isNull() && !jsonNode.isMissingNode()) {
|
||||
JsonNode node = jsonNode.get(key);
|
||||
return node != null && !node.isNull() && !node.isMissingNode() ? node.asInt() : null;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static long getLongValue(JsonNode jsonNode, String key, long defaultValue) {
|
||||
if (jsonNode != null && !jsonNode.isNull() && !jsonNode.isMissingNode()) {
|
||||
JsonNode node = jsonNode.get(key);
|
||||
return node != null && !node.isNull() && !node.isMissingNode() ? node.asLong(defaultValue) : defaultValue;
|
||||
} else {
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
public static Long getLong(JsonNode jsonNode, String key) {
|
||||
if (jsonNode != null && !jsonNode.isNull() && !jsonNode.isMissingNode()) {
|
||||
JsonNode node = jsonNode.get(key);
|
||||
return node != null && !node.isNull() && !node.isMissingNode() ? node.asLong() : null;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static double getDoubleValue(JsonNode jsonNode, String key, double defaultValue) {
|
||||
if (jsonNode != null && !jsonNode.isNull() && !jsonNode.isMissingNode()) {
|
||||
JsonNode node = jsonNode.get(key);
|
||||
return node != null && !node.isNull() && !node.isMissingNode() ? node.asDouble(defaultValue) : defaultValue;
|
||||
} else {
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
public static Double getDouble(JsonNode jsonNode, String key) {
|
||||
if (jsonNode != null && !jsonNode.isNull() && !jsonNode.isMissingNode()) {
|
||||
JsonNode node = jsonNode.get(key);
|
||||
return node != null && !node.isNull() && !node.isMissingNode() ? node.asDouble() : null;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static String getStringValue(JsonNode jsonNode, String key, String defaultValue) {
|
||||
return jsonNode.path(key).asText(defaultValue);
|
||||
}
|
||||
|
||||
public static String getString(JsonNode jsonNode, String key) {
|
||||
return getStringValue(jsonNode, key, (String)null);
|
||||
}
|
||||
|
||||
public static JsonNode getByPath(JsonNode node, String expression) {
|
||||
if (StringUtils.isEmpty(expression)) {
|
||||
return node;
|
||||
} else {
|
||||
JsonNode result = node;
|
||||
String[] var3 = StringUtils.split(expression, ".");
|
||||
int var4 = var3.length;
|
||||
|
||||
for(int var5 = 0; var5 < var4; ++var5) {
|
||||
String path = var3[var5];
|
||||
if (StrUtil.contains(path, "[") && StrUtil.contains(path, "]")) {
|
||||
String aryPath = StrUtil.subBefore(path, "[", false);
|
||||
int idxPath = NumberUtil.parseInt(StrUtil.subBetween(path, "[", "]"));
|
||||
if (idxPath < 0) {
|
||||
idxPath += result.path(aryPath).size();
|
||||
}
|
||||
|
||||
result = result.path(aryPath).path(idxPath);
|
||||
} else {
|
||||
result = result.path(path);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> T getValueByPath(String jsonStr, String expression, T defaultValue) {
|
||||
JsonNode jsonNode = readTreeOrMissing(jsonStr);
|
||||
return getValueByPath(jsonNode, expression, defaultValue);
|
||||
}
|
||||
|
||||
public static <T> T getValueByPath(JsonNode jsonNode, String expression, T defaultValue) {
|
||||
if (jsonNode == null) {
|
||||
return defaultValue;
|
||||
} else {
|
||||
JsonNode nodeByPath = getByPath(jsonNode, expression);
|
||||
T value = treeToValue(nodeByPath, new TypeReference<T>() {
|
||||
});
|
||||
return value != null ? value : defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
public static void putByPath(JsonNode node, String expression, Object value) {
|
||||
if (node.isObject()) {
|
||||
JsonNode currentNode = node;
|
||||
Iterator<String> iterator = Arrays.stream(StringUtils.split(expression, ".")).iterator();
|
||||
|
||||
while(true) {
|
||||
while(iterator.hasNext()) {
|
||||
String path = (String)iterator.next();
|
||||
if (StrUtil.contains(path, "[") && StrUtil.contains(path, "]")) {
|
||||
String aryPath = StrUtil.subBefore(path, "[", false);
|
||||
int idxPath = NumberUtil.parseInt(StrUtil.subBetween(path, "[", "]"));
|
||||
if (idxPath < 0) {
|
||||
idxPath += currentNode.path(aryPath).size();
|
||||
}
|
||||
|
||||
if (!currentNode.path(aryPath).isArray()) {
|
||||
((ObjectNode)currentNode).putArray(aryPath);
|
||||
}
|
||||
|
||||
currentNode = currentNode.path(aryPath);
|
||||
if (idxPath >= currentNode.size()) {
|
||||
((ArrayNode)currentNode).add(objectNode());
|
||||
idxPath = currentNode.size() - 1;
|
||||
}
|
||||
|
||||
if (!iterator.hasNext()) {
|
||||
if (value instanceof String) {
|
||||
((ArrayNode)currentNode).set(idxPath, (String)value);
|
||||
} else if (value instanceof JsonNode) {
|
||||
((ArrayNode)currentNode).set(idxPath, (JsonNode)value);
|
||||
} else {
|
||||
((ArrayNode)currentNode).set(idxPath, valueToTree(value));
|
||||
}
|
||||
} else {
|
||||
JsonNode nodeByPath = currentNode.path(idxPath);
|
||||
if (nodeByPath.isObject()) {
|
||||
currentNode = nodeByPath;
|
||||
} else {
|
||||
((ObjectNode)currentNode).putObject(path);
|
||||
currentNode = currentNode.path(path);
|
||||
}
|
||||
}
|
||||
} else if (!iterator.hasNext()) {
|
||||
if (value instanceof String) {
|
||||
((ObjectNode)currentNode).put(path, (String)value);
|
||||
} else if (value instanceof JsonNode) {
|
||||
((ObjectNode)currentNode).set(path, (JsonNode)value);
|
||||
} else {
|
||||
((ObjectNode)currentNode).set(path, valueToTree(value));
|
||||
}
|
||||
} else {
|
||||
JsonNode nodeByPath = currentNode.path(path);
|
||||
if (nodeByPath.isObject()) {
|
||||
currentNode = nodeByPath;
|
||||
} else {
|
||||
((ObjectNode)currentNode).putObject(path);
|
||||
currentNode = currentNode.path(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static ArrayNode treeToList(JsonNode param, String childrenColumn, String idColumn, String parentIdColumn, String parentIdValue, String sortColumn) {
|
||||
if (param != null && !param.isMissingNode()) {
|
||||
ArrayNode result = doTreeToList(param.deepCopy(), childrenColumn, idColumn, parentIdColumn, parentIdValue);
|
||||
if (CharSequenceUtil.isNotBlank(sortColumn)) {
|
||||
ArrayList<JsonNode> jsonNodes = CollUtil.newArrayList(result.elements());
|
||||
jsonNodes.sort((o1, o2) -> {
|
||||
String column1 = o1.path(sortColumn).asText();
|
||||
String column2 = o2.path(sortColumn).asText();
|
||||
return NumberUtil.isNumber(column1) && NumberUtil.isNumber(column2) ? NumberUtil.toBigDecimal(column1).compareTo(NumberUtil.toBigDecimal(column2)) : CharSequenceUtil.compare(column1, column2, true);
|
||||
});
|
||||
result.removeAll();
|
||||
result.addAll(jsonNodes);
|
||||
}
|
||||
|
||||
return result;
|
||||
} else {
|
||||
return arrayNode();
|
||||
}
|
||||
}
|
||||
|
||||
public static ArrayNode listToTree(JsonNode param, String childrenColumn, String idColumn, String parentIdColumn, String rootParentIdValue) {
|
||||
if (param != null && !param.isMissingNode() && !param.isEmpty() && param.isArray()) {
|
||||
ArrayNode nodeList = (ArrayNode)param.deepCopy();
|
||||
Map<String, JsonNode> nodeMap = (Map)CollUtil.newArrayList(nodeList.elements()).stream().collect(Collectors.toMap((nodex) -> {
|
||||
return nodex.path(idColumn).asText();
|
||||
}, (nodex) -> {
|
||||
return nodex;
|
||||
}));
|
||||
Iterator elements = nodeList.iterator();
|
||||
|
||||
JsonNode node;
|
||||
while(elements.hasNext()) {
|
||||
node = (JsonNode)elements.next();
|
||||
JsonNode paramNode = (JsonNode)nodeMap.get(node.path(parentIdColumn).asText());
|
||||
if (paramNode != null) {
|
||||
if (paramNode.get(childrenColumn) == null) {
|
||||
((ObjectNode)paramNode).putArray(childrenColumn);
|
||||
}
|
||||
|
||||
((ArrayNode)paramNode.get(childrenColumn)).add(node);
|
||||
}
|
||||
}
|
||||
|
||||
elements = nodeList.elements();
|
||||
|
||||
while(elements.hasNext()) {
|
||||
node = (JsonNode)elements.next();
|
||||
if (CharSequenceUtil.isBlank(rootParentIdValue)) {
|
||||
if (!node.path(parentIdColumn).isMissingNode() && !node.path(parentIdColumn).isNull()) {
|
||||
elements.remove();
|
||||
}
|
||||
} else if (!rootParentIdValue.equals(node.path(parentIdColumn).asText())) {
|
||||
elements.remove();
|
||||
}
|
||||
}
|
||||
|
||||
return nodeList;
|
||||
} else {
|
||||
return arrayNode();
|
||||
}
|
||||
}
|
||||
|
||||
private static ArrayNode doTreeToList(JsonNode param, String childrenColumn, String idColumn, String parentIdColumn, String parentIdValue) {
|
||||
ArrayNode result = arrayNode();
|
||||
if (param.isArray()) {
|
||||
Iterator var6 = param.iterator();
|
||||
|
||||
while(var6.hasNext()) {
|
||||
JsonNode node = (JsonNode)var6.next();
|
||||
result.addAll(doTreeToList(node, childrenColumn, idColumn, parentIdColumn, parentIdValue));
|
||||
}
|
||||
} else if (param.isObject()) {
|
||||
ObjectNode node = (ObjectNode)param;
|
||||
String nodeId = node.path(idColumn).asText();
|
||||
JsonNode children = node.get(childrenColumn);
|
||||
if (children != null && !children.isMissingNode()) {
|
||||
result.addAll(doTreeToList(children, childrenColumn, idColumn, parentIdColumn, nodeId));
|
||||
}
|
||||
|
||||
if (node.path(parentIdColumn).isMissingNode()) {
|
||||
node.put(parentIdColumn, parentIdValue);
|
||||
}
|
||||
|
||||
node.remove(childrenColumn);
|
||||
result.add(node);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static {
|
||||
objectMapper = (new ObjectMapper()).configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).registerModule((new SimpleModule()).addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))).addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss"))).addSerializer(Long.class, new JsonSerializer<Long>() {
|
||||
@Override
|
||||
public void serialize(Long value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
||||
gen.writeString(String.valueOf(value));
|
||||
}
|
||||
}).addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))).addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern("HH:mm:ss"))));
|
||||
objectMapperIgnoreNull = (new ObjectMapper()).configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).setSerializationInclusion(Include.NON_NULL).registerModule((new SimpleModule()).addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))).addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss"))).addSerializer(Long.class, new JsonSerializer<Long>() {
|
||||
@Override
|
||||
public void serialize(Long value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
||||
gen.writeString(String.valueOf(value));
|
||||
}
|
||||
}).addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))).addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern("HH:mm:ss"))));
|
||||
logger = LoggerFactory.getLogger(JacksonUtil.class);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
package com.bonus.core.common.utils;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.bonus.common.core.exception.ServiceException;
|
||||
import com.bonus.constant.RetCodeEnum;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.validation.ConstraintViolation;
|
||||
import javax.validation.Validator;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class JavaxValidateUtils {
|
||||
private static final Logger log = LoggerFactory.getLogger(JavaxValidateUtils.class);
|
||||
|
||||
public static <T> void validate(T object) {
|
||||
Set<ConstraintViolation<T>> violations = validator().validate(object, new Class[0]);
|
||||
if (!violations.isEmpty()) {
|
||||
ConstraintViolation<T> firstViolation = (ConstraintViolation)CollUtil.getFirst(violations);
|
||||
throw new ServiceException(messageFormat(firstViolation), RetCodeEnum.CORE_PARAM_ERROR.getKey());
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> void validate(T object, Function<T, Boolean> additionalCondition) {
|
||||
Set<ConstraintViolation<T>> violations = validator().validate(object, new Class[0]);
|
||||
if (!violations.isEmpty()) {
|
||||
ConstraintViolation<T> firstViolation = (ConstraintViolation)CollUtil.getFirst(violations);
|
||||
throw new ServiceException(messageFormat(firstViolation), RetCodeEnum.CORE_PARAM_ERROR.getKey());
|
||||
} else if (additionalCondition != null && !(Boolean)additionalCondition.apply(object)) {
|
||||
throw new ServiceException("请传入有效参数", RetCodeEnum.CORE_PARAM_ERROR.getKey());
|
||||
}
|
||||
}
|
||||
|
||||
private static <T> String messageFormat(ConstraintViolation<T> firstViolation) {
|
||||
String fieldName = firstViolation.getPropertyPath().toString();
|
||||
String fieldDesc;
|
||||
String errorMsg;
|
||||
if (fieldName.contains(".")) {
|
||||
errorMsg = (String)CollUtil.getLast(StrUtil.split(firstViolation.getPropertyPath().toString(), "."));
|
||||
fieldDesc = LogUtil.getDescOfField(firstViolation.getLeafBean().getClass(), errorMsg);
|
||||
} else {
|
||||
fieldDesc = LogUtil.getDescOfField(firstViolation.getRootBeanClass(), firstViolation.getPropertyPath().toString());
|
||||
}
|
||||
|
||||
errorMsg = firstViolation.getMessage();
|
||||
if ((StrUtil.isBlank(errorMsg) || "请传入有效参数".equals(errorMsg)) && firstViolation.getConstraintDescriptor() != null) {
|
||||
String messageTemplate = firstViolation.getConstraintDescriptor().getMessageTemplate();
|
||||
log.error(messageTemplate);
|
||||
}
|
||||
|
||||
if (StrUtil.isBlank(errorMsg)) {
|
||||
errorMsg = "请传入有效参数";
|
||||
}
|
||||
|
||||
log.error(fieldDesc + errorMsg + ": " + fieldName + "=" + String.valueOf(firstViolation.getInvalidValue()));
|
||||
return fieldName + ": " + errorMsg;
|
||||
}
|
||||
|
||||
private static Validator validator() {
|
||||
return (Validator)SpringContextHolder.getBean(Validator.class);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,217 @@
|
|||
package com.bonus.core.common.utils;
|
||||
|
||||
import cn.hutool.core.bean.BeanDesc;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.UUID;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.ClassUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.core.env.Environment;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class LogUtil {
|
||||
private static final Logger log = LoggerFactory.getLogger(LogUtil.class);
|
||||
private static final String TRACE_KEY = "X-Trace-Id";
|
||||
private static final String ARG_SEPERATOR = " --> ";
|
||||
private static final ThreadLocal<Boolean> THREAD_LOCAL_FLAG = new InheritableThreadLocal();
|
||||
@Lazy
|
||||
private static final Environment environment = (Environment)SpringContextHolder.getBean(Environment.class);
|
||||
|
||||
public static void generateNewLogTraceId() {
|
||||
MDC.put("X-Trace-Id", UUID.fastUUID().toString(true));
|
||||
}
|
||||
|
||||
public static void putLogTraceId(String traceId) {
|
||||
MDC.put("X-Trace-Id", traceId);
|
||||
}
|
||||
|
||||
public static String getCurrentTraceId() {
|
||||
return MDC.get("X-Trace-Id");
|
||||
}
|
||||
|
||||
public static void printArgsIn(String tag, Object... args) {
|
||||
if ((Boolean)environment.getProperty("system.args-print.enable", Boolean.class, Boolean.FALSE)) {
|
||||
info(StrUtil.concat(true, new CharSequence[]{tag, "][入参"}), args);
|
||||
}
|
||||
}
|
||||
|
||||
public static void printArgsOut(String tag, Object... args) {
|
||||
if ((Boolean)environment.getProperty("system.args-print.enable", Boolean.class, Boolean.FALSE)) {
|
||||
info(StrUtil.concat(true, new CharSequence[]{tag, "][出参"}), args);
|
||||
}
|
||||
}
|
||||
|
||||
public static void printArgs(String tag, Object... args) {
|
||||
if ((Boolean)environment.getProperty("system.args-print.enable", Boolean.class, Boolean.FALSE)) {
|
||||
info(tag, args);
|
||||
}
|
||||
}
|
||||
|
||||
public static void printF(String tag, Object... args) {
|
||||
if (!Boolean.FALSE.equals(THREAD_LOCAL_FLAG.get())) {
|
||||
info(tag, args);
|
||||
}
|
||||
}
|
||||
|
||||
public static void setF(boolean flag) {
|
||||
THREAD_LOCAL_FLAG.set(flag);
|
||||
}
|
||||
|
||||
public static void removeF() {
|
||||
THREAD_LOCAL_FLAG.remove();
|
||||
}
|
||||
|
||||
public static void info(String tag, Object... args) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(tag);
|
||||
if (ArrayUtil.isNotEmpty(args)) {
|
||||
Object[] var3 = args;
|
||||
int var4 = args.length;
|
||||
|
||||
for(int var5 = 0; var5 < var4; ++var5) {
|
||||
Object arg = var3[var5];
|
||||
Object argStr = isBasicType(arg) ? arg : JacksonUtil.writeValueAsStringIgnoreNull(arg);
|
||||
sb.append(" --> ").append(argStr);
|
||||
}
|
||||
}
|
||||
|
||||
log.info(sb.toString());
|
||||
}
|
||||
|
||||
public static void infoFields(String tag, Object arg, String... fieldNames) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(tag);
|
||||
concatString(sb, arg, fieldNames);
|
||||
log.info(sb.toString());
|
||||
}
|
||||
|
||||
public static void infoFieldsX(String tag, Object... args) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(tag);
|
||||
|
||||
for(int i = 0; i < args.length; ++i) {
|
||||
if (i % 2 == 0) {
|
||||
Object arg = args[i];
|
||||
String[] fieldNames = (String[])args[i + 1];
|
||||
concatString(sb, arg, fieldNames);
|
||||
}
|
||||
}
|
||||
|
||||
log.info(sb.toString());
|
||||
}
|
||||
|
||||
public static <T> void infoDesc(String tag, Object... args) {
|
||||
infoFieldsDesc(tag, args);
|
||||
}
|
||||
|
||||
public static void infoFieldsDesc(String tag, Object arg, String... fieldNames) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(tag);
|
||||
concatStringWithDesc(sb, arg, fieldNames);
|
||||
log.info(sb.toString());
|
||||
}
|
||||
|
||||
public static <T> String getDescOfField(Class<T> aClass, String filedName) {
|
||||
BeanDesc beanDesc = BeanUtil.getBeanDesc(aClass);
|
||||
Field declaredField = beanDesc.getField(filedName);
|
||||
if (declaredField == null) {
|
||||
Class<? super T> superclass = aClass.getSuperclass();
|
||||
return superclass != null ? getDescOfField(superclass, filedName) : "";
|
||||
} else {
|
||||
return getDescOfField(declaredField);
|
||||
}
|
||||
}
|
||||
|
||||
private static String getDescOfField(Field field) {
|
||||
ApiModelProperty annotation = (ApiModelProperty)field.getAnnotation(ApiModelProperty.class);
|
||||
if (annotation != null) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
String annotationRemark = annotation.value();
|
||||
if (StrUtil.isNotEmpty(annotationRemark)) {
|
||||
sb.append("【").append(StrUtil.isNotEmpty(annotationRemark) ? annotationRemark : "").append("】");
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
private static Map<String, Object> descMapFroObj(Object arg, Class<Object> aClass, String... propertyNames) {
|
||||
Map<String, Object> descMap = MapUtil.newHashMap();
|
||||
CopyOptions copyOptions = CopyOptions.create().setIgnoreNullValue(false).setFieldNameEditor((s) -> {
|
||||
return !ArrayUtil.isEmpty(propertyNames) && !ArrayUtil.contains(propertyNames, s) ? null : s + getDescOfField(aClass, s);
|
||||
}).setFieldValueEditor((s, o) -> {
|
||||
if (isBasicType(o)) {
|
||||
return o;
|
||||
} else if (o instanceof Collection) {
|
||||
List<Map<String, Object>> listProps = CollUtil.newArrayList(new Map[0]);
|
||||
((Collection)o).forEach((o1) -> {
|
||||
listProps.add(descMapFroObj(o1, ClassUtil.getClass(o1)));
|
||||
});
|
||||
return listProps;
|
||||
} else {
|
||||
return descMapFroObj(o, ClassUtil.getClass(o));
|
||||
}
|
||||
});
|
||||
BeanUtil.beanToMap(arg, descMap, copyOptions);
|
||||
return descMap;
|
||||
}
|
||||
|
||||
private static void concatStringWithDesc(StringBuilder sb, Object arg, String... fieldNames) {
|
||||
if (arg instanceof Collection) {
|
||||
ArrayList<Object> list = CollUtil.newArrayList(new Object[0]);
|
||||
((Collection)arg).forEach((o) -> {
|
||||
Class<Object> aClass = ClassUtil.getClass(arg);
|
||||
Map<String, Object> descMap = descMapFroObj(arg, aClass, fieldNames);
|
||||
list.add(descMap);
|
||||
});
|
||||
sb.append(" --> ").append(JacksonUtil.writeValueAsStringIgnoreNull(list));
|
||||
} else if (arg != null) {
|
||||
Class<Object> aClass = ClassUtil.getClass(arg);
|
||||
Map<String, Object> descMap = descMapFroObj(arg, aClass, fieldNames);
|
||||
sb.append(" --> ").append(JacksonUtil.writeValueAsStringIgnoreNull(descMap));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void concatString(StringBuilder sb, Object arg, String[] fieldNames) {
|
||||
if (arg instanceof Collection) {
|
||||
ArrayList<Object> list = CollUtil.newArrayList(new Object[0]);
|
||||
((Collection)arg).forEach((o) -> {
|
||||
Map<String, Object> descMap = MapUtil.newHashMap();
|
||||
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(o, descMap, false, (s) -> {
|
||||
return !ArrayUtil.isEmpty(fieldNames) && !ArrayUtil.contains(fieldNames, s) ? null : s;
|
||||
});
|
||||
list.add(stringObjectMap);
|
||||
});
|
||||
sb.append(" --> ").append(JacksonUtil.writeValueAsStringIgnoreNull(list));
|
||||
} else if (arg != null) {
|
||||
Map<String, Object> descMap = MapUtil.newHashMap();
|
||||
BeanUtil.beanToMap(arg, descMap, false, (s) -> {
|
||||
return !ArrayUtil.isEmpty(fieldNames) && !ArrayUtil.contains(fieldNames, s) ? null : s;
|
||||
});
|
||||
sb.append(" --> ").append(JacksonUtil.writeValueAsStringIgnoreNull(descMap));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static boolean isBasicType(Object obj) {
|
||||
return obj == null || ClassUtil.isBasicType(obj.getClass()) || ClassUtil.isSimpleValueType(obj.getClass()) || obj instanceof LocalDate || obj instanceof LocalDateTime || obj instanceof Map;
|
||||
}
|
||||
}
|
||||
|
|
@ -181,10 +181,10 @@ public class DeviceApi {
|
|||
// public DeviceInfo getById(Long deviceId) {
|
||||
// return this.deviceInfoService.getById(deviceId);
|
||||
// }
|
||||
//
|
||||
// public DeviceInfo getBySn(String deviceSn) {
|
||||
// return this.deviceInfoService.getBySn(deviceSn);
|
||||
// }
|
||||
|
||||
public DeviceInfo getBySn(String deviceSn) {
|
||||
return this.deviceInfoService.getBySn(deviceSn);
|
||||
}
|
||||
//
|
||||
// public DeviceInfo getByNum(String deviceNum) {
|
||||
// return this.deviceInfoService.getByNum(deviceNum);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package com.bonus.core.device.manage.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.bonus.core.device.manage.dto.DeviceSearchDTO;
|
||||
import com.bonus.core.device.manage.mapper.DeviceInfoMapper;
|
||||
import com.bonus.core.device.manage.model.DeviceInfo;
|
||||
|
|
@ -506,10 +508,11 @@ public class DeviceInfoService {
|
|||
// public DeviceInfo getById(Long deviceId) {
|
||||
// return (DeviceInfo)this.deviceInfoMapper.selectById(deviceId);
|
||||
// }
|
||||
//
|
||||
// public DeviceInfo getBySn(String deviceSn) {
|
||||
// return (DeviceInfo)this.deviceInfoMapper.selectOne((Wrapper)Wrappers.lambdaQuery(DeviceInfo.class).eq(DeviceInfo::getDeviceSn, deviceSn));
|
||||
// }
|
||||
|
||||
public DeviceInfo getBySn(String deviceSn) {
|
||||
return (DeviceInfo)this.deviceInfoMapper.selectOne((Wrapper) Wrappers.lambdaQuery(DeviceInfo.class)
|
||||
.eq(DeviceInfo::getDeviceSn, deviceSn));
|
||||
}
|
||||
//
|
||||
// public DeviceInfoInSystem getBySnInSys(String deviceSn) {
|
||||
// return (DeviceInfoInSystem)Executors.readInSystem(() -> {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,16 @@
|
|||
package com.bonus.core.menu.api;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.bonus.constant.LeConstants;
|
||||
import com.bonus.core.menu.entity.MenuDishes;
|
||||
import com.bonus.core.menu.mapper.MenuDishesMapper;
|
||||
import com.bonus.core.menu.model.MenuDishesTypeModel;
|
||||
import com.bonus.core.menu.service.MenuDishesService;
|
||||
import com.bonus.core.menu.utils.NutritionEntity;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -13,6 +18,7 @@ import org.springframework.context.annotation.Lazy;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class MenuDishesApi {
|
||||
|
|
@ -38,9 +44,9 @@ public class MenuDishesApi {
|
|||
// @Autowired
|
||||
// @Lazy
|
||||
// private MenuMaterialMapper menuMaterialMapper;
|
||||
// @Autowired
|
||||
// @Lazy
|
||||
// private MenuDishesMapper menuDishesMapper;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private MenuDishesMapper menuDishesMapper;
|
||||
// @Autowired
|
||||
// @Lazy
|
||||
// private MenuRecipeMapper menuRecipeMapper;
|
||||
|
|
@ -323,10 +329,11 @@ public class MenuDishesApi {
|
|||
// public List<MenuDishesSizeModel> listDishesSizeModel() {
|
||||
// return this.menuDishesMapper.listDishesSizeModel(MenuSalesTypeEnum.PORTION_ON.key(), DelFlagEnum.DEL_FALSE.key());
|
||||
// }
|
||||
//
|
||||
// public List<MenuDishesTypeModel> getDishesTypeName(List<Long> dishesIdList) {
|
||||
// return (List)(ObjectUtil.isEmpty(dishesIdList) ? Lists.newArrayList() : this.menuDishesMapper.selectDishesTypeNameAndIdList(dishesIdList));
|
||||
// }
|
||||
|
||||
public List<MenuDishesTypeModel> getDishesTypeName(List<Long> dishesIdList) {
|
||||
return (List)(ObjectUtil.isEmpty(dishesIdList) ? Lists.newArrayList() : this.menuDishesMapper
|
||||
.selectDishesTypeNameAndIdList(dishesIdList));
|
||||
}
|
||||
//
|
||||
// public void asyncUpdateDishesNutrition(Long materialId) {
|
||||
// log.info("异步更新菜品营养信息,输入id: {}", materialId);
|
||||
|
|
@ -337,10 +344,10 @@ public class MenuDishesApi {
|
|||
// log.info("异步更新菜品营养信息,营养信息id: {}", nutritionId);
|
||||
// this.menuDishesService.updateDishesNutritionByNutritionId(nutritionId);
|
||||
// }
|
||||
//
|
||||
// public NutritionEntity getNutrientInfo(Map<Long, Double> dishesQuantityMap) {
|
||||
// return this.menuDishesService.getNutrientInfo(dishesQuantityMap);
|
||||
// }
|
||||
|
||||
public NutritionEntity getNutrientInfo(Map<Long, Double> dishesQuantityMap) {
|
||||
return this.menuDishesService.getNutrientInfo(dishesQuantityMap);
|
||||
}
|
||||
//
|
||||
// public List<NutritionGetDishesVo> nutritionGetDishes(NutritionGetDishesDto nutritionGetDishesDto) {
|
||||
// return this.menuDishesService.nutritionGetDishes(nutritionGetDishesDto);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.bonus.core.menu.entity.MenuDishes;
|
||||
import com.bonus.core.menu.model.MenuDishesTypeModel;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
|
@ -170,7 +171,7 @@ public interface MenuDishesMapper extends BaseMapper<MenuDishes> {
|
|||
// @Select({"select base_dishes_id, material_cost from menu_dishes ${ew.customSqlSegment}"})
|
||||
// List<MenuDishesCostModel> selectMaterialCostList(@Param("ew") Wrapper<MenuDishes> wrapper);
|
||||
//
|
||||
// List<MenuDishesTypeModel> selectDishesTypeNameAndIdList(@Param("dishesIdList") List<Long> dishesIdList);
|
||||
List<MenuDishesTypeModel> selectDishesTypeNameAndIdList(@Param("dishesIdList") List<Long> dishesIdList);
|
||||
//
|
||||
// List<IssueRecipeMealCompressVO> getMealListByDishesIds(@Param("dishesIds") List<Long> dishesIds);
|
||||
//
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
package com.bonus.core.menu.model;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
|
||||
@ApiModel
|
||||
public class MenuDishesTypeModel {
|
||||
private Long dishesId;
|
||||
private Long typeId;
|
||||
private String typeName;
|
||||
|
||||
public Long getDishesId() {
|
||||
return this.dishesId;
|
||||
}
|
||||
|
||||
public Long getTypeId() {
|
||||
return this.typeId;
|
||||
}
|
||||
|
||||
public String getTypeName() {
|
||||
return this.typeName;
|
||||
}
|
||||
|
||||
public void setDishesId(final Long dishesId) {
|
||||
this.dishesId = dishesId;
|
||||
}
|
||||
|
||||
public void setTypeId(final Long typeId) {
|
||||
this.typeId = typeId;
|
||||
}
|
||||
|
||||
public void setTypeName(final String typeName) {
|
||||
this.typeName = typeName;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -2,6 +2,9 @@ package com.bonus.core.menu.service;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.bonus.core.menu.entity.MenuDishes;
|
||||
import com.bonus.core.menu.utils.NutritionEntity;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface MenuDishesService extends IService<MenuDishes> {
|
||||
// Long addMenuDishes(MenuDishesAddDTO dishesAddDTO, Integer customId);
|
||||
|
|
@ -98,7 +101,7 @@ public interface MenuDishesService extends IService<MenuDishes> {
|
|||
//
|
||||
// Map<String, List<String>> selectMaterialByTypeAndDishesIds(List<Long> dishesIds);
|
||||
//
|
||||
// NutritionEntity getNutrientInfo(Map<Long, Double> dishesQuantityMap);
|
||||
NutritionEntity getNutrientInfo(Map<Long, Double> dishesQuantityMap);
|
||||
//
|
||||
// List<MenuDishes> getMenuDishesList(List<Long> dishesIdList);
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,13 +1,27 @@
|
|||
package com.bonus.core.menu.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bonus.constant.LeConstants;
|
||||
import com.bonus.core.common.utils.LogUtil;
|
||||
import com.bonus.core.menu.entity.MenuDishes;
|
||||
import com.bonus.core.menu.mapper.MenuDishesMapper;
|
||||
import com.bonus.core.menu.service.MenuDishesService;
|
||||
import com.bonus.core.menu.utils.NutritionEntity;
|
||||
import com.bonus.core.menu.utils.NutritionEntityUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class MenuDishesServiceImpl extends ServiceImpl<MenuDishesMapper, MenuDishes> implements MenuDishesService {
|
||||
private static final Logger log = LoggerFactory.getLogger(MenuDishesServiceImpl.class);
|
||||
|
|
@ -2536,30 +2550,32 @@ public class MenuDishesServiceImpl extends ServiceImpl<MenuDishesMapper, MenuDis
|
|||
// return "" + var10000 + "_" + x.getMaterialType();
|
||||
// }, Collectors.mapping(DishesLabelDto::getName, Collectors.toList())));
|
||||
// }
|
||||
//
|
||||
// public NutritionEntity getNutrientInfo(Map<Long, Double> dishesQuantityMap) {
|
||||
// LogUtil.info("查询营养信息", dishesQuantityMap);
|
||||
// if (CollUtil.isNotEmpty(dishesQuantityMap)) {
|
||||
// List<Long> dishesIdList = ListUtil.toList(dishesQuantityMap.keySet());
|
||||
// List<MenuDishes> menuDishesList = this.getMenuDishesList(dishesIdList);
|
||||
// if (CollUtil.isNotEmpty(menuDishesList)) {
|
||||
// List<NutritionEntity> nutritionEntityList = (List)menuDishesList.stream().map((item) -> {
|
||||
// Double weight = (Double)dishesQuantityMap.get(item.getDishesId());
|
||||
// NutritionEntity nutritionEntity = (NutritionEntity)BeanUtil.copyProperties(item, NutritionEntity.class, new String[0]);
|
||||
// nutritionEntity.setWeight(weight);
|
||||
// nutritionEntity.setBaseWeight(item.getWeight());
|
||||
// return nutritionEntity;
|
||||
// }).collect(Collectors.toList());
|
||||
// return NutritionEntityUtil.countNutrition(nutritionEntityList);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// return new NutritionEntity();
|
||||
// }
|
||||
//
|
||||
// public List<MenuDishes> getMenuDishesList(List<Long> dishesIdList) {
|
||||
// return this.list((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery(MenuDishes.class).in(MenuDishes::getDishesId, dishesIdList)).eq(MenuDishes::getDelFlag, LeConstants.COMMON_NO));
|
||||
// }
|
||||
|
||||
@Override
|
||||
public NutritionEntity getNutrientInfo(Map<Long, Double> dishesQuantityMap) {
|
||||
LogUtil.info("查询营养信息", dishesQuantityMap);
|
||||
if (CollUtil.isNotEmpty(dishesQuantityMap)) {
|
||||
List<Long> dishesIdList = ListUtil.toList(dishesQuantityMap.keySet());
|
||||
List<MenuDishes> menuDishesList = this.getMenuDishesList(dishesIdList);
|
||||
if (CollUtil.isNotEmpty(menuDishesList)) {
|
||||
List<NutritionEntity> nutritionEntityList = (List)menuDishesList.stream().map((item) -> {
|
||||
Double weight = (Double)dishesQuantityMap.get(item.getDishesId());
|
||||
NutritionEntity nutritionEntity = (NutritionEntity) BeanUtil.copyProperties(item, NutritionEntity.class, new String[0]);
|
||||
nutritionEntity.setWeight(weight);
|
||||
nutritionEntity.setBaseWeight(item.getWeight());
|
||||
return nutritionEntity;
|
||||
}).collect(Collectors.toList());
|
||||
return NutritionEntityUtil.countNutrition(nutritionEntityList);
|
||||
}
|
||||
}
|
||||
|
||||
return new NutritionEntity();
|
||||
}
|
||||
|
||||
public List<MenuDishes> getMenuDishesList(List<Long> dishesIdList) {
|
||||
return this.list((Wrapper)((LambdaQueryWrapper<MenuDishes>) Wrappers.lambdaQuery(MenuDishes.class)
|
||||
.in(MenuDishes::getDishesId, dishesIdList)).eq(MenuDishes::getDelFlag, LeConstants.COMMON_NO));
|
||||
}
|
||||
//
|
||||
// public void updateDishesNutrition(List<Long> materialIds) {
|
||||
// List<MenuUpdateDishesModel> menuUpdateDishesModels = this.menuMaterialDishesService.selectDishesList(materialIds);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,526 @@
|
|||
package com.bonus.core.menu.utils;
|
||||
|
||||
public class NutritionEntity {
|
||||
private Double edible;
|
||||
private Double water;
|
||||
private Double calories;
|
||||
private Double protein;
|
||||
private Double fat;
|
||||
private Double carbohydrate;
|
||||
private Double dietaryFiber;
|
||||
private Double cholesterol;
|
||||
private Double ash;
|
||||
private Double vitaminA;
|
||||
private Double carotene;
|
||||
private Double retinol;
|
||||
private Double thiamine;
|
||||
private Double riboflavin;
|
||||
private Double niacin;
|
||||
private Double vitaminC;
|
||||
private Double vitaminE;
|
||||
private Double calcium;
|
||||
private Double phosphorus;
|
||||
private Double kalium;
|
||||
private Double sodium;
|
||||
private Double magnesium;
|
||||
private Double iron;
|
||||
private Double zinc;
|
||||
private Double selenium;
|
||||
private Double cuprum;
|
||||
private Double manganese;
|
||||
private Double isoleucine;
|
||||
private Double leucine;
|
||||
private Double lysine;
|
||||
private Double saaTotal;
|
||||
private Double aaaTotal;
|
||||
private Double threonine;
|
||||
private Double tryptophan;
|
||||
private Double valine;
|
||||
private Double arginine;
|
||||
private Double histidine;
|
||||
private Double alanine;
|
||||
private Double asparticAcid;
|
||||
private Double glutamate;
|
||||
private Double glycine;
|
||||
private Double proline;
|
||||
private Double serine;
|
||||
private Double fattyAcid;
|
||||
private Double iodine;
|
||||
private Double folic;
|
||||
private Double choline;
|
||||
private Double biotin;
|
||||
private Double pantothenicAcid;
|
||||
private Double guanine;
|
||||
private Double adenine;
|
||||
private Double hypoxanthine;
|
||||
private Double xanthine;
|
||||
private Double purine;
|
||||
private Double glycemicIndex;
|
||||
private Double weight;
|
||||
private Double totalWeight;
|
||||
private Double baseWeight;
|
||||
|
||||
public Double getEdible() {
|
||||
return this.edible;
|
||||
}
|
||||
|
||||
public Double getWater() {
|
||||
return this.water;
|
||||
}
|
||||
|
||||
public Double getCalories() {
|
||||
return this.calories;
|
||||
}
|
||||
|
||||
public Double getProtein() {
|
||||
return this.protein;
|
||||
}
|
||||
|
||||
public Double getFat() {
|
||||
return this.fat;
|
||||
}
|
||||
|
||||
public Double getCarbohydrate() {
|
||||
return this.carbohydrate;
|
||||
}
|
||||
|
||||
public Double getDietaryFiber() {
|
||||
return this.dietaryFiber;
|
||||
}
|
||||
|
||||
public Double getCholesterol() {
|
||||
return this.cholesterol;
|
||||
}
|
||||
|
||||
public Double getAsh() {
|
||||
return this.ash;
|
||||
}
|
||||
|
||||
public Double getVitaminA() {
|
||||
return this.vitaminA;
|
||||
}
|
||||
|
||||
public Double getCarotene() {
|
||||
return this.carotene;
|
||||
}
|
||||
|
||||
public Double getRetinol() {
|
||||
return this.retinol;
|
||||
}
|
||||
|
||||
public Double getThiamine() {
|
||||
return this.thiamine;
|
||||
}
|
||||
|
||||
public Double getRiboflavin() {
|
||||
return this.riboflavin;
|
||||
}
|
||||
|
||||
public Double getNiacin() {
|
||||
return this.niacin;
|
||||
}
|
||||
|
||||
public Double getVitaminC() {
|
||||
return this.vitaminC;
|
||||
}
|
||||
|
||||
public Double getVitaminE() {
|
||||
return this.vitaminE;
|
||||
}
|
||||
|
||||
public Double getCalcium() {
|
||||
return this.calcium;
|
||||
}
|
||||
|
||||
public Double getPhosphorus() {
|
||||
return this.phosphorus;
|
||||
}
|
||||
|
||||
public Double getKalium() {
|
||||
return this.kalium;
|
||||
}
|
||||
|
||||
public Double getSodium() {
|
||||
return this.sodium;
|
||||
}
|
||||
|
||||
public Double getMagnesium() {
|
||||
return this.magnesium;
|
||||
}
|
||||
|
||||
public Double getIron() {
|
||||
return this.iron;
|
||||
}
|
||||
|
||||
public Double getZinc() {
|
||||
return this.zinc;
|
||||
}
|
||||
|
||||
public Double getSelenium() {
|
||||
return this.selenium;
|
||||
}
|
||||
|
||||
public Double getCuprum() {
|
||||
return this.cuprum;
|
||||
}
|
||||
|
||||
public Double getManganese() {
|
||||
return this.manganese;
|
||||
}
|
||||
|
||||
public Double getIsoleucine() {
|
||||
return this.isoleucine;
|
||||
}
|
||||
|
||||
public Double getLeucine() {
|
||||
return this.leucine;
|
||||
}
|
||||
|
||||
public Double getLysine() {
|
||||
return this.lysine;
|
||||
}
|
||||
|
||||
public Double getSaaTotal() {
|
||||
return this.saaTotal;
|
||||
}
|
||||
|
||||
public Double getAaaTotal() {
|
||||
return this.aaaTotal;
|
||||
}
|
||||
|
||||
public Double getThreonine() {
|
||||
return this.threonine;
|
||||
}
|
||||
|
||||
public Double getTryptophan() {
|
||||
return this.tryptophan;
|
||||
}
|
||||
|
||||
public Double getValine() {
|
||||
return this.valine;
|
||||
}
|
||||
|
||||
public Double getArginine() {
|
||||
return this.arginine;
|
||||
}
|
||||
|
||||
public Double getHistidine() {
|
||||
return this.histidine;
|
||||
}
|
||||
|
||||
public Double getAlanine() {
|
||||
return this.alanine;
|
||||
}
|
||||
|
||||
public Double getAsparticAcid() {
|
||||
return this.asparticAcid;
|
||||
}
|
||||
|
||||
public Double getGlutamate() {
|
||||
return this.glutamate;
|
||||
}
|
||||
|
||||
public Double getGlycine() {
|
||||
return this.glycine;
|
||||
}
|
||||
|
||||
public Double getProline() {
|
||||
return this.proline;
|
||||
}
|
||||
|
||||
public Double getSerine() {
|
||||
return this.serine;
|
||||
}
|
||||
|
||||
public Double getFattyAcid() {
|
||||
return this.fattyAcid;
|
||||
}
|
||||
|
||||
public Double getIodine() {
|
||||
return this.iodine;
|
||||
}
|
||||
|
||||
public Double getFolic() {
|
||||
return this.folic;
|
||||
}
|
||||
|
||||
public Double getCholine() {
|
||||
return this.choline;
|
||||
}
|
||||
|
||||
public Double getBiotin() {
|
||||
return this.biotin;
|
||||
}
|
||||
|
||||
public Double getPantothenicAcid() {
|
||||
return this.pantothenicAcid;
|
||||
}
|
||||
|
||||
public Double getGuanine() {
|
||||
return this.guanine;
|
||||
}
|
||||
|
||||
public Double getAdenine() {
|
||||
return this.adenine;
|
||||
}
|
||||
|
||||
public Double getHypoxanthine() {
|
||||
return this.hypoxanthine;
|
||||
}
|
||||
|
||||
public Double getXanthine() {
|
||||
return this.xanthine;
|
||||
}
|
||||
|
||||
public Double getPurine() {
|
||||
return this.purine;
|
||||
}
|
||||
|
||||
public Double getGlycemicIndex() {
|
||||
return this.glycemicIndex;
|
||||
}
|
||||
|
||||
public Double getWeight() {
|
||||
return this.weight;
|
||||
}
|
||||
|
||||
public Double getTotalWeight() {
|
||||
return this.totalWeight;
|
||||
}
|
||||
|
||||
public Double getBaseWeight() {
|
||||
return this.baseWeight;
|
||||
}
|
||||
|
||||
public void setEdible(final Double edible) {
|
||||
this.edible = edible;
|
||||
}
|
||||
|
||||
public void setWater(final Double water) {
|
||||
this.water = water;
|
||||
}
|
||||
|
||||
public void setCalories(final Double calories) {
|
||||
this.calories = calories;
|
||||
}
|
||||
|
||||
public void setProtein(final Double protein) {
|
||||
this.protein = protein;
|
||||
}
|
||||
|
||||
public void setFat(final Double fat) {
|
||||
this.fat = fat;
|
||||
}
|
||||
|
||||
public void setCarbohydrate(final Double carbohydrate) {
|
||||
this.carbohydrate = carbohydrate;
|
||||
}
|
||||
|
||||
public void setDietaryFiber(final Double dietaryFiber) {
|
||||
this.dietaryFiber = dietaryFiber;
|
||||
}
|
||||
|
||||
public void setCholesterol(final Double cholesterol) {
|
||||
this.cholesterol = cholesterol;
|
||||
}
|
||||
|
||||
public void setAsh(final Double ash) {
|
||||
this.ash = ash;
|
||||
}
|
||||
|
||||
public void setVitaminA(final Double vitaminA) {
|
||||
this.vitaminA = vitaminA;
|
||||
}
|
||||
|
||||
public void setCarotene(final Double carotene) {
|
||||
this.carotene = carotene;
|
||||
}
|
||||
|
||||
public void setRetinol(final Double retinol) {
|
||||
this.retinol = retinol;
|
||||
}
|
||||
|
||||
public void setThiamine(final Double thiamine) {
|
||||
this.thiamine = thiamine;
|
||||
}
|
||||
|
||||
public void setRiboflavin(final Double riboflavin) {
|
||||
this.riboflavin = riboflavin;
|
||||
}
|
||||
|
||||
public void setNiacin(final Double niacin) {
|
||||
this.niacin = niacin;
|
||||
}
|
||||
|
||||
public void setVitaminC(final Double vitaminC) {
|
||||
this.vitaminC = vitaminC;
|
||||
}
|
||||
|
||||
public void setVitaminE(final Double vitaminE) {
|
||||
this.vitaminE = vitaminE;
|
||||
}
|
||||
|
||||
public void setCalcium(final Double calcium) {
|
||||
this.calcium = calcium;
|
||||
}
|
||||
|
||||
public void setPhosphorus(final Double phosphorus) {
|
||||
this.phosphorus = phosphorus;
|
||||
}
|
||||
|
||||
public void setKalium(final Double kalium) {
|
||||
this.kalium = kalium;
|
||||
}
|
||||
|
||||
public void setSodium(final Double sodium) {
|
||||
this.sodium = sodium;
|
||||
}
|
||||
|
||||
public void setMagnesium(final Double magnesium) {
|
||||
this.magnesium = magnesium;
|
||||
}
|
||||
|
||||
public void setIron(final Double iron) {
|
||||
this.iron = iron;
|
||||
}
|
||||
|
||||
public void setZinc(final Double zinc) {
|
||||
this.zinc = zinc;
|
||||
}
|
||||
|
||||
public void setSelenium(final Double selenium) {
|
||||
this.selenium = selenium;
|
||||
}
|
||||
|
||||
public void setCuprum(final Double cuprum) {
|
||||
this.cuprum = cuprum;
|
||||
}
|
||||
|
||||
public void setManganese(final Double manganese) {
|
||||
this.manganese = manganese;
|
||||
}
|
||||
|
||||
public void setIsoleucine(final Double isoleucine) {
|
||||
this.isoleucine = isoleucine;
|
||||
}
|
||||
|
||||
public void setLeucine(final Double leucine) {
|
||||
this.leucine = leucine;
|
||||
}
|
||||
|
||||
public void setLysine(final Double lysine) {
|
||||
this.lysine = lysine;
|
||||
}
|
||||
|
||||
public void setSaaTotal(final Double saaTotal) {
|
||||
this.saaTotal = saaTotal;
|
||||
}
|
||||
|
||||
public void setAaaTotal(final Double aaaTotal) {
|
||||
this.aaaTotal = aaaTotal;
|
||||
}
|
||||
|
||||
public void setThreonine(final Double threonine) {
|
||||
this.threonine = threonine;
|
||||
}
|
||||
|
||||
public void setTryptophan(final Double tryptophan) {
|
||||
this.tryptophan = tryptophan;
|
||||
}
|
||||
|
||||
public void setValine(final Double valine) {
|
||||
this.valine = valine;
|
||||
}
|
||||
|
||||
public void setArginine(final Double arginine) {
|
||||
this.arginine = arginine;
|
||||
}
|
||||
|
||||
public void setHistidine(final Double histidine) {
|
||||
this.histidine = histidine;
|
||||
}
|
||||
|
||||
public void setAlanine(final Double alanine) {
|
||||
this.alanine = alanine;
|
||||
}
|
||||
|
||||
public void setAsparticAcid(final Double asparticAcid) {
|
||||
this.asparticAcid = asparticAcid;
|
||||
}
|
||||
|
||||
public void setGlutamate(final Double glutamate) {
|
||||
this.glutamate = glutamate;
|
||||
}
|
||||
|
||||
public void setGlycine(final Double glycine) {
|
||||
this.glycine = glycine;
|
||||
}
|
||||
|
||||
public void setProline(final Double proline) {
|
||||
this.proline = proline;
|
||||
}
|
||||
|
||||
public void setSerine(final Double serine) {
|
||||
this.serine = serine;
|
||||
}
|
||||
|
||||
public void setFattyAcid(final Double fattyAcid) {
|
||||
this.fattyAcid = fattyAcid;
|
||||
}
|
||||
|
||||
public void setIodine(final Double iodine) {
|
||||
this.iodine = iodine;
|
||||
}
|
||||
|
||||
public void setFolic(final Double folic) {
|
||||
this.folic = folic;
|
||||
}
|
||||
|
||||
public void setCholine(final Double choline) {
|
||||
this.choline = choline;
|
||||
}
|
||||
|
||||
public void setBiotin(final Double biotin) {
|
||||
this.biotin = biotin;
|
||||
}
|
||||
|
||||
public void setPantothenicAcid(final Double pantothenicAcid) {
|
||||
this.pantothenicAcid = pantothenicAcid;
|
||||
}
|
||||
|
||||
public void setGuanine(final Double guanine) {
|
||||
this.guanine = guanine;
|
||||
}
|
||||
|
||||
public void setAdenine(final Double adenine) {
|
||||
this.adenine = adenine;
|
||||
}
|
||||
|
||||
public void setHypoxanthine(final Double hypoxanthine) {
|
||||
this.hypoxanthine = hypoxanthine;
|
||||
}
|
||||
|
||||
public void setXanthine(final Double xanthine) {
|
||||
this.xanthine = xanthine;
|
||||
}
|
||||
|
||||
public void setPurine(final Double purine) {
|
||||
this.purine = purine;
|
||||
}
|
||||
|
||||
public void setGlycemicIndex(final Double glycemicIndex) {
|
||||
this.glycemicIndex = glycemicIndex;
|
||||
}
|
||||
|
||||
public void setWeight(final Double weight) {
|
||||
this.weight = weight;
|
||||
}
|
||||
|
||||
public void setTotalWeight(final Double totalWeight) {
|
||||
this.totalWeight = totalWeight;
|
||||
}
|
||||
|
||||
public void setBaseWeight(final Double baseWeight) {
|
||||
this.baseWeight = baseWeight;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
package com.bonus.core.menu.utils;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.bonus.utils.Arith;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
public class NutritionEntityUtil {
|
||||
private static final Logger log = LoggerFactory.getLogger(NutritionEntityUtil.class);
|
||||
|
||||
private NutritionEntityUtil() {
|
||||
}
|
||||
|
||||
public static NutritionEntity countNutrition(List<NutritionEntity> nutritionEntityList) {
|
||||
if (CollectionUtils.isEmpty(nutritionEntityList)) {
|
||||
return new NutritionEntity();
|
||||
} else {
|
||||
NutritionEntity nutritionEntity = new NutritionEntity();
|
||||
Iterator var2 = nutritionEntityList.iterator();
|
||||
|
||||
while(var2.hasNext()) {
|
||||
NutritionEntity tempNutrition = (NutritionEntity)var2.next();
|
||||
double proportion = Arith.div(tempNutrition.getWeight(), tempNutrition.getBaseWeight(), 4);
|
||||
Field[] var6 = tempNutrition.getClass().getDeclaredFields();
|
||||
int var7 = var6.length;
|
||||
|
||||
for(int var8 = 0; var8 < var7; ++var8) {
|
||||
Field field = var6[var8];
|
||||
ReflectionUtils.makeAccessible(field);
|
||||
|
||||
try {
|
||||
String fieldName = field.getName();
|
||||
Object temp = field.get(tempNutrition);
|
||||
double param = 0.0;
|
||||
if (temp != null && (Double)temp != -1.0) {
|
||||
param = (Double)temp;
|
||||
}
|
||||
|
||||
Field declaredField = nutritionEntity.getClass().getDeclaredField(fieldName);
|
||||
ReflectionUtils.makeAccessible(declaredField);
|
||||
Object tempObject = declaredField.get(nutritionEntity);
|
||||
double lastValue = 0.0;
|
||||
if (tempObject != null) {
|
||||
lastValue = (Double)tempObject;
|
||||
}
|
||||
|
||||
double newValue = Arith.add(Arith.mul(param, proportion), lastValue);
|
||||
declaredField.set(nutritionEntity, newValue);
|
||||
} catch (NoSuchFieldException | IllegalAccessException var21) {
|
||||
log.info("获取属性值异常 : {}", var21.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Field[] var22 = nutritionEntity.getClass().getDeclaredFields();
|
||||
int var23 = var22.length;
|
||||
|
||||
for(int var24 = 0; var24 < var23; ++var24) {
|
||||
Field field = var22[var24];
|
||||
ReflectionUtils.makeAccessible(field);
|
||||
|
||||
try {
|
||||
Object tempObject = field.get(nutritionEntity);
|
||||
if (tempObject != null && (Double)tempObject != -1.0) {
|
||||
field.set(nutritionEntity, Arith.round((Double)tempObject, 2));
|
||||
}
|
||||
} catch (Exception var20) {
|
||||
log.info("最终获取属性值异常 : {}", var20.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
return nutritionEntity;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package com.bonus.core.order.common.controller;
|
||||
|
||||
import com.bonus.common.core.web.controller.BaseController;
|
||||
import com.bonus.common.core.web.page.TableDataInfo;
|
||||
import com.bonus.core.order.common.vo.OrderEnumVO;
|
||||
import com.bonus.core.pay.common.constants.PayTypeEnum;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping({"/api/v2/order/enums"})
|
||||
@Api(
|
||||
value = "orderEnum",
|
||||
tags = {"订单相关枚举"}
|
||||
)
|
||||
public class OrderController extends BaseController {
|
||||
@PostMapping({"/pay-type-list"})
|
||||
@ApiOperation("支付类型")
|
||||
public TableDataInfo getPayTypeEnumList() {
|
||||
List<Map<String, Object>> allEnumsList = PayTypeEnum.getAllEnumsList();
|
||||
return getDataTable(OrderEnumVO.listOf(allEnumsList));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.bonus.core.order.common.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.bonus.core.order.common.model.OrderDelivery;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Mapper
|
||||
@InterceptorIgnore
|
||||
public interface OrderDeliveryMapper extends BaseMapper<OrderDelivery> {
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.bonus.core.order.common.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.bonus.core.order.common.model.OrderRefundDetail;
|
||||
import com.bonus.core.order.weight.vo.RefundDetailStateVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
@InterceptorIgnore
|
||||
public interface OrderRefundDetailMapper extends BaseMapper<OrderRefundDetail> {
|
||||
List<RefundDetailStateVO> listRefundDetailState(@Param("orderId") Long orderId, @Param("macOrderId") String macOrderId);
|
||||
}
|
||||
|
|
@ -0,0 +1,209 @@
|
|||
package com.bonus.core.order.common.model;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.bonus.core.common.enums.DeliveryTypeEnum;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@TableName("order_delivery")
|
||||
public class OrderDelivery {
|
||||
private Long deliveryId;
|
||||
@DateTimeFormat(
|
||||
pattern = "yyyy-MM-dd"
|
||||
)
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd"
|
||||
)
|
||||
private LocalDate orderDate;
|
||||
private Long orderId;
|
||||
private String deliveryCode;
|
||||
private String consigneeName;
|
||||
private String consigneeMobile;
|
||||
private String consigneeAddress;
|
||||
private Long deliveryRelatedId;
|
||||
private String deliveryUserId;
|
||||
private String deliveryName;
|
||||
private String deliveryMobile;
|
||||
@DateTimeFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
private LocalDateTime deliveryTime;
|
||||
private Integer deliveryType;
|
||||
@DateTimeFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
private LocalDateTime deliveryFinishTime;
|
||||
@DateTimeFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
private LocalDateTime crtime;
|
||||
@DateTimeFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
private LocalDateTime uptime;
|
||||
|
||||
public static OrderDelivery newDefaultInstance() {
|
||||
OrderDelivery orderDelivery = new OrderDelivery();
|
||||
orderDelivery.setDeliveryType(DeliveryTypeEnum.SELF_TAKE.getKey());
|
||||
return orderDelivery;
|
||||
}
|
||||
|
||||
public Long getDeliveryId() {
|
||||
return this.deliveryId;
|
||||
}
|
||||
|
||||
public LocalDate getOrderDate() {
|
||||
return this.orderDate;
|
||||
}
|
||||
|
||||
public Long getOrderId() {
|
||||
return this.orderId;
|
||||
}
|
||||
|
||||
public String getDeliveryCode() {
|
||||
return this.deliveryCode;
|
||||
}
|
||||
|
||||
public String getConsigneeName() {
|
||||
return this.consigneeName;
|
||||
}
|
||||
|
||||
public String getConsigneeMobile() {
|
||||
return this.consigneeMobile;
|
||||
}
|
||||
|
||||
public String getConsigneeAddress() {
|
||||
return this.consigneeAddress;
|
||||
}
|
||||
|
||||
public Long getDeliveryRelatedId() {
|
||||
return this.deliveryRelatedId;
|
||||
}
|
||||
|
||||
public String getDeliveryUserId() {
|
||||
return this.deliveryUserId;
|
||||
}
|
||||
|
||||
public String getDeliveryName() {
|
||||
return this.deliveryName;
|
||||
}
|
||||
|
||||
public String getDeliveryMobile() {
|
||||
return this.deliveryMobile;
|
||||
}
|
||||
|
||||
public LocalDateTime getDeliveryTime() {
|
||||
return this.deliveryTime;
|
||||
}
|
||||
|
||||
public Integer getDeliveryType() {
|
||||
return this.deliveryType;
|
||||
}
|
||||
|
||||
public LocalDateTime getDeliveryFinishTime() {
|
||||
return this.deliveryFinishTime;
|
||||
}
|
||||
|
||||
public LocalDateTime getCrtime() {
|
||||
return this.crtime;
|
||||
}
|
||||
|
||||
public LocalDateTime getUptime() {
|
||||
return this.uptime;
|
||||
}
|
||||
|
||||
public void setDeliveryId(final Long deliveryId) {
|
||||
this.deliveryId = deliveryId;
|
||||
}
|
||||
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd"
|
||||
)
|
||||
public void setOrderDate(final LocalDate orderDate) {
|
||||
this.orderDate = orderDate;
|
||||
}
|
||||
|
||||
public void setOrderId(final Long orderId) {
|
||||
this.orderId = orderId;
|
||||
}
|
||||
|
||||
public void setDeliveryCode(final String deliveryCode) {
|
||||
this.deliveryCode = deliveryCode;
|
||||
}
|
||||
|
||||
public void setConsigneeName(final String consigneeName) {
|
||||
this.consigneeName = consigneeName;
|
||||
}
|
||||
|
||||
public void setConsigneeMobile(final String consigneeMobile) {
|
||||
this.consigneeMobile = consigneeMobile;
|
||||
}
|
||||
|
||||
public void setConsigneeAddress(final String consigneeAddress) {
|
||||
this.consigneeAddress = consigneeAddress;
|
||||
}
|
||||
|
||||
public void setDeliveryRelatedId(final Long deliveryRelatedId) {
|
||||
this.deliveryRelatedId = deliveryRelatedId;
|
||||
}
|
||||
|
||||
public void setDeliveryUserId(final String deliveryUserId) {
|
||||
this.deliveryUserId = deliveryUserId;
|
||||
}
|
||||
|
||||
public void setDeliveryName(final String deliveryName) {
|
||||
this.deliveryName = deliveryName;
|
||||
}
|
||||
|
||||
public void setDeliveryMobile(final String deliveryMobile) {
|
||||
this.deliveryMobile = deliveryMobile;
|
||||
}
|
||||
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
public void setDeliveryTime(final LocalDateTime deliveryTime) {
|
||||
this.deliveryTime = deliveryTime;
|
||||
}
|
||||
|
||||
public void setDeliveryType(final Integer deliveryType) {
|
||||
this.deliveryType = deliveryType;
|
||||
}
|
||||
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
public void setDeliveryFinishTime(final LocalDateTime deliveryFinishTime) {
|
||||
this.deliveryFinishTime = deliveryFinishTime;
|
||||
}
|
||||
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
public void setCrtime(final LocalDateTime crtime) {
|
||||
this.crtime = crtime;
|
||||
}
|
||||
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
public void setUptime(final LocalDateTime uptime) {
|
||||
this.uptime = uptime;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,148 @@
|
|||
package com.bonus.core.order.common.model;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@TableName("order_refund_detail")
|
||||
public class OrderRefundDetail {
|
||||
private Long orderRefundId;
|
||||
private Long detailId;
|
||||
private Integer quantity;
|
||||
private BigDecimal refundAmount;
|
||||
private Integer realQuantity;
|
||||
private BigDecimal realRefundAmount;
|
||||
private Integer restoreQuantity;
|
||||
@DateTimeFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
private LocalDateTime crtime;
|
||||
@DateTimeFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
private LocalDateTime uptime;
|
||||
|
||||
public OrderRefundDetail() {
|
||||
}
|
||||
|
||||
public OrderRefundDetail(Long detailId, Integer quantity, Integer realQuantity) {
|
||||
this.detailId = detailId;
|
||||
this.quantity = quantity;
|
||||
this.realQuantity = realQuantity;
|
||||
}
|
||||
|
||||
public OrderRefundDetail copyInstance() {
|
||||
return (OrderRefundDetail)BeanUtil.copyProperties(this, OrderRefundDetail.class, new String[0]);
|
||||
}
|
||||
|
||||
public static OrderRefundDetail newDefaultInstance() {
|
||||
OrderRefundDetail orderRefundDetail = (new OrderRefundDetail()).setQuantity(1).setRefundAmount(BigDecimal.ZERO).setRealQuantity(0).setRealRefundAmount(BigDecimal.ZERO).setRestoreQuantity(0);
|
||||
return orderRefundDetail;
|
||||
}
|
||||
|
||||
public static OrderRefundDetail newRefundedInstance(BigDecimal refundAmount) {
|
||||
OrderRefundDetail orderRefundDetail = (new OrderRefundDetail()).setQuantity(1).setRefundAmount(refundAmount).setRealQuantity(1).setRealRefundAmount(refundAmount).setRestoreQuantity(0);
|
||||
return orderRefundDetail;
|
||||
}
|
||||
|
||||
public static String[] logFields() {
|
||||
return new String[]{"orderRefundId", "detailId", "quantity", "refundAmount", "realQuantity", "realRefundAmount", "restoreQuantity"};
|
||||
}
|
||||
|
||||
public Long getOrderRefundId() {
|
||||
return this.orderRefundId;
|
||||
}
|
||||
|
||||
public Long getDetailId() {
|
||||
return this.detailId;
|
||||
}
|
||||
|
||||
public Integer getQuantity() {
|
||||
return this.quantity;
|
||||
}
|
||||
|
||||
public BigDecimal getRefundAmount() {
|
||||
return this.refundAmount;
|
||||
}
|
||||
|
||||
public Integer getRealQuantity() {
|
||||
return this.realQuantity;
|
||||
}
|
||||
|
||||
public BigDecimal getRealRefundAmount() {
|
||||
return this.realRefundAmount;
|
||||
}
|
||||
|
||||
public Integer getRestoreQuantity() {
|
||||
return this.restoreQuantity;
|
||||
}
|
||||
|
||||
public LocalDateTime getCrtime() {
|
||||
return this.crtime;
|
||||
}
|
||||
|
||||
public LocalDateTime getUptime() {
|
||||
return this.uptime;
|
||||
}
|
||||
|
||||
public OrderRefundDetail setOrderRefundId(final Long orderRefundId) {
|
||||
this.orderRefundId = orderRefundId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public OrderRefundDetail setDetailId(final Long detailId) {
|
||||
this.detailId = detailId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public OrderRefundDetail setQuantity(final Integer quantity) {
|
||||
this.quantity = quantity;
|
||||
return this;
|
||||
}
|
||||
|
||||
public OrderRefundDetail setRefundAmount(final BigDecimal refundAmount) {
|
||||
this.refundAmount = refundAmount;
|
||||
return this;
|
||||
}
|
||||
|
||||
public OrderRefundDetail setRealQuantity(final Integer realQuantity) {
|
||||
this.realQuantity = realQuantity;
|
||||
return this;
|
||||
}
|
||||
|
||||
public OrderRefundDetail setRealRefundAmount(final BigDecimal realRefundAmount) {
|
||||
this.realRefundAmount = realRefundAmount;
|
||||
return this;
|
||||
}
|
||||
|
||||
public OrderRefundDetail setRestoreQuantity(final Integer restoreQuantity) {
|
||||
this.restoreQuantity = restoreQuantity;
|
||||
return this;
|
||||
}
|
||||
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
public OrderRefundDetail setCrtime(final LocalDateTime crtime) {
|
||||
this.crtime = crtime;
|
||||
return this;
|
||||
}
|
||||
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
public OrderRefundDetail setUptime(final LocalDateTime uptime) {
|
||||
this.uptime = uptime;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.bonus.core.order.common.service;
|
||||
|
||||
|
||||
import com.bonus.core.order.common.model.OrderDelivery;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public interface OrderDeliveryService {
|
||||
OrderDelivery getByOrderId(Long orderId, LocalDate orderDate);
|
||||
}
|
||||
|
|
@ -21,7 +21,7 @@ public interface OrderDetailService {
|
|||
//
|
||||
// void removeByDetailId(Long detailId, LocalDate orderDate);
|
||||
|
||||
// List<OrderDetail> getOrderDetailList(Long orderId, LocalDate orderDate);
|
||||
List<OrderDetail> getOrderDetailList(Long orderId, LocalDate orderDate);
|
||||
//
|
||||
// List<OrderDetail> getOrderDetailList(List<Long> orderIdList, Collection<LocalDate> orderDates);
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.bonus.core.order.common.dto.OrderSearchParam;
|
|||
import com.bonus.core.order.common.model.OrderInfo;
|
||||
import com.bonus.core.order.common.vo.OrderIdDateVO;
|
||||
import com.bonus.core.order.common.vo.OrderInfoVO;
|
||||
import com.bonus.core.order.mobile.vo.OrderInfoMobileVO;
|
||||
import com.bonus.core.order.mobile.vo.OrderListMobileVO;
|
||||
import com.bonus.core.order.web.dto.OrderUserPermissionDTO;
|
||||
|
||||
|
|
@ -88,7 +89,7 @@ public interface OrderInfoService {
|
|||
//
|
||||
// List<OrderRefundListMobileVO> getOrderRefundMobileList(List<Long> orderIds, List<LocalDate> orderDates);
|
||||
//
|
||||
// OrderInfoMobileVO getOrderInfoMobileByOrderId(Long orderId);
|
||||
OrderInfoMobileVO getOrderInfoMobileByOrderId(Long orderId);
|
||||
//
|
||||
// List<OrderListAndroidVO> listOrderForAndroid(List<Long> orderIds, List<LocalDate> orderDates);
|
||||
//
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
package com.bonus.core.order.common.service;
|
||||
|
||||
import com.bonus.core.order.weight.vo.RefundDetailStateVO;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
public interface OrderRefundDetailService {
|
||||
// void batchInsertOrderRefundDetail(List<OrderRefundDetail> orderRefundDetailList);
|
||||
//
|
||||
// void updateRefundDetailQuantity(List<OrderRefundDetail> refundDetailList);
|
||||
//
|
||||
// void deleteByOrderRefundIds(List<Long> orderRefundIds);
|
||||
//
|
||||
// List<OrderRefundDetail> listByOrderRefundId(Long orderRefundId);
|
||||
//
|
||||
// List<OrderRefundDetail> listByOrderRefundIds(List<Long> orderRefundIds);
|
||||
//
|
||||
// List<OrderRefundDetailVO> listOrderRefundDetailVO(List<Long> orderRefundIds, List<LocalDate> orderDates);
|
||||
|
||||
List<RefundDetailStateVO> listRefundDetailState(Long orderId, String macOrderId);
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package com.bonus.core.order.common.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bonus.core.order.common.mapper.OrderDeliveryMapper;
|
||||
import com.bonus.core.order.common.model.OrderDelivery;
|
||||
import com.bonus.core.order.common.service.OrderDeliveryService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@Service
|
||||
public class OrderDeliveryServiceImpl extends ServiceImpl<OrderDeliveryMapper, OrderDelivery> implements OrderDeliveryService {
|
||||
|
||||
@Override
|
||||
public OrderDelivery getByOrderId(Long orderId, LocalDate orderDate) {
|
||||
return orderId == null ? null : (OrderDelivery)((OrderDeliveryMapper)this.baseMapper)
|
||||
.selectOne((Wrapper)((LambdaQueryWrapper)((LambdaQueryWrapper<OrderDelivery>)Wrappers.lambdaQuery(OrderDelivery.class)
|
||||
.eq(OrderDelivery::getOrderId, orderId)).eq(orderDate != null,
|
||||
OrderDelivery::getOrderDate, orderDate)).last("limit 1"));
|
||||
}
|
||||
}
|
||||
|
|
@ -73,16 +73,16 @@ public class OrderDetailServiceImpl extends ServiceImpl<OrderDetailMapper, Order
|
|||
// return this.list(((LambdaQueryWrapper)((LambdaQueryWrapper)this.getDetailSelectWrapper().eq(OrderDetail::getOrderId, orderId)).in(OrderDetail::getDetailType, new Object[]{DetailTypeEnum.DISHES.getKey(), DetailTypeEnum.PACKAGE.getKey(), DetailTypeEnum.PRODUCT.getKey(), DetailTypeEnum.KEYAMOUNT.getKey()})).eq(orderDate != null, OrderDetail::getOrderDate, orderDate));
|
||||
// }
|
||||
|
||||
// @Override
|
||||
// public List<OrderDetail> getOrderDetailList(Long orderId, LocalDate orderDate) {
|
||||
// return (List)(!LeNumUtil.isValidId(orderId) ? CollUtil.newArrayList(new OrderDetail[0]) :
|
||||
// this.getOrderDetailList((List)CollUtil.toList(new Long[]{orderId}),
|
||||
// (Collection)(orderDate != null ? CollUtil.newArrayList(new LocalDate[]{orderDate}) : null)));
|
||||
// }
|
||||
//
|
||||
// public List<OrderDetail> getOrderDetailList(List<Long> orderIdList, Collection<LocalDate> orderDates) {
|
||||
// return this.getOrderDetailList(orderIdList, orderDates, (List)null);
|
||||
// }
|
||||
@Override
|
||||
public List<OrderDetail> getOrderDetailList(Long orderId, LocalDate orderDate) {
|
||||
return (List<OrderDetail>)(!LeNumUtil.isValidId(orderId) ? CollUtil.newArrayList(new OrderDetail[0]) :
|
||||
this.getOrderDetailList((List)CollUtil.toList(new Long[]{orderId}),
|
||||
(Collection)(orderDate != null ? CollUtil.newArrayList(new LocalDate[]{orderDate}) : null)));
|
||||
}
|
||||
|
||||
public List<OrderDetail> getOrderDetailList(List<Long> orderIdList, Collection<LocalDate> orderDates) {
|
||||
return this.getOrderDetailList(orderIdList, orderDates, (List)null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderDetail> getOrderDetailList(List<Long> orderIdList, Collection<LocalDate> orderDates, List<Integer> detailStateList) {
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import com.bonus.core.order.common.mapper.OrderInfoMapper;
|
|||
import com.bonus.core.order.common.model.OrderInfo;
|
||||
import com.bonus.core.order.common.service.OrderInfoService;
|
||||
import com.bonus.core.order.common.vo.OrderIdDateVO;
|
||||
import com.bonus.core.order.mobile.vo.OrderInfoMobileVO;
|
||||
import com.bonus.core.order.mobile.vo.OrderListMobileVO;
|
||||
import com.bonus.core.order.utils.LeOrderUtil;
|
||||
import com.bonus.core.order.web.dto.OrderUserPermissionDTO;
|
||||
|
|
@ -78,29 +79,29 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||
// public OrderInfo getById(Long id, LocalDate... orderDates) {
|
||||
// return this.getByIdDate(id);
|
||||
// }
|
||||
//
|
||||
// private OrderInfo getByIdDate(Long id, LocalDate... orderDates) {
|
||||
// if (id == null) {
|
||||
// return null;
|
||||
// } else {
|
||||
// int argLength = ArrayUtil.length(orderDates);
|
||||
// OrderInfo orderInfo;
|
||||
// if (argLength == 2) {
|
||||
// orderInfo = (OrderInfo)((OrderInfoMapper)this.baseMapper).selectOne((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery(OrderInfo.class).eq(OrderInfo::getOrderId, id)).between(OrderInfo::getOrderDate, orderDates[0], orderDates[1]));
|
||||
// } else if (argLength == 1) {
|
||||
// orderInfo = (OrderInfo)((OrderInfoMapper)this.baseMapper).selectOne((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery(OrderInfo.class).eq(OrderInfo::getOrderId, id)).eq(OrderInfo::getOrderDate, orderDates));
|
||||
// } else {
|
||||
// List<LocalDate> dateRange = LeOrderUtil.queryDateRange(id);
|
||||
// orderInfo = (OrderInfo)((OrderInfoMapper)this.baseMapper).selectOne((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery(OrderInfo.class).eq(OrderInfo::getOrderId, id)).between(OrderInfo::getOrderDate, dateRange.get(0), dateRange.get(1)));
|
||||
// }
|
||||
//
|
||||
// if (orderInfo == null) {
|
||||
// orderInfo = (OrderInfo)((OrderInfoMapper)this.baseMapper).selectOne((Wrapper)Wrappers.lambdaQuery(OrderInfo.class).eq(OrderInfo::getOrderId, id));
|
||||
// }
|
||||
//
|
||||
// return orderInfo;
|
||||
// }
|
||||
// }
|
||||
|
||||
private OrderInfo getByIdDate(Long id, LocalDate... orderDates) {
|
||||
if (id == null) {
|
||||
return null;
|
||||
} else {
|
||||
int argLength = ArrayUtil.length(orderDates);
|
||||
OrderInfo orderInfo;
|
||||
if (argLength == 2) {
|
||||
orderInfo = (OrderInfo)((OrderInfoMapper)this.baseMapper).selectOne((Wrapper<OrderInfo>)((LambdaQueryWrapper<OrderInfo>)Wrappers.lambdaQuery(OrderInfo.class).eq(OrderInfo::getOrderId, id)).between(OrderInfo::getOrderDate, orderDates[0], orderDates[1]));
|
||||
} else if (argLength == 1) {
|
||||
orderInfo = (OrderInfo)((OrderInfoMapper)this.baseMapper).selectOne((Wrapper<OrderInfo>)((LambdaQueryWrapper<OrderInfo>)Wrappers.lambdaQuery(OrderInfo.class).eq(OrderInfo::getOrderId, id)).eq(OrderInfo::getOrderDate, orderDates));
|
||||
} else {
|
||||
List<LocalDate> dateRange = LeOrderUtil.queryDateRange(id);
|
||||
orderInfo = (OrderInfo)((OrderInfoMapper)this.baseMapper).selectOne((Wrapper<OrderInfo>)((LambdaQueryWrapper<OrderInfo>)Wrappers.lambdaQuery(OrderInfo.class).eq(OrderInfo::getOrderId, id)).between(OrderInfo::getOrderDate, dateRange.get(0), dateRange.get(1)));
|
||||
}
|
||||
|
||||
if (orderInfo == null) {
|
||||
orderInfo = (OrderInfo)((OrderInfoMapper)this.baseMapper).selectOne((Wrapper<OrderInfo>)Wrappers.lambdaQuery(OrderInfo.class).eq(OrderInfo::getOrderId, id));
|
||||
}
|
||||
|
||||
return orderInfo;
|
||||
}
|
||||
}
|
||||
//
|
||||
// public OrderInfoVO getVoById(Long orderId, LocalDate... orderDate) {
|
||||
// return !LeNumUtil.isValidId(orderId) ? null : (OrderInfoVO)this.listVoByOrderIds(CollUtil.toList(new Long[]{orderId}), orderDate != null ? CollUtil.toList(orderDate) : null).stream().findFirst().orElse((Object)null);
|
||||
|
|
@ -281,11 +282,12 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||
// return ((OrderInfoMapper)this.baseMapper).getOrderRefundMobileList(orderIds, (LocalDate)dateRange.get(0), (LocalDate)dateRange.get(1));
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public OrderInfoMobileVO getOrderInfoMobileByOrderId(Long orderId) {
|
||||
// OrderInfo orderInfo = this.getByIdDate(orderId);
|
||||
// return orderInfo != null ? OrderInfoMobileVO.of(orderInfo) : null;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public OrderInfoMobileVO getOrderInfoMobileByOrderId(Long orderId) {
|
||||
OrderInfo orderInfo = this.getByIdDate(orderId);
|
||||
return orderInfo != null ? OrderInfoMobileVO.of(orderInfo) : null;
|
||||
}
|
||||
//
|
||||
// public List<OrderInfo> listOrderInfoByMacOrderId(String macOrderId, LocalDate... orderDates) {
|
||||
// int argLength = ArrayUtil.length(orderDates);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,97 @@
|
|||
package com.bonus.core.order.common.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bonus.core.order.common.mapper.OrderRefundDetailMapper;
|
||||
import com.bonus.core.order.common.model.OrderRefundDetail;
|
||||
import com.bonus.core.order.common.service.OrderRefundDetailService;
|
||||
import com.bonus.core.order.weight.vo.RefundDetailStateVO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.lang.invoke.SerializedLambda;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class OrderRefundDetailServiceImpl extends ServiceImpl<OrderRefundDetailMapper, OrderRefundDetail> implements OrderRefundDetailService {
|
||||
// @Autowired
|
||||
// @Lazy
|
||||
// protected OrderDetailService orderDetailService;
|
||||
// @Autowired
|
||||
// @Lazy
|
||||
// protected OrderRefundService orderRefundService;
|
||||
|
||||
// public OrderRefundDetail getById(Serializable id) {
|
||||
// return id == null ? null : (OrderRefundDetail)super.getById(id);
|
||||
// }
|
||||
//
|
||||
// @Transactional(
|
||||
// rollbackFor = {Exception.class}
|
||||
// )
|
||||
// public void batchInsertOrderRefundDetail(List<OrderRefundDetail> orderRefundDetailList) {
|
||||
// if (!CollUtil.isEmpty(orderRefundDetailList)) {
|
||||
// super.saveBatch(orderRefundDetailList);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public void updateRefundDetailQuantity(List<OrderRefundDetail> orderDetailList) {
|
||||
// if (!CollUtil.isEmpty(orderDetailList)) {
|
||||
// Iterator var2 = orderDetailList.iterator();
|
||||
//
|
||||
// while(var2.hasNext()) {
|
||||
// OrderRefundDetail orderRefundDetail = (OrderRefundDetail)var2.next();
|
||||
// ((OrderRefundDetailMapper)this.baseMapper).update((Object)null, (Wrapper)((LambdaUpdateWrapper)((LambdaUpdateWrapper)((LambdaUpdateWrapper)((LambdaUpdateWrapper)((LambdaUpdateWrapper)((LambdaUpdateWrapper)Wrappers.lambdaUpdate(OrderRefundDetail.class).set(orderRefundDetail.getQuantity() != null, OrderRefundDetail::getQuantity, orderRefundDetail.getQuantity())).set(orderRefundDetail.getRealQuantity() != null, OrderRefundDetail::getRealQuantity, orderRefundDetail.getRealQuantity())).set(orderRefundDetail.getRestoreQuantity() != null, OrderRefundDetail::getRestoreQuantity, orderRefundDetail.getRestoreQuantity())).set(orderRefundDetail.getRefundAmount() != null, OrderRefundDetail::getRefundAmount, orderRefundDetail.getRefundAmount())).set(orderRefundDetail.getRealRefundAmount() != null, OrderRefundDetail::getRealRefundAmount, orderRefundDetail.getRealRefundAmount())).eq(OrderRefundDetail::getOrderRefundId, orderRefundDetail.getOrderRefundId())).eq(OrderRefundDetail::getDetailId, orderRefundDetail.getDetailId()));
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public void deleteByOrderRefundIds(List<Long> orderRefundIds) {
|
||||
// if (!CollUtil.isEmpty(orderRefundIds)) {
|
||||
// ((OrderRefundDetailMapper)this.baseMapper).delete((Wrapper)Wrappers.lambdaQuery(OrderRefundDetail.class).in(OrderRefundDetail::getOrderRefundId, orderRefundIds));
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public List<OrderRefundDetail> listByOrderRefundId(Long orderRefundId) {
|
||||
// return ((OrderRefundDetailMapper)this.baseMapper).selectList((Wrapper)Wrappers.lambdaQuery(OrderRefundDetail.class).eq(OrderRefundDetail::getOrderRefundId, orderRefundId));
|
||||
// }
|
||||
//
|
||||
// public List<OrderRefundDetail> listByOrderRefundIds(List<Long> orderRefundIds) {
|
||||
// return (List)(CollUtil.isEmpty(orderRefundIds) ? CollUtil.newArrayList(new OrderRefundDetail[0]) : ((OrderRefundDetailMapper)this.baseMapper).selectList((Wrapper)Wrappers.lambdaQuery(OrderRefundDetail.class).in(OrderRefundDetail::getOrderRefundId, orderRefundIds)));
|
||||
// }
|
||||
|
||||
@Override
|
||||
public List<RefundDetailStateVO> listRefundDetailState(Long orderId, String macOrderId) {
|
||||
return ((OrderRefundDetailMapper)this.baseMapper).listRefundDetailState(orderId, macOrderId);
|
||||
}
|
||||
|
||||
// public List<OrderRefundDetailVO> listOrderRefundDetailVO(List<Long> orderRefundIds, List<LocalDate> orderDates) {
|
||||
// if (CollUtil.isEmpty(orderRefundIds)) {
|
||||
// return CollUtil.newArrayList(new OrderRefundDetailVO[0]);
|
||||
// } else {
|
||||
// List<OrderRefundDetail> orderRefundDetails = ((OrderRefundDetailMapper)this.baseMapper).selectList((Wrapper)Wrappers.lambdaQuery(OrderRefundDetail.class).in(OrderRefundDetail::getOrderRefundId, orderRefundIds));
|
||||
// if (CollUtil.isEmpty(orderRefundDetails)) {
|
||||
// return CollUtil.newArrayList(new OrderRefundDetailVO[0]);
|
||||
// } else {
|
||||
// List<Long> detailIds = (List)orderRefundDetails.stream().map(OrderRefundDetail::getDetailId).collect(Collectors.toList());
|
||||
// Map<Long, OrderDetail> orderDetailMap = (Map)this.orderDetailService.listByDetailIds(detailIds, orderDates).stream().collect(Collectors.toMap(OrderDetail::getDetailId, Function.identity()));
|
||||
// List<OrderRefundDetailVO> voList = (List)orderRefundDetails.stream().map((s) -> {
|
||||
// return OrderRefundDetailVO.of(s, (OrderDetail)orderDetailMap.get(s.getDetailId()));
|
||||
// }).collect(Collectors.toList());
|
||||
// this.orderDetailService.fillOrderDetailImage(voList);
|
||||
// return voList;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package com.bonus.core.order.common.vo;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class OrderEnumVO {
|
||||
private Integer key;
|
||||
private String value;
|
||||
|
||||
public static List<OrderEnumVO> listOf(List<Map<String, Object>> allEnumsList) {
|
||||
return CollUtil.isEmpty(allEnumsList) ? ListUtil.empty() : (List)allEnumsList.stream().map((map) -> {
|
||||
OrderEnumVO orderEnumVO = new OrderEnumVO();
|
||||
orderEnumVO.setKey(MapUtil.getInt(map, "key"));
|
||||
orderEnumVO.setValue(MapUtil.getStr(map, "value"));
|
||||
return orderEnumVO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public Integer getKey() {
|
||||
return this.key;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
public void setKey(final Integer key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public void setValue(final String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
|
|||
import com.bonus.core.common.custom.business.CustomBusiness;
|
||||
import com.bonus.core.common.page.PageVO;
|
||||
import com.bonus.core.order.mobile.dto.OrderListMobileDTO;
|
||||
import com.bonus.core.order.mobile.vo.OrderInfoMobileVO;
|
||||
import com.bonus.core.order.mobile.vo.OrderListMobileVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
|
@ -55,9 +56,9 @@ public class OrderCustomMobileBusiness implements CustomBusiness {
|
|||
public void didQueryOrderList(OrderListMobileDTO param, PageVO<OrderListMobileVO> pageVO) {
|
||||
}
|
||||
|
||||
// public OrderInfoMobileVO didQueryOrderInfo(OrderInfoMobileVO orderInfoMobileVO) {
|
||||
// return orderInfoMobileVO;
|
||||
// }
|
||||
public OrderInfoMobileVO didQueryOrderInfo(OrderInfoMobileVO orderInfoMobileVO) {
|
||||
return orderInfoMobileVO;
|
||||
}
|
||||
//
|
||||
// public UnifyPaySelectVO willReSyncOrderPayResult(Long orderId) {
|
||||
// return null;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,15 @@
|
|||
package com.bonus.core.order.mobile.controller;
|
||||
|
||||
import com.bonus.common.core.domain.R;
|
||||
import com.bonus.common.core.web.controller.BaseController;
|
||||
import com.bonus.common.core.web.page.TableDataInfo;
|
||||
import com.bonus.core.common.page.PageVO;
|
||||
import com.bonus.core.common.utils.JavaxValidateUtils;
|
||||
import com.bonus.core.order.common.dto.RequestHeaderDTO;
|
||||
import com.bonus.core.order.mobile.dto.OrderIdMobileDTO;
|
||||
import com.bonus.core.order.mobile.dto.OrderListMobileDTO;
|
||||
import com.bonus.core.order.mobile.service.OrderInfoMobileBusiness;
|
||||
import com.bonus.core.order.mobile.vo.OrderInfoMobileVO;
|
||||
import com.bonus.core.order.mobile.vo.OrderListMobileVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -55,17 +59,17 @@ public class OrderInfoMobileController extends BaseController {
|
|||
// PageVO<OrderRefundListMobileVO> orderPage = this.orderInfoMobileBusiness.orderRefundList((OrderRefundListMobileQueryDTO)request.getContent(), headerDTO);
|
||||
// return LeResponse.succ(orderPage);
|
||||
// }
|
||||
//
|
||||
// @PostMapping({"/info"})
|
||||
// @ApiOperation(
|
||||
// value = "获取订单详情",
|
||||
// notes = "cmt-获取订单详情"
|
||||
// )
|
||||
// public LeResponse<OrderInfoMobileVO> orderInfo(@RequestBody LeRequest<OrderIdMobileDTO> request) {
|
||||
// JavaxValidateUtils.validate((OrderIdMobileDTO)request.getContent());
|
||||
// OrderInfoMobileVO orderInfo = this.orderInfoMobileBusiness.orderInfo(((OrderIdMobileDTO)request.getContent()).getOrderId());
|
||||
// return LeResponse.succ(orderInfo);
|
||||
// }
|
||||
|
||||
@PostMapping({"/info"})
|
||||
@ApiOperation(
|
||||
value = "获取订单详情",
|
||||
notes = "cmt-获取订单详情"
|
||||
)
|
||||
public R<OrderInfoMobileVO> orderInfo(@RequestBody OrderIdMobileDTO request) {
|
||||
JavaxValidateUtils.validate((OrderIdMobileDTO)request);
|
||||
OrderInfoMobileVO orderInfo = this.orderInfoMobileBusiness.orderInfo(request.getOrderId());
|
||||
return R.ok(orderInfo);
|
||||
}
|
||||
//
|
||||
// @PostMapping({"/sync-pay-state"})
|
||||
// public LeResponse<UnifyPaySelectVO> orderSyncPayState(@RequestBody LeRequest<OrderSyncPayStateMobileDTO> request) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
package com.bonus.core.order.mobile.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
@ApiModel("移动端订单idDTO")
|
||||
public class OrderIdMobileDTO {
|
||||
@ApiModelProperty("订单号")
|
||||
private Long orderId;
|
||||
|
||||
public Long getOrderId() {
|
||||
return this.orderId;
|
||||
}
|
||||
|
||||
public void setOrderId(final Long orderId) {
|
||||
this.orderId = orderId;
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package com.bonus.core.order.mobile.service;
|
|||
import com.bonus.core.common.page.PageVO;
|
||||
import com.bonus.core.order.common.dto.RequestHeaderDTO;
|
||||
import com.bonus.core.order.mobile.dto.OrderListMobileDTO;
|
||||
import com.bonus.core.order.mobile.vo.OrderInfoMobileVO;
|
||||
import com.bonus.core.order.mobile.vo.OrderListMobileVO;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -18,7 +19,7 @@ public interface OrderInfoMobileBusiness {
|
|||
//
|
||||
// PageVO<OrderRefundListMobileVO> orderRefundList(OrderRefundListMobileQueryDTO queryDTO, RequestHeaderDTO headerDTO);
|
||||
//
|
||||
// OrderInfoMobileVO orderInfo(Long orderId);
|
||||
OrderInfoMobileVO orderInfo(Long orderId);
|
||||
//
|
||||
// OrderInfoMobileVO weightOrderInfo(OrderInfoWeightMobileDTO queryDTO);
|
||||
//
|
||||
|
|
|
|||
|
|
@ -9,22 +9,31 @@ import com.bonus.core.common.page.PageVO;
|
|||
import com.bonus.core.device.api.DeviceApi;
|
||||
import com.bonus.core.device.manage.dto.DeviceSearchDTO;
|
||||
import com.bonus.core.device.manage.model.DeviceInfo;
|
||||
import com.bonus.core.menu.api.MenuDishesApi;
|
||||
import com.bonus.core.menu.utils.NutritionEntity;
|
||||
import com.bonus.core.order.common.constants.CheckStateEnum;
|
||||
import com.bonus.core.order.common.constants.DetailTypeEnum;
|
||||
import com.bonus.core.order.common.constants.OrderTypeEnum;
|
||||
import com.bonus.core.order.common.dto.RequestHeaderDTO;
|
||||
import com.bonus.core.order.common.model.OrderDelivery;
|
||||
import com.bonus.core.order.common.model.OrderRefund;
|
||||
import com.bonus.core.order.common.query.OrderQueryHelper;
|
||||
import com.bonus.core.order.common.service.OrderDetailService;
|
||||
import com.bonus.core.order.common.service.OrderInfoService;
|
||||
import com.bonus.core.order.common.service.OrderRefundService;
|
||||
import com.bonus.core.order.common.service.*;
|
||||
import com.bonus.core.order.common.vo.OrderIdDateVO;
|
||||
import com.bonus.core.order.custom.OrderCustomBusiness;
|
||||
import com.bonus.core.order.mobile.dto.OrderListMobileDTO;
|
||||
import com.bonus.core.order.mobile.service.OrderInfoMobileBusiness;
|
||||
import com.bonus.core.order.mobile.vo.OrderDetailMobileVO;
|
||||
import com.bonus.core.order.mobile.vo.OrderInfoMobileVO;
|
||||
import com.bonus.core.order.mobile.vo.OrderListMobileVO;
|
||||
import com.bonus.core.order.mobile.vo.OrderNutrientInfoVO;
|
||||
import com.bonus.core.order.utils.LeNumUtil;
|
||||
import com.bonus.core.order.web.dto.OrderUserPermissionDTO;
|
||||
import com.bonus.core.order.weight.service.MacPlateidBindSerialService;
|
||||
import com.bonus.core.order.weight.model.MacPlateidBindSerial;
|
||||
import com.bonus.core.order.weight.vo.RefundDetailStateVO;
|
||||
import com.bonus.utils.AesEncryptUtil;
|
||||
import com.bonus.core.menu.model.MenuDishesTypeModel;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -32,6 +41,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
|
|
@ -45,6 +55,9 @@ public class OrderInfoMobileBusinessImpl implements OrderInfoMobileBusiness {
|
|||
protected OrderInfoService orderInfoService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
protected OrderDeliveryService orderDeliveryService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
protected OrderDetailService orderDetailService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
|
|
@ -58,6 +71,15 @@ public class OrderInfoMobileBusinessImpl implements OrderInfoMobileBusiness {
|
|||
@Lazy
|
||||
@Autowired
|
||||
protected MacPlateidBindSerialService macPlateidBindSerialService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
protected AesEncryptUtil aesEncryptUtil;
|
||||
@Lazy
|
||||
@Autowired
|
||||
protected MenuDishesApi menuDishesApi;
|
||||
@Lazy
|
||||
@Autowired
|
||||
protected OrderRefundDetailService orderRefundDetailService;
|
||||
|
||||
@Override
|
||||
public PageVO<OrderListMobileVO> orderList(OrderListMobileDTO orderListDTO, RequestHeaderDTO headerDTO) {
|
||||
|
|
@ -79,7 +101,8 @@ public class OrderInfoMobileBusinessImpl implements OrderInfoMobileBusiness {
|
|||
log.info("[移动端订单列表]查询订单详情:{}", orderList.size());
|
||||
List<Long> orderIdList = (List)orderList.stream().map(OrderListMobileVO::getOrderId).collect(Collectors.toList());
|
||||
List<LocalDate> dateList = (List)orderList.stream().map(OrderListMobileVO::getOrderDate).collect(Collectors.toList());
|
||||
List<OrderDetailMobileVO> orderDetailList = (List)this.orderDetailService.getOrderDetailList(orderIdList, dateList, (List<Integer>)null).stream().map(OrderDetailMobileVO::of).collect(Collectors.toList());
|
||||
List<OrderDetailMobileVO> orderDetailList = (List)this.orderDetailService.getOrderDetailList(orderIdList, dateList, (List<Integer>)null)
|
||||
.stream().map(OrderDetailMobileVO::of).collect(Collectors.toList());
|
||||
this.orderDetailService.fillOrderDetailImage(orderDetailList);
|
||||
Map<Long, List<OrderDetailMobileVO>> orderDetailMap = (Map)orderDetailList.stream().collect(Collectors.groupingBy(OrderDetailMobileVO::getOrderId));
|
||||
Map<String, DeviceInfo> deviceMap = MapUtil.empty();
|
||||
|
|
@ -128,4 +151,104 @@ public class OrderInfoMobileBusinessImpl implements OrderInfoMobileBusiness {
|
|||
return k2;
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderInfoMobileVO orderInfo(Long orderId) {
|
||||
OrderInfoMobileVO orderInfoVO = this.orderInfoService.getOrderInfoMobileByOrderId(orderId);
|
||||
if (ObjectUtil.isNull(orderInfoVO)) {
|
||||
return null;
|
||||
} else {
|
||||
List<OrderDetailMobileVO> detailMobileList = (List<OrderDetailMobileVO>)this.orderDetailService
|
||||
.getOrderDetailList(orderId, orderInfoVO.getOrderDate())
|
||||
.stream().map(OrderDetailMobileVO::of).collect(Collectors.toList());
|
||||
orderInfoVO.setOrderDetailList(detailMobileList);
|
||||
this.fillOrderInfoMobileDetail(orderInfoVO, detailMobileList);
|
||||
this.fillOrderDetailMobileCheckState(orderInfoVO, detailMobileList);
|
||||
this.fillWeightPlateNum(orderInfoVO);
|
||||
orderInfoVO = this.orderCustomBusiness.mobile().didQueryOrderInfo(orderInfoVO);
|
||||
return orderInfoVO;
|
||||
}
|
||||
}
|
||||
|
||||
protected void fillOrderInfoMobileDetail(OrderInfoMobileVO orderInfoVO, List<OrderDetailMobileVO> detailMobileList) {
|
||||
log.info("[移动端订单详情]查询配送信息:{}", orderInfoVO.getOrderId());
|
||||
OrderDelivery deliveryInfo = this.orderDeliveryService.getByOrderId(orderInfoVO.getOrderId(), orderInfoVO.getOrderDate());
|
||||
if (ObjectUtil.isNotNull(deliveryInfo)) {
|
||||
orderInfoVO.setConsigneeName(deliveryInfo.getConsigneeName());
|
||||
orderInfoVO.setConsigneeMobile(AesEncryptUtil.aesEncrypt(deliveryInfo.getConsigneeMobile()));
|
||||
orderInfoVO.setConsigneeAddress(deliveryInfo.getConsigneeAddress());
|
||||
orderInfoVO.setDeliveryTime(deliveryInfo.getDeliveryTime());
|
||||
orderInfoVO.setDeliveryCode(deliveryInfo.getDeliveryCode());
|
||||
}
|
||||
|
||||
if (OrderTypeEnum.BUFFET.getKey().equals(orderInfoVO.getOrderType()) && CollUtil.isNotEmpty(detailMobileList)) {
|
||||
log.info("[移动端订单详情]查询营养信息:{}", orderInfoVO.getOrderId());
|
||||
Map<Long, Double> dishesQuantityMap = (Map)detailMobileList.stream()
|
||||
.collect(Collectors.toMap(OrderDetailMobileVO::getGoodsDishesId, OrderDetailMobileVO::totalGram, Double::sum));
|
||||
orderInfoVO.fillNutrientInfo(this.getNutrientInfo(dishesQuantityMap));
|
||||
}
|
||||
|
||||
if (CharSequenceUtil.isNotEmpty(orderInfoVO.getMachineSn())) {
|
||||
log.info("[移动端订单详情]查询设备信息:{}", orderInfoVO.getMachineSn());
|
||||
DeviceInfo deviceBySn = this.deviceApi.getBySn(orderInfoVO.getMachineSn());
|
||||
orderInfoVO.fillDeviceInfo(deviceBySn);
|
||||
}
|
||||
|
||||
log.info("[移动端订单详情]查询菜品分类名称:{}", orderInfoVO.getOrderId());
|
||||
List<Long> dishesIds = (List)detailMobileList.stream().filter((s) -> {
|
||||
return DetailTypeEnum.isDishesCategory(s.getDetailType());
|
||||
}).map(OrderDetailMobileVO::getGoodsDishesId).filter(LeNumUtil::isValidId).collect(Collectors.toList());
|
||||
Map<Long, String> dishesTypeNameMap = (Map)this.menuDishesApi.getDishesTypeName(dishesIds).stream()
|
||||
.collect(Collectors.toMap(MenuDishesTypeModel::getDishesId, MenuDishesTypeModel::getTypeName, (k1, k2) -> {
|
||||
return k2;
|
||||
}));
|
||||
detailMobileList.forEach((s) -> {
|
||||
s.setGoodsDishesTypeName((String)dishesTypeNameMap.get(s.getGoodsDishesId()));
|
||||
});
|
||||
this.orderDetailService.fillOrderDetailImage(detailMobileList);
|
||||
}
|
||||
|
||||
public OrderNutrientInfoVO getNutrientInfo(Map<Long, Double> dishesQuantityMap) {
|
||||
NutritionEntity nutrientInfo = this.menuDishesApi.getNutrientInfo(dishesQuantityMap);
|
||||
return OrderNutrientInfoVO.of(nutrientInfo);
|
||||
}
|
||||
|
||||
protected void fillOrderDetailMobileCheckState(OrderInfoMobileVO orderInfoVO, List<OrderDetailMobileVO> detailMobileList) {
|
||||
if (orderInfoVO != null && !CollUtil.isEmpty(detailMobileList)) {
|
||||
log.info("[移动端订单详情]查询退款审核状态:{}", orderInfoVO.getOrderId());
|
||||
List<RefundDetailStateVO> refundDetailStateVOList = this.orderRefundDetailService.listRefundDetailState(CharSequenceUtil.isEmpty(orderInfoVO.getMacOrderId()) ? orderInfoVO.getOrderId() : null, CharSequenceUtil.isNotEmpty(orderInfoVO.getMacOrderId()) ? orderInfoVO.getMacOrderId() : null);
|
||||
if (!CollUtil.isEmpty(refundDetailStateVOList)) {
|
||||
Iterator var4 = detailMobileList.iterator();
|
||||
|
||||
while(var4.hasNext()) {
|
||||
OrderDetailMobileVO orderDetailMobileVO = (OrderDetailMobileVO)var4.next();
|
||||
refundDetailStateVOList.stream().filter((s) -> {
|
||||
return orderDetailMobileVO.getDetailId().equals(s.getMenuId());
|
||||
}).max(Comparator.comparing(RefundDetailStateVO::getOrderRefundId)).ifPresent((s) -> {
|
||||
orderDetailMobileVO.setCheckState(s.getCheckState());
|
||||
});
|
||||
}
|
||||
|
||||
refundDetailStateVOList.stream().filter((s) -> {
|
||||
return orderInfoVO.getOrderId().equals(s.getOrderId());
|
||||
}).filter((s) -> {
|
||||
return s.getFeeAmount().compareTo(BigDecimal.ZERO) > 0;
|
||||
}).max(Comparator.comparing(RefundDetailStateVO::getOrderRefundId)).ifPresent((s) -> {
|
||||
orderInfoVO.setCheckState(s.getCheckState());
|
||||
orderInfoVO.setRefundFeeAmount(s.getFeeAmount());
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void fillWeightPlateNum(OrderInfoMobileVO orderInfoMobileVO) {
|
||||
if (CharSequenceUtil.isNotBlank(orderInfoMobileVO.getPlateSerialNum())) {
|
||||
List<MacPlateidBindSerial> plates = this.macPlateidBindSerialService.queryBindByPlateSerialNumList(CollUtil.toList(new String[]{orderInfoMobileVO.getPlateSerialNum()}));
|
||||
if (CollUtil.isNotEmpty(plates)) {
|
||||
orderInfoMobileVO.setPlateNum(((MacPlateidBindSerial)plates.get(0)).getPlateId());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,585 @@
|
|||
package com.bonus.core.order.mobile.vo;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.bonus.core.common.utils.SysUtil;
|
||||
import com.bonus.core.device.manage.model.DeviceInfo;
|
||||
import com.bonus.core.order.common.constants.OrderStateMixMobileEnum;
|
||||
import com.bonus.core.order.common.model.OrderInfo;
|
||||
import com.bonus.core.order.utils.LeNumUtil;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@ApiModel("移动端订单详情VO")
|
||||
public class OrderInfoMobileVO {
|
||||
@ApiModelProperty("商家订单号")
|
||||
private Long orderId;
|
||||
@ApiModelProperty("设备订单号(设备下单时)")
|
||||
private String macOrderId;
|
||||
@ApiModelProperty("托盘物理号")
|
||||
private String plateSerialNum;
|
||||
@ApiModelProperty("托盘编号")
|
||||
private String plateNum;
|
||||
@ApiModelProperty("来源类型")
|
||||
private Integer sourceType;
|
||||
@ApiModelProperty("人员id")
|
||||
private Long custId;
|
||||
@ApiModelProperty("订单日期(区别于下单时间)")
|
||||
private LocalDate orderDate;
|
||||
@ApiModelProperty("食堂id")
|
||||
private Long canteenId;
|
||||
@ApiModelProperty("食堂名称")
|
||||
private String canteenName;
|
||||
@ApiModelProperty("档口id")
|
||||
private Long stallId;
|
||||
@ApiModelProperty("档口名称")
|
||||
private String stallName;
|
||||
@ApiModelProperty("餐次类型")
|
||||
private String mealtimeType;
|
||||
@ApiModelProperty("餐次名称")
|
||||
private String mealtimeName;
|
||||
@ApiModelProperty("设备序列号(设备下单时)")
|
||||
private String machineSn;
|
||||
@ApiModelProperty("设备编号(设备下单时)")
|
||||
private String machineNum;
|
||||
@ApiModelProperty("设备名称(设备下单时)")
|
||||
private String machineName;
|
||||
@ApiModelProperty("订单总金额 单位为分")
|
||||
private BigDecimal payableAmount;
|
||||
@ApiModelProperty("打折减免 单位为分")
|
||||
private BigDecimal discountsAmount;
|
||||
@ApiModelProperty("餐券抵扣金额 单位为分")
|
||||
private BigDecimal couponAmount;
|
||||
@ApiModelProperty("配送费 单位为分")
|
||||
private BigDecimal deliveryAmount;
|
||||
@ApiModelProperty("包装费")
|
||||
private BigDecimal packingAmount;
|
||||
@ApiModelProperty("送达时间")
|
||||
private LocalDateTime deliveryTime;
|
||||
@ApiModelProperty("实际付款金额 单位为分")
|
||||
private BigDecimal realAmount;
|
||||
@ApiModelProperty("实际应付款金额 单位为分")
|
||||
private BigDecimal needPayAmount;
|
||||
@ApiModelProperty("菜品实际应付款金额合计 单位为分")
|
||||
private BigDecimal calcTotalAmount;
|
||||
@ApiModelProperty("已退款金额")
|
||||
private BigDecimal refundAmount;
|
||||
@ApiModelProperty("下单时间")
|
||||
private LocalDateTime orderTime;
|
||||
@ApiModelProperty("支付时间")
|
||||
private LocalDateTime payTime;
|
||||
@ApiModelProperty("支付方式")
|
||||
private Integer payType;
|
||||
@ApiModelProperty("支付状态")
|
||||
private Integer payState;
|
||||
@ApiModelProperty("扣款类型 1 下单扣款 2 核销扣款")
|
||||
private Integer deductionType;
|
||||
@ApiModelProperty("订单类型")
|
||||
private Integer orderType;
|
||||
private Integer dishesState;
|
||||
@ApiModelProperty("订单状态 1 已下单 2 已完成 3 已取消")
|
||||
private Integer orderState;
|
||||
private Integer orderRefundState;
|
||||
@ApiModelProperty("审核状态 1 待审核 2 审核通过 3 审核失败")
|
||||
private Integer checkState;
|
||||
@ApiModelProperty("退款手续费")
|
||||
private BigDecimal refundFeeAmount;
|
||||
@ApiModelProperty("订单备注")
|
||||
private String remark;
|
||||
@ApiModelProperty("配送方式")
|
||||
private Integer deliveryType;
|
||||
@ApiModelProperty("收货人姓名")
|
||||
private String consigneeName;
|
||||
@ApiModelProperty("收货人手机号")
|
||||
private String consigneeMobile;
|
||||
@ApiModelProperty("收货人地址")
|
||||
private String consigneeAddress;
|
||||
@ApiModelProperty("配送码/取餐码")
|
||||
private String deliveryCode;
|
||||
@ApiModelProperty("订单图片")
|
||||
private String imgUrl;
|
||||
@ApiModelProperty("热量(千卡)")
|
||||
private Double caloriesord;
|
||||
@ApiModelProperty("蛋白质(g)")
|
||||
private Double proteinord;
|
||||
@ApiModelProperty("脂肪(g)")
|
||||
private Double fatord;
|
||||
@ApiModelProperty("纤维(g)")
|
||||
private Double dietaryFiberord;
|
||||
@ApiModelProperty("碳水物(g)")
|
||||
private Double carbohydrateord;
|
||||
@ApiModelProperty("胆固醇(mg)")
|
||||
private Double cholesterolord;
|
||||
@ApiModelProperty("流水号")
|
||||
private String mealCode;
|
||||
private Integer commentState;
|
||||
private Integer orderStateMixMobile;
|
||||
@ApiModelProperty("订单明细list")
|
||||
private List<OrderDetailMobileVO> orderDetailList;
|
||||
|
||||
public static OrderInfoMobileVO of(OrderInfo orderInfo) {
|
||||
return (OrderInfoMobileVO)BeanUtil.copyProperties(orderInfo, OrderInfoMobileVO.class, new String[0]);
|
||||
}
|
||||
|
||||
public String getImgUrl() {
|
||||
return SysUtil.getCutFileUrl(this.imgUrl);
|
||||
}
|
||||
|
||||
public BigDecimal getNeedPayAmount() {
|
||||
return NumberUtil.sub(this.payableAmount, this.discountsAmount);
|
||||
}
|
||||
|
||||
public BigDecimal getCalcTotalAmount() {
|
||||
return LeNumUtil.sumField(this.orderDetailList, OrderDetailMobileVO::getCalcTotalAmount);
|
||||
}
|
||||
|
||||
public Integer getOrderStateMixMobile() {
|
||||
return OrderStateMixMobileEnum.mixStateBy(this.orderState, this.payState, this.orderRefundState, this.dishesState);
|
||||
}
|
||||
|
||||
public void fillDeviceInfo(DeviceInfo deviceInfo) {
|
||||
if (deviceInfo != null) {
|
||||
this.machineSn = deviceInfo.getDeviceSn();
|
||||
this.machineNum = deviceInfo.getDeviceNum();
|
||||
this.machineName = deviceInfo.getDeviceName();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void fillNutrientInfo(OrderNutrientInfoVO nutrientInfo) {
|
||||
if (nutrientInfo != null) {
|
||||
this.caloriesord = nutrientInfo.getCaloriesord();
|
||||
this.proteinord = nutrientInfo.getProteinord();
|
||||
this.fatord = nutrientInfo.getFatord();
|
||||
this.dietaryFiberord = nutrientInfo.getDietaryFiberord();
|
||||
this.carbohydrateord = nutrientInfo.getCarbohydrateord();
|
||||
this.cholesterolord = nutrientInfo.getCholesterolord();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public OrderInfoMobileVO() {
|
||||
this.refundFeeAmount = BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
public Long getOrderId() {
|
||||
return this.orderId;
|
||||
}
|
||||
|
||||
public String getMacOrderId() {
|
||||
return this.macOrderId;
|
||||
}
|
||||
|
||||
public String getPlateSerialNum() {
|
||||
return this.plateSerialNum;
|
||||
}
|
||||
|
||||
public String getPlateNum() {
|
||||
return this.plateNum;
|
||||
}
|
||||
|
||||
public Integer getSourceType() {
|
||||
return this.sourceType;
|
||||
}
|
||||
|
||||
public Long getCustId() {
|
||||
return this.custId;
|
||||
}
|
||||
|
||||
public LocalDate getOrderDate() {
|
||||
return this.orderDate;
|
||||
}
|
||||
|
||||
public Long getCanteenId() {
|
||||
return this.canteenId;
|
||||
}
|
||||
|
||||
public String getCanteenName() {
|
||||
return this.canteenName;
|
||||
}
|
||||
|
||||
public Long getStallId() {
|
||||
return this.stallId;
|
||||
}
|
||||
|
||||
public String getStallName() {
|
||||
return this.stallName;
|
||||
}
|
||||
|
||||
public String getMealtimeType() {
|
||||
return this.mealtimeType;
|
||||
}
|
||||
|
||||
public String getMealtimeName() {
|
||||
return this.mealtimeName;
|
||||
}
|
||||
|
||||
public String getMachineSn() {
|
||||
return this.machineSn;
|
||||
}
|
||||
|
||||
public String getMachineNum() {
|
||||
return this.machineNum;
|
||||
}
|
||||
|
||||
public String getMachineName() {
|
||||
return this.machineName;
|
||||
}
|
||||
|
||||
public BigDecimal getPayableAmount() {
|
||||
return this.payableAmount;
|
||||
}
|
||||
|
||||
public BigDecimal getDiscountsAmount() {
|
||||
return this.discountsAmount;
|
||||
}
|
||||
|
||||
public BigDecimal getCouponAmount() {
|
||||
return this.couponAmount;
|
||||
}
|
||||
|
||||
public BigDecimal getDeliveryAmount() {
|
||||
return this.deliveryAmount;
|
||||
}
|
||||
|
||||
public BigDecimal getPackingAmount() {
|
||||
return this.packingAmount;
|
||||
}
|
||||
|
||||
public LocalDateTime getDeliveryTime() {
|
||||
return this.deliveryTime;
|
||||
}
|
||||
|
||||
public BigDecimal getRealAmount() {
|
||||
return this.realAmount;
|
||||
}
|
||||
|
||||
public BigDecimal getRefundAmount() {
|
||||
return this.refundAmount;
|
||||
}
|
||||
|
||||
public LocalDateTime getOrderTime() {
|
||||
return this.orderTime;
|
||||
}
|
||||
|
||||
public LocalDateTime getPayTime() {
|
||||
return this.payTime;
|
||||
}
|
||||
|
||||
public Integer getPayType() {
|
||||
return this.payType;
|
||||
}
|
||||
|
||||
public Integer getPayState() {
|
||||
return this.payState;
|
||||
}
|
||||
|
||||
public Integer getDeductionType() {
|
||||
return this.deductionType;
|
||||
}
|
||||
|
||||
public Integer getOrderType() {
|
||||
return this.orderType;
|
||||
}
|
||||
|
||||
public Integer getDishesState() {
|
||||
return this.dishesState;
|
||||
}
|
||||
|
||||
public Integer getOrderState() {
|
||||
return this.orderState;
|
||||
}
|
||||
|
||||
public Integer getOrderRefundState() {
|
||||
return this.orderRefundState;
|
||||
}
|
||||
|
||||
public Integer getCheckState() {
|
||||
return this.checkState;
|
||||
}
|
||||
|
||||
public BigDecimal getRefundFeeAmount() {
|
||||
return this.refundFeeAmount;
|
||||
}
|
||||
|
||||
public String getRemark() {
|
||||
return this.remark;
|
||||
}
|
||||
|
||||
public Integer getDeliveryType() {
|
||||
return this.deliveryType;
|
||||
}
|
||||
|
||||
public String getConsigneeName() {
|
||||
return this.consigneeName;
|
||||
}
|
||||
|
||||
public String getConsigneeMobile() {
|
||||
return this.consigneeMobile;
|
||||
}
|
||||
|
||||
public String getConsigneeAddress() {
|
||||
return this.consigneeAddress;
|
||||
}
|
||||
|
||||
public String getDeliveryCode() {
|
||||
return this.deliveryCode;
|
||||
}
|
||||
|
||||
public Double getCaloriesord() {
|
||||
return this.caloriesord;
|
||||
}
|
||||
|
||||
public Double getProteinord() {
|
||||
return this.proteinord;
|
||||
}
|
||||
|
||||
public Double getFatord() {
|
||||
return this.fatord;
|
||||
}
|
||||
|
||||
public Double getDietaryFiberord() {
|
||||
return this.dietaryFiberord;
|
||||
}
|
||||
|
||||
public Double getCarbohydrateord() {
|
||||
return this.carbohydrateord;
|
||||
}
|
||||
|
||||
public Double getCholesterolord() {
|
||||
return this.cholesterolord;
|
||||
}
|
||||
|
||||
public String getMealCode() {
|
||||
return this.mealCode;
|
||||
}
|
||||
|
||||
public Integer getCommentState() {
|
||||
return this.commentState;
|
||||
}
|
||||
|
||||
public List<OrderDetailMobileVO> getOrderDetailList() {
|
||||
return this.orderDetailList;
|
||||
}
|
||||
|
||||
public void setOrderId(final Long orderId) {
|
||||
this.orderId = orderId;
|
||||
}
|
||||
|
||||
public void setMacOrderId(final String macOrderId) {
|
||||
this.macOrderId = macOrderId;
|
||||
}
|
||||
|
||||
public void setPlateSerialNum(final String plateSerialNum) {
|
||||
this.plateSerialNum = plateSerialNum;
|
||||
}
|
||||
|
||||
public void setPlateNum(final String plateNum) {
|
||||
this.plateNum = plateNum;
|
||||
}
|
||||
|
||||
public void setSourceType(final Integer sourceType) {
|
||||
this.sourceType = sourceType;
|
||||
}
|
||||
|
||||
public void setCustId(final Long custId) {
|
||||
this.custId = custId;
|
||||
}
|
||||
|
||||
public void setOrderDate(final LocalDate orderDate) {
|
||||
this.orderDate = orderDate;
|
||||
}
|
||||
|
||||
public void setCanteenId(final Long canteenId) {
|
||||
this.canteenId = canteenId;
|
||||
}
|
||||
|
||||
public void setCanteenName(final String canteenName) {
|
||||
this.canteenName = canteenName;
|
||||
}
|
||||
|
||||
public void setStallId(final Long stallId) {
|
||||
this.stallId = stallId;
|
||||
}
|
||||
|
||||
public void setStallName(final String stallName) {
|
||||
this.stallName = stallName;
|
||||
}
|
||||
|
||||
public void setMealtimeType(final String mealtimeType) {
|
||||
this.mealtimeType = mealtimeType;
|
||||
}
|
||||
|
||||
public void setMealtimeName(final String mealtimeName) {
|
||||
this.mealtimeName = mealtimeName;
|
||||
}
|
||||
|
||||
public void setMachineSn(final String machineSn) {
|
||||
this.machineSn = machineSn;
|
||||
}
|
||||
|
||||
public void setMachineNum(final String machineNum) {
|
||||
this.machineNum = machineNum;
|
||||
}
|
||||
|
||||
public void setMachineName(final String machineName) {
|
||||
this.machineName = machineName;
|
||||
}
|
||||
|
||||
public void setPayableAmount(final BigDecimal payableAmount) {
|
||||
this.payableAmount = payableAmount;
|
||||
}
|
||||
|
||||
public void setDiscountsAmount(final BigDecimal discountsAmount) {
|
||||
this.discountsAmount = discountsAmount;
|
||||
}
|
||||
|
||||
public void setCouponAmount(final BigDecimal couponAmount) {
|
||||
this.couponAmount = couponAmount;
|
||||
}
|
||||
|
||||
public void setDeliveryAmount(final BigDecimal deliveryAmount) {
|
||||
this.deliveryAmount = deliveryAmount;
|
||||
}
|
||||
|
||||
public void setPackingAmount(final BigDecimal packingAmount) {
|
||||
this.packingAmount = packingAmount;
|
||||
}
|
||||
|
||||
public void setDeliveryTime(final LocalDateTime deliveryTime) {
|
||||
this.deliveryTime = deliveryTime;
|
||||
}
|
||||
|
||||
public void setRealAmount(final BigDecimal realAmount) {
|
||||
this.realAmount = realAmount;
|
||||
}
|
||||
|
||||
public void setNeedPayAmount(final BigDecimal needPayAmount) {
|
||||
this.needPayAmount = needPayAmount;
|
||||
}
|
||||
|
||||
public void setCalcTotalAmount(final BigDecimal calcTotalAmount) {
|
||||
this.calcTotalAmount = calcTotalAmount;
|
||||
}
|
||||
|
||||
public void setRefundAmount(final BigDecimal refundAmount) {
|
||||
this.refundAmount = refundAmount;
|
||||
}
|
||||
|
||||
public void setOrderTime(final LocalDateTime orderTime) {
|
||||
this.orderTime = orderTime;
|
||||
}
|
||||
|
||||
public void setPayTime(final LocalDateTime payTime) {
|
||||
this.payTime = payTime;
|
||||
}
|
||||
|
||||
public void setPayType(final Integer payType) {
|
||||
this.payType = payType;
|
||||
}
|
||||
|
||||
public void setPayState(final Integer payState) {
|
||||
this.payState = payState;
|
||||
}
|
||||
|
||||
public void setDeductionType(final Integer deductionType) {
|
||||
this.deductionType = deductionType;
|
||||
}
|
||||
|
||||
public void setOrderType(final Integer orderType) {
|
||||
this.orderType = orderType;
|
||||
}
|
||||
|
||||
public void setDishesState(final Integer dishesState) {
|
||||
this.dishesState = dishesState;
|
||||
}
|
||||
|
||||
public void setOrderState(final Integer orderState) {
|
||||
this.orderState = orderState;
|
||||
}
|
||||
|
||||
public void setOrderRefundState(final Integer orderRefundState) {
|
||||
this.orderRefundState = orderRefundState;
|
||||
}
|
||||
|
||||
public void setCheckState(final Integer checkState) {
|
||||
this.checkState = checkState;
|
||||
}
|
||||
|
||||
public void setRefundFeeAmount(final BigDecimal refundFeeAmount) {
|
||||
this.refundFeeAmount = refundFeeAmount;
|
||||
}
|
||||
|
||||
public void setRemark(final String remark) {
|
||||
this.remark = remark;
|
||||
}
|
||||
|
||||
public void setDeliveryType(final Integer deliveryType) {
|
||||
this.deliveryType = deliveryType;
|
||||
}
|
||||
|
||||
public void setConsigneeName(final String consigneeName) {
|
||||
this.consigneeName = consigneeName;
|
||||
}
|
||||
|
||||
public void setConsigneeMobile(final String consigneeMobile) {
|
||||
this.consigneeMobile = consigneeMobile;
|
||||
}
|
||||
|
||||
public void setConsigneeAddress(final String consigneeAddress) {
|
||||
this.consigneeAddress = consigneeAddress;
|
||||
}
|
||||
|
||||
public void setDeliveryCode(final String deliveryCode) {
|
||||
this.deliveryCode = deliveryCode;
|
||||
}
|
||||
|
||||
public void setImgUrl(final String imgUrl) {
|
||||
this.imgUrl = imgUrl;
|
||||
}
|
||||
|
||||
public void setCaloriesord(final Double caloriesord) {
|
||||
this.caloriesord = caloriesord;
|
||||
}
|
||||
|
||||
public void setProteinord(final Double proteinord) {
|
||||
this.proteinord = proteinord;
|
||||
}
|
||||
|
||||
public void setFatord(final Double fatord) {
|
||||
this.fatord = fatord;
|
||||
}
|
||||
|
||||
public void setDietaryFiberord(final Double dietaryFiberord) {
|
||||
this.dietaryFiberord = dietaryFiberord;
|
||||
}
|
||||
|
||||
public void setCarbohydrateord(final Double carbohydrateord) {
|
||||
this.carbohydrateord = carbohydrateord;
|
||||
}
|
||||
|
||||
public void setCholesterolord(final Double cholesterolord) {
|
||||
this.cholesterolord = cholesterolord;
|
||||
}
|
||||
|
||||
public void setMealCode(final String mealCode) {
|
||||
this.mealCode = mealCode;
|
||||
}
|
||||
|
||||
public void setCommentState(final Integer commentState) {
|
||||
this.commentState = commentState;
|
||||
}
|
||||
|
||||
public void setOrderStateMixMobile(final Integer orderStateMixMobile) {
|
||||
this.orderStateMixMobile = orderStateMixMobile;
|
||||
}
|
||||
|
||||
public void setOrderDetailList(final List<OrderDetailMobileVO> orderDetailList) {
|
||||
this.orderDetailList = orderDetailList;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
package com.bonus.core.order.mobile.vo;
|
||||
|
||||
import com.bonus.core.menu.utils.NutritionEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
public class OrderNutrientInfoVO {
|
||||
@ApiModelProperty("热量(千卡)")
|
||||
private Double caloriesord = 0.0;
|
||||
@ApiModelProperty("蛋白质(g)")
|
||||
private Double proteinord = 0.0;
|
||||
@ApiModelProperty("脂肪(g)")
|
||||
private Double fatord = 0.0;
|
||||
@ApiModelProperty("纤维(g)")
|
||||
private Double dietaryFiberord = 0.0;
|
||||
@ApiModelProperty("碳水物(g)")
|
||||
private Double carbohydrateord = 0.0;
|
||||
@ApiModelProperty("胆固醇(mg)")
|
||||
private Double cholesterolord = 0.0;
|
||||
@ApiModelProperty("钠(mg)")
|
||||
private Double sodium = 0.0;
|
||||
|
||||
public static OrderNutrientInfoVO of(NutritionEntity nutrientInfo) {
|
||||
OrderNutrientInfoVO vo = new OrderNutrientInfoVO();
|
||||
vo.setCaloriesord(nutrientInfo.getCalories());
|
||||
vo.setProteinord(nutrientInfo.getProtein());
|
||||
vo.setFatord(nutrientInfo.getFat());
|
||||
vo.setDietaryFiberord(nutrientInfo.getDietaryFiber());
|
||||
vo.setCarbohydrateord(nutrientInfo.getCarbohydrate());
|
||||
vo.setCholesterolord(nutrientInfo.getCholesterol());
|
||||
vo.setSodium(nutrientInfo.getSodium());
|
||||
return vo;
|
||||
}
|
||||
|
||||
public Double getCaloriesord() {
|
||||
return this.caloriesord;
|
||||
}
|
||||
|
||||
public Double getProteinord() {
|
||||
return this.proteinord;
|
||||
}
|
||||
|
||||
public Double getFatord() {
|
||||
return this.fatord;
|
||||
}
|
||||
|
||||
public Double getDietaryFiberord() {
|
||||
return this.dietaryFiberord;
|
||||
}
|
||||
|
||||
public Double getCarbohydrateord() {
|
||||
return this.carbohydrateord;
|
||||
}
|
||||
|
||||
public Double getCholesterolord() {
|
||||
return this.cholesterolord;
|
||||
}
|
||||
|
||||
public Double getSodium() {
|
||||
return this.sodium;
|
||||
}
|
||||
|
||||
public void setCaloriesord(final Double caloriesord) {
|
||||
this.caloriesord = caloriesord;
|
||||
}
|
||||
|
||||
public void setProteinord(final Double proteinord) {
|
||||
this.proteinord = proteinord;
|
||||
}
|
||||
|
||||
public void setFatord(final Double fatord) {
|
||||
this.fatord = fatord;
|
||||
}
|
||||
|
||||
public void setDietaryFiberord(final Double dietaryFiberord) {
|
||||
this.dietaryFiberord = dietaryFiberord;
|
||||
}
|
||||
|
||||
public void setCarbohydrateord(final Double carbohydrateord) {
|
||||
this.carbohydrateord = carbohydrateord;
|
||||
}
|
||||
|
||||
public void setCholesterolord(final Double cholesterolord) {
|
||||
this.cholesterolord = cholesterolord;
|
||||
}
|
||||
|
||||
public void setSodium(final Double sodium) {
|
||||
this.sodium = sodium;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +1,16 @@
|
|||
package com.bonus.core.order.utils;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Collection;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
|
||||
@Component
|
||||
public class LeNumUtil {
|
||||
|
|
@ -106,14 +111,14 @@ public class LeNumUtil {
|
|||
// return fieldSet.size() == 1 ? CollUtil.getFirst(fieldSet) : defaultValue;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public static <T> BigDecimal sumField(Collection<T> dataList, Function<T, BigDecimal> func) {
|
||||
// return CollUtil.isEmpty(dataList) ? BigDecimal.ZERO : (BigDecimal)dataList.stream().map(func).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
// }
|
||||
//
|
||||
// public static <T> int sumFieldInt(Collection<T> dataList, Function<T, Integer> func) {
|
||||
// return CollUtil.isEmpty(dataList) ? 0 : (Integer)dataList.stream().map(func).filter(Objects::nonNull).reduce(0, Integer::sum);
|
||||
// }
|
||||
|
||||
public static <T> BigDecimal sumField(Collection<T> dataList, Function<T, BigDecimal> func) {
|
||||
return CollUtil.isEmpty(dataList) ? BigDecimal.ZERO : (BigDecimal)dataList.stream().map(func).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
}
|
||||
|
||||
public static <T> int sumFieldInt(Collection<T> dataList, Function<T, Integer> func) {
|
||||
return CollUtil.isEmpty(dataList) ? 0 : (Integer)dataList.stream().map(func).filter(Objects::nonNull).reduce(0, Integer::sum);
|
||||
}
|
||||
//
|
||||
// public static <T> BigDecimal sumField(Collection<T> dataList, Predicate<T> filter, Function<T, BigDecimal> func) {
|
||||
// return CollUtil.isEmpty(dataList) ? BigDecimal.ZERO : (BigDecimal)dataList.stream().filter(filter).map(func).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,103 @@
|
|||
package com.bonus.core.order.weight.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Api("纠错退款VO")
|
||||
public class RefundDetailStateVO {
|
||||
@ApiModelProperty("退款主键ID")
|
||||
private Long orderRefundId;
|
||||
@DateTimeFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
@ApiModelProperty("申请时间")
|
||||
private LocalDateTime applyTime;
|
||||
@ApiModelProperty("申请理由/原因")
|
||||
private String applyReason;
|
||||
@ApiModelProperty("订单号")
|
||||
private Long orderId;
|
||||
@ApiModelProperty("审核状态 1 待审核 2 审核通过 3 拒绝")
|
||||
private Integer checkState;
|
||||
@ApiModelProperty("退款手续费 分")
|
||||
private BigDecimal feeAmount;
|
||||
@ApiModelProperty("实际退款金额 分")
|
||||
private BigDecimal realRefundAmount;
|
||||
@ApiModelProperty("订单下菜品主键ID")
|
||||
private Long menuId;
|
||||
|
||||
public Long getOrderRefundId() {
|
||||
return this.orderRefundId;
|
||||
}
|
||||
|
||||
public LocalDateTime getApplyTime() {
|
||||
return this.applyTime;
|
||||
}
|
||||
|
||||
public String getApplyReason() {
|
||||
return this.applyReason;
|
||||
}
|
||||
|
||||
public Long getOrderId() {
|
||||
return this.orderId;
|
||||
}
|
||||
|
||||
public Integer getCheckState() {
|
||||
return this.checkState;
|
||||
}
|
||||
|
||||
public BigDecimal getFeeAmount() {
|
||||
return this.feeAmount;
|
||||
}
|
||||
|
||||
public BigDecimal getRealRefundAmount() {
|
||||
return this.realRefundAmount;
|
||||
}
|
||||
|
||||
public Long getMenuId() {
|
||||
return this.menuId;
|
||||
}
|
||||
|
||||
public void setOrderRefundId(final Long orderRefundId) {
|
||||
this.orderRefundId = orderRefundId;
|
||||
}
|
||||
|
||||
@JsonFormat(
|
||||
pattern = "yyyy-MM-dd HH:mm:ss"
|
||||
)
|
||||
public void setApplyTime(final LocalDateTime applyTime) {
|
||||
this.applyTime = applyTime;
|
||||
}
|
||||
|
||||
public void setApplyReason(final String applyReason) {
|
||||
this.applyReason = applyReason;
|
||||
}
|
||||
|
||||
public void setOrderId(final Long orderId) {
|
||||
this.orderId = orderId;
|
||||
}
|
||||
|
||||
public void setCheckState(final Integer checkState) {
|
||||
this.checkState = checkState;
|
||||
}
|
||||
|
||||
public void setFeeAmount(final BigDecimal feeAmount) {
|
||||
this.feeAmount = feeAmount;
|
||||
}
|
||||
|
||||
public void setRealRefundAmount(final BigDecimal realRefundAmount) {
|
||||
this.realRefundAmount = realRefundAmount;
|
||||
}
|
||||
|
||||
public void setMenuId(final Long menuId) {
|
||||
this.menuId = menuId;
|
||||
}
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.bonus.core.order.common.mapper.OrderRefundDetailMapper">
|
||||
|
||||
<select id="listRefundDetailState" resultType="com.bonus.core.order.weight.vo.RefundDetailStateVO">
|
||||
SELECT
|
||||
orr.order_refund_id ,
|
||||
orr.apply_time ,
|
||||
orr.order_id ,
|
||||
orr.apply_reason ,
|
||||
orr.check_state ,
|
||||
orr.resress_picurl ,
|
||||
orr.fee_amount,
|
||||
orr.real_refund_amount,
|
||||
ord.detail_id AS menu_id
|
||||
FROM
|
||||
order_refund orr
|
||||
LEFT JOIN order_refund_detail ord ON orr.order_refund_id = ord.order_refund_id
|
||||
<where>
|
||||
<if test="orderId != null">
|
||||
AND orr.order_id = #{orderId}
|
||||
</if>
|
||||
<if test="macOrderId != null">
|
||||
AND orr.mac_order_id = #{macOrderId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue