From bad1b55c56ca178c75cc673c78e5f0c296d5fa52 Mon Sep 17 00:00:00 2001 From: tanzhisong Date: Thu, 6 Mar 2025 16:15:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:1.=E6=96=B0=E5=A2=9E=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E7=BB=9F=E8=AE=A1=202.=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E6=9F=A5=E8=AF=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=203.=E6=96=B0=E5=A2=9E=E8=AE=A2=E5=8D=95=E8=A1=A8?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E5=88=86=E7=B1=BB=E5=AD=97=E6=AE=B5=E7=9A=84?= =?UTF-8?q?=204.=E8=B0=83=E6=95=B4=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=99=BB?= =?UTF-8?q?=E5=BD=95=20token=20=E6=97=B6=E6=95=88=E6=80=A7=E4=B8=BA?= =?UTF-8?q?=E4=B8=80=E5=A4=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/system/vo/MLoginUser.java | 5 ++-- .../modules/sysMiniapp/order/entity/AppOrder.java | 4 ++++ .../sysMiniapp/order/entity/OrderStatistics.java | 27 ++++++++++++++++++++++ .../sysMiniapp/order/entity/OrderTypeCount.java | 24 +++++++++++++++++++ .../sysMiniapp/order/mapper/AppOrderMapper.java | 6 ++++- .../sysMiniapp/order/mapper/xml/AppOrderMapper.xml | 21 +++++++++++++++-- .../product/mapper/AppProductMapper.java | 1 - .../productCategory/mapper/AppCategoryMapper.java | 3 ++- .../mapper/xml/AppCategoryMapper.xml | 13 +++++++++++ .../miniapp/order/controller/OrderController.java | 7 ++---- .../miniapp/order/service/OrderService.java | 7 ++---- .../order/service/impl/OrderServiceImpl.java | 18 ++++++++++----- .../miniapp/user/contoller/MUserController.java | 21 +++++++++++++++-- .../miniapp/user/service/impl/UserServiceImpl.java | 2 +- 14 files changed, 133 insertions(+), 26 deletions(-) create mode 100644 jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/OrderStatistics.java create mode 100644 jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/OrderTypeCount.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/MLoginUser.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/MLoginUser.java index 4f72a9b..ff5ec36 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/MLoginUser.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/MLoginUser.java @@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.common.desensitization.annotation.SensitiveField; +import org.jeecg.common.desensitization.enums.SensitiveEnum; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; @@ -24,7 +25,7 @@ public class MLoginUser { /**头像*/ private java.lang.String avatar; /**手机号*/ - @SensitiveField + @SensitiveField(type = SensitiveEnum.MOBILE_PHONE) private java.lang.String phone; /**小程序 openid*/ private java.lang.String openid; @@ -36,7 +37,7 @@ public class MLoginUser { /**状态*/ private java.lang.Integer status; /**邮箱*/ - @SensitiveField + @SensitiveField(type = SensitiveEnum.EMAIL) private java.lang.String email; /**最后登录时间*/ private java.util.Date lastLoginAt; diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrder.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrder.java index cf4e3ef..908d56c 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrder.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrder.java @@ -53,6 +53,10 @@ public class AppOrder implements Serializable { @Excel(name = "产品合同模板", width = 15) @ApiModelProperty(value = "产品合同模板") private java.lang.String productContractTemp; + /**产品分类*/ + @Excel(name = "产品分类", width = 15) + @ApiModelProperty(value = "产品分类") + private java.lang.String productType; /**经销商*/ @Excel(name = "经销商", width = 15) @ApiModelProperty(value = "经销商") diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/OrderStatistics.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/OrderStatistics.java new file mode 100644 index 0000000..937465e --- /dev/null +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/OrderStatistics.java @@ -0,0 +1,27 @@ +package org.jeecg.modules.sysMiniapp.order.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author Tanzs + * @date 2025/3/6 下午2:15 + * @description 订单统计实体类 + */ +@ApiModel(value="OrderStatistics对象", description="订单统计信息") +@Data +public class OrderStatistics { + + @ApiModelProperty(value = "当月订单总数量") + private String orderCount; + + @ApiModelProperty(value = "当月订单总销售额") + private String totalMoney; + + @ApiModelProperty(value = "当月订单分类统计信息") + private List orderTypeCount; + +} diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/OrderTypeCount.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/OrderTypeCount.java new file mode 100644 index 0000000..105c2ca --- /dev/null +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/OrderTypeCount.java @@ -0,0 +1,24 @@ +package org.jeecg.modules.sysMiniapp.order.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Tanzs + * @date 2025/3/6 下午3:38 + * @description + */ +@Data +@ApiModel(value="OrderTypeCount对象", description="订单分类统计信息") +public class OrderTypeCount { + + @ApiModelProperty(value = "产品类别名称") + private String productType; + + @ApiModelProperty(value = "产品类别对应订单数量") + private String orderCount; + + @ApiModelProperty(value = "产品类别对应订单销售额") + private String totalMoney; +} diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderMapper.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderMapper.java index 3411924..1f6c328 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderMapper.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderMapper.java @@ -2,8 +2,11 @@ package org.jeecg.modules.sysMiniapp.order.mapper; import org.jeecg.modules.sysMiniapp.order.entity.AppOrder; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.sysMiniapp.order.entity.OrderStatistics; +import org.jeecg.modules.sysMiniapp.order.entity.OrderTypeCount; import org.springframework.data.repository.query.Param; +import java.util.List; import java.util.Map; /** @@ -14,6 +17,7 @@ import java.util.Map; */ public interface AppOrderMapper extends BaseMapper { - Map getStatistics(@Param("userName")String userName); + OrderStatistics getStatistics(@Param("userName")String userName); + List getOrderTypeCount(@Param("userName")String userName); } diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/xml/AppOrderMapper.xml b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/xml/AppOrderMapper.xml index e6c121e..c19b07e 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/xml/AppOrderMapper.xml +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/xml/AppOrderMapper.xml @@ -2,10 +2,10 @@ - SELECT count( 1 ) AS orderCount, - IFNULL(SUM( v.service_money ),0) AS totalMoney + COALESCE(SUM( v.service_money ),0) AS totalMoney FROM app_order o Left Join app_order_voucher v ON o.id = v.order_fk_id @@ -15,4 +15,21 @@ AND o.create_by = #{userName} + + diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/product/mapper/AppProductMapper.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/product/mapper/AppProductMapper.java index 81e487b..14e4925 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/product/mapper/AppProductMapper.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/product/mapper/AppProductMapper.java @@ -15,5 +15,4 @@ import java.util.List; public interface AppProductMapper extends BaseMapper { List getAppProductsByCateGory(@Param("name")String name, @Param("categoryId")Integer categoryId); - } diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/productCategory/mapper/AppCategoryMapper.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/productCategory/mapper/AppCategoryMapper.java index f2543d7..e0621cd 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/productCategory/mapper/AppCategoryMapper.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/productCategory/mapper/AppCategoryMapper.java @@ -1,5 +1,6 @@ package org.jeecg.modules.sysMiniapp.productCategory.mapper; +import io.lettuce.core.dynamic.annotation.Param; import org.jeecg.modules.sysMiniapp.productCategory.entity.AppCategory; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -11,5 +12,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface AppCategoryMapper extends BaseMapper { - + AppCategory getCategoryByProductName(@Param("productName") String productName); } diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/productCategory/mapper/xml/AppCategoryMapper.xml b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/productCategory/mapper/xml/AppCategoryMapper.xml index 9349bb1..67fb02d 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/productCategory/mapper/xml/AppCategoryMapper.xml +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/productCategory/mapper/xml/AppCategoryMapper.xml @@ -2,4 +2,17 @@ + + diff --git a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/controller/OrderController.java b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/controller/OrderController.java index bc52f29..2939c04 100644 --- a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/controller/OrderController.java +++ b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/controller/OrderController.java @@ -21,10 +21,7 @@ import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.miniapp.order.service.OrderService; import org.jeecg.modules.miniapp.order.service.impl.OrderServiceImpl; import org.jeecg.modules.miniapp.utils.UserInfoUtil; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrder; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrderCar; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrderFinance; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrderVoucher; +import org.jeecg.modules.sysMiniapp.order.entity.*; import org.jeecg.modules.sysMiniapp.order.service.IAppOrderCarService; import org.jeecg.modules.sysMiniapp.order.service.IAppOrderFinanceService; import org.jeecg.modules.sysMiniapp.order.service.IAppOrderService; @@ -128,7 +125,7 @@ public class OrderController { */ @ApiOperation(value="查询当前用户订单统计", notes="查询当前用户订单统计") @GetMapping(value = "/statistics") - public Result> getStatistics() { + public Result getStatistics() { return Result.OK(orderService.getStatistics()); } diff --git a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/service/OrderService.java b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/service/OrderService.java index eb79ed0..bbffae6 100644 --- a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/service/OrderService.java +++ b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/service/OrderService.java @@ -1,9 +1,6 @@ package org.jeecg.modules.miniapp.order.service; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrder; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrderCar; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrderFinance; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrderVoucher; +import org.jeecg.modules.sysMiniapp.order.entity.*; import java.util.List; import java.util.Map; @@ -27,7 +24,7 @@ public interface OrderService { * 统计当前用户订单信息 * @return */ - Map getStatistics(); + OrderStatistics getStatistics(); /** * 生成订单合同 diff --git a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/service/impl/OrderServiceImpl.java b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/service/impl/OrderServiceImpl.java index e6ce9f2..4afe3f6 100644 --- a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/service/impl/OrderServiceImpl.java +++ b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/service/impl/OrderServiceImpl.java @@ -13,14 +13,12 @@ import org.jeecg.modules.miniapp.order.entity.OrderInfo; import org.jeecg.modules.miniapp.order.service.OrderService; import org.jeecg.modules.miniapp.utils.PdfFormUtils; import org.jeecg.modules.miniapp.utils.UserInfoUtil; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrder; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrderCar; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrderFinance; -import org.jeecg.modules.sysMiniapp.order.entity.AppOrderVoucher; +import org.jeecg.modules.sysMiniapp.order.entity.*; import org.jeecg.modules.sysMiniapp.order.mapper.AppOrderCarMapper; import org.jeecg.modules.sysMiniapp.order.mapper.AppOrderFinanceMapper; import org.jeecg.modules.sysMiniapp.order.mapper.AppOrderMapper; import org.jeecg.modules.sysMiniapp.order.mapper.AppOrderVoucherMapper; +import org.jeecg.modules.sysMiniapp.productCategory.mapper.AppCategoryMapper; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -59,6 +57,8 @@ public class OrderServiceImpl implements OrderService { @Autowired private AppOrderFinanceMapper appOrderFinanceMapper; @Autowired + private AppCategoryMapper appCategoryMapper; + @Autowired private UserInfoUtil userInfoUtil; @Autowired private PdfFormUtils pdfFormUtils; @@ -90,6 +90,10 @@ public class OrderServiceImpl implements OrderService { // 当前登录用户 appOrder.setCreateBy(user.getNickName()); appOrder.setCreateTime(new Date()); + // 根据产品名称查询产品对应的分类 + String productCategory = appCategoryMapper.getCategoryByProductName(appOrder.getProductName()).getCategoryName(); + appOrder.setProductType(productCategory); + // 合同模板不为空则生成 pdf 合同,为空则不需要生成 if (StrUtil.isNotBlank(appOrder.getProductContractTemp())){ BeanUtils.copyProperties(appOrder, orderInfo); BeanUtils.copyProperties(appOrderCarList.get(0),orderInfo); @@ -126,10 +130,12 @@ public class OrderServiceImpl implements OrderService { } @Override - public Map getStatistics() { + public OrderStatistics getStatistics() { // 获取当前用户信息 MLoginUser user =userInfoUtil.getUserInfo(); - return appOrderMapper.getStatistics(user.getNickName()); + OrderStatistics orderStatistics = appOrderMapper.getStatistics(user.getNickName()); // 统计当月总的订单量和销售额 + orderStatistics.setOrderTypeCount(appOrderMapper.getOrderTypeCount(user.getNickName())); // 统计产品分类订单量和销售额 + return orderStatistics; } @Override diff --git a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/user/contoller/MUserController.java b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/user/contoller/MUserController.java index 37f4275..a99946c 100644 --- a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/user/contoller/MUserController.java +++ b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/user/contoller/MUserController.java @@ -10,6 +10,7 @@ import org.jeecg.common.system.vo.MLoginUser; import org.jeecg.config.shiro.IgnoreAuth; import org.jeecg.modules.miniapp.user.domain.WxLoginInfo; import org.jeecg.modules.miniapp.user.service.UserService; +import org.jeecg.modules.miniapp.utils.UserInfoUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -29,8 +30,11 @@ public class MUserController { @Autowired UserService userService; + @Autowired + UserInfoUtil userInfoUtil; + @IgnoreAuth - @ApiOperation(value="微信小程序登录", notes="微信小程序登录测试") +// @ApiOperation(value="微信小程序登录", notes="微信小程序登录测试") @PostMapping(value = "/wxlogin") public Result wxLogin(@RequestBody WxLoginInfo wxLoginInfo) { return userService.wxLogin(wxLoginInfo); @@ -38,7 +42,7 @@ public class MUserController { @IgnoreAuth - @ApiOperation(value="获取授权手机号", notes="获取授权手机号") +// @ApiOperation(value="获取授权手机号", notes="获取授权手机号") @PostMapping(value = "/bindPhone") public Result getWxphoneNumer(String code) { return userService.getWxphoneNumer(code); @@ -57,6 +61,19 @@ public class MUserController { return userService.logout(request); } + @ApiOperation(value="获取当前登录用户信息", notes="获取当前登录用户信息") + @GetMapping(value = "/getUserInfo") + public Result getUserInfo() { + MLoginUser mLoginUser = userInfoUtil.getUserInfo(); + //用户信息加密 + try { + SensitiveInfoUtil.handlerObject(mLoginUser, true); + } catch (IllegalAccessException e) { + log.error(e.getMessage(), e); + } + return Result.OK(mLoginUser); + } + /** * 根据用户账号查询用户信息 * @param username diff --git a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/user/service/impl/UserServiceImpl.java b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/user/service/impl/UserServiceImpl.java index fc274b5..2d408c5 100644 --- a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/user/service/impl/UserServiceImpl.java +++ b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/user/service/impl/UserServiceImpl.java @@ -122,7 +122,7 @@ public class UserServiceImpl implements UserService { String token = JwtUtil.signMiniApp(username, syspassword); // 设置超时时间 redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); - redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME*2 / 1000); + redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, 86400); // 小程序的暂时保存一天 redisUtil.del(CommonConstant.LOGIN_FAIL + username); // 5. 更新用户信息