Commit 76f512fc7a2267d761c864eaac0816cb763cca79

Authored by owen
1 parent b6d400e0

1. APP增加终端Header[terminal]

2. 订单、会员注册记录来源终端
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/servlet/ServletUtils.java
1 package cn.iocoder.yudao.framework.common.util.servlet; 1 package cn.iocoder.yudao.framework.common.util.servlet;
2 2
  3 +import cn.hutool.core.convert.Convert;
3 import cn.hutool.core.io.IoUtil; 4 import cn.hutool.core.io.IoUtil;
4 import cn.hutool.core.util.StrUtil; 5 import cn.hutool.core.util.StrUtil;
5 import cn.hutool.extra.servlet.ServletUtil; 6 import cn.hutool.extra.servlet.ServletUtil;
@@ -27,7 +28,7 @@ public class ServletUtils { @@ -27,7 +28,7 @@ public class ServletUtils {
27 * 返回 JSON 字符串 28 * 返回 JSON 字符串
28 * 29 *
29 * @param response 响应 30 * @param response 响应
30 - * @param object 对象,会序列化成 JSON 字符串 31 + * @param object 对象,会序列化成 JSON 字符串
31 */ 32 */
32 @SuppressWarnings("deprecation") // 必须使用 APPLICATION_JSON_UTF8_VALUE,否则会乱码 33 @SuppressWarnings("deprecation") // 必须使用 APPLICATION_JSON_UTF8_VALUE,否则会乱码
33 public static void writeJSON(HttpServletResponse response, Object object) { 34 public static void writeJSON(HttpServletResponse response, Object object) {
@@ -40,7 +41,7 @@ public class ServletUtils { @@ -40,7 +41,7 @@ public class ServletUtils {
40 * 41 *
41 * @param response 响应 42 * @param response 响应
42 * @param filename 文件名 43 * @param filename 文件名
43 - * @param content 附件内容 44 + * @param content 附件内容
44 */ 45 */
45 public static void writeAttachment(HttpServletResponse response, String filename, byte[] content) throws IOException { 46 public static void writeAttachment(HttpServletResponse response, String filename, byte[] content) throws IOException {
46 // 设置 header 和 contentType 47 // 设置 header 和 contentType
@@ -88,6 +89,18 @@ public class ServletUtils { @@ -88,6 +89,18 @@ public class ServletUtils {
88 return ServletUtil.getClientIP(request); 89 return ServletUtil.getClientIP(request);
89 } 90 }
90 91
  92 + public static Integer getTerminal() {
  93 + return getHeaderInt("terminal");
  94 + }
  95 +
  96 + public static String getHeader(String header) {
  97 + return getHeader(getRequest(), header);
  98 + }
  99 +
  100 + public static Integer getHeaderInt(String header) {
  101 + return Convert.toInt(getHeader(header));
  102 + }
  103 +
91 public static boolean isJsonRequest(ServletRequest request) { 104 public static boolean isJsonRequest(ServletRequest request) {
92 return StrUtil.startWithIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE); 105 return StrUtil.startWithIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE);
93 } 106 }
@@ -107,4 +120,12 @@ public class ServletUtils { @@ -107,4 +120,12 @@ public class ServletUtils {
107 public static Map<String, String> getParamMap(HttpServletRequest request) { 120 public static Map<String, String> getParamMap(HttpServletRequest request) {
108 return ServletUtil.getParamMap(request); 121 return ServletUtil.getParamMap(request);
109 } 122 }
  123 +
  124 + public static String getHeader(HttpServletRequest request, String header) {
  125 + if (request == null) {
  126 + return null;
  127 + }
  128 + return request.getHeader(header);
  129 + }
  130 +
110 } 131 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
@@ -8,10 +8,10 @@ import cn.hutool.core.util.ObjectUtil; @@ -8,10 +8,10 @@ import cn.hutool.core.util.ObjectUtil;
8 import cn.hutool.core.util.RandomUtil; 8 import cn.hutool.core.util.RandomUtil;
9 import cn.hutool.extra.spring.SpringUtil; 9 import cn.hutool.extra.spring.SpringUtil;
10 import cn.iocoder.yudao.framework.common.core.KeyValue; 10 import cn.iocoder.yudao.framework.common.core.KeyValue;
11 -import cn.iocoder.yudao.framework.common.enums.TerminalEnum;  
12 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 11 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
13 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 12 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
14 import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; 13 import cn.iocoder.yudao.framework.common.util.number.MoneyUtils;
  14 +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
15 import cn.iocoder.yudao.module.member.api.address.AddressApi; 15 import cn.iocoder.yudao.module.member.api.address.AddressApi;
16 import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO; 16 import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO;
17 import cn.iocoder.yudao.module.pay.api.order.PayOrderApi; 17 import cn.iocoder.yudao.module.pay.api.order.PayOrderApi;
@@ -187,7 +187,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -187,7 +187,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
187 order.setStatus(TradeOrderStatusEnum.UNPAID.getStatus()); 187 order.setStatus(TradeOrderStatusEnum.UNPAID.getStatus());
188 order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()); 188 order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus());
189 order.setProductCount(getSumValue(calculateRespBO.getItems(), TradePriceCalculateRespBO.OrderItem::getCount, Integer::sum)); 189 order.setProductCount(getSumValue(calculateRespBO.getItems(), TradePriceCalculateRespBO.OrderItem::getCount, Integer::sum));
190 - order.setTerminal(TerminalEnum.H5.getTerminal()); // todo 数据来源? 190 + order.setTerminal(ServletUtils.getTerminal());
191 // 支付 + 退款信息 191 // 支付 + 退款信息
192 order.setAdjustPrice(0).setPayStatus(false); 192 order.setAdjustPrice(0).setPayStatus(false);
193 order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()).setRefundPrice(0); 193 order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()).setRefundPrice(0);
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil; @@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
7 import cn.hutool.core.util.StrUtil; 7 import cn.hutool.core.util.StrUtil;
8 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 8 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
9 import cn.iocoder.yudao.framework.common.pojo.PageResult; 9 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  10 +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
10 import cn.iocoder.yudao.module.infra.api.file.FileApi; 11 import cn.iocoder.yudao.module.infra.api.file.FileApi;
11 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO; 12 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO;
12 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; 13 import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
@@ -99,6 +100,7 @@ public class MemberUserServiceImpl implements MemberUserService { @@ -99,6 +100,7 @@ public class MemberUserServiceImpl implements MemberUserService {
99 user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启 100 user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
100 user.setPassword(encodePassword(password)); // 加密密码 101 user.setPassword(encodePassword(password)); // 加密密码
101 user.setRegisterIp(registerIp); 102 user.setRegisterIp(registerIp);
  103 + user.setRegisterTerminal(ServletUtils.getTerminal());
102 memberUserMapper.insert(user); 104 memberUserMapper.insert(user);
103 105
104 // 发送 MQ 消息:用户创建 106 // 发送 MQ 消息:用户创建