diff --git a/docs/databases/tables_create.sql b/docs/databases/tables_create.sql
index 0657c24..4a192e8 100644
--- a/docs/databases/tables_create.sql
+++ b/docs/databases/tables_create.sql
@@ -21,6 +21,9 @@ values (1002,'1.0.0.2','http://mall.yyundong.com/apks/mall-1002.apk','BUG修复
insert into app_version(versionCode,versionName,downloadUrl,versionInfo,fileName)
values (1003,'1.0.0.3','http://mall.yyundong.com/apks/mall-1003.apk','登录方式切换的Bug修复;登录及退出后本地缓存数据问题的修复。','mall-1003.apk')
+insert into app_version(versionCode,versionName,downloadUrl,versionInfo,fileName)
+values (1012,'1.0.1.2','http://mall.yyundong.com/apks/mall-1012.apk','增加消息推送;优惠券一键领取。','mall-1012.apk')
+
CREATE TABLE `push_cids` (
@@ -51,4 +54,4 @@ CREATE TABLE `sys_message_task` (
INSERT INTO sys_permission (pid, name, value, icon, type, uri, status, create_time, sort)
-VALUES (43, '定时消息', 'ums:UmsMember:read', 'product-list', 1, 'sysMessageTask', 1, now() , 0)
\ No newline at end of file
+VALUES (43, '定时消息', 'ums:UmsMember:read', 'product-list', 1, 'sysMessageTask', 1, now() , 1)
\ No newline at end of file
diff --git a/docs/xiugai/20230315/营销系统问题及修改20230318.docx b/docs/xiugai/20230315/营销系统问题及修改20230318.docx
index da79261..7ab25a1 100644
--- a/docs/xiugai/20230315/营销系统问题及修改20230318.docx
+++ b/docs/xiugai/20230315/营销系统问题及修改20230318.docx
@@ -1,13 +1,13 @@
管理后台,"商品管理"-"商品分类"页面。
- (已修改)列表中"导航栏"、"是否显示"、"是否首页显示"这些设置的作用是什么?如果没有用就先隐藏掉("是否显示"这个应该是控制是否在APP端显示该类别及其下级类别或该类别的商品)。
- (已修改)"设置"这一列中"转移商品"的作用?如果没有用先隐藏这个按钮。
- 新增二级分类,如果有同名的分类名称,数据会出错,需要加限定条件或修改增加保存的逻辑,不能出错。后台增加了类别,手机端是否可以实时看到新增或修改的分类。(经测试没发现增加类别出错的情况,增加同名的也可以正常显示。目前增加了限制,不允许有相同的类别名称)
+(已修改)列表中"导航栏"、"是否显示"、"是否首页显示"这些设置的作用是什么?如果没有用就先隐藏掉("是否显示"这个应该是控制是否在APP端显示该类别及其下级类别或该类别的商品)。
+(已修改)"设置"这一列中"转移商品"的作用?如果没有用先隐藏这个按钮。
+新增二级分类,如果有同名的分类名称,数据会出错,需要加限定条件或修改增加保存的逻辑,不能出错。后台增加了类别,手机端是否可以实时看到新增或修改的分类。(经测试没发现增加类别出错的情况,增加同名的也可以正常显示。目前增加了限制,不允许有相同的类别名称)
管理后台编辑商品后,在手机端查看该商品信息出错。(经测试未出现该问题,对之前出现该问题的数据进行分析,应该是最早录入的商品信息有附加的属性,现在的编辑页面简化了,造成属性值丢失出现的问题。目前新增商品不会再出现该问题)
(已修改)手机端优惠券金额显示不正确,应该是2位小数。
-
- (已修改)使用优惠券支付时,付款金额显示不正确。
-
-
+
+(已修改)使用优惠券支付时,付款金额显示不正确。
+
+
(已修改)优惠券限领数量无效。限领2张,只能领取1张。
(已修改)管理后台,新增优惠券。优惠券类型的选择和适用平台的选择都去掉,并且默认类型为"全场赠券",默认适用平台为"全平台"。
(已修改)手机端注册问题较多,注册成功提示"该用户已经存在",已有手机号再次注册也可以成功。注册成功提示密码不正确无法登录等各种情况都有。这一部分需要详细、全面的认真进行一次测试,保证流程以及提示信息正确。
@@ -15,26 +15,46 @@
(已修改)管理后台,"运营管理"-"广告列表"页面,搜索功能无效,去掉列表中"广告位置"、"点击次数"、"生成订单"这些列。添加广告不选广告位置(默认设置为Android首页轮播)
(已修改)社区管理-社区列表页面,查询功能无效。取货点页面查询功能无效,取货点页面屏蔽"导出"、"导入"按钮。取货点页面列表的表名不正确。
(已修改)APP端,已经过期的优惠券应该归到已失效里边。
- 手机端领取优惠券是否可以一键全部领取(该需求待讨论)
+ (已修改20230318)手机端领取优惠券是否可以一键全部领取(该需求待讨论)
待支付的订单取消后优惠券不回退。用户使用优惠券下单,未支付或支付失败的情况,该订单还有效,处于待支付状态,APP端可以继续完成支付操作。在待支付状态用户可以主动取消订单,或者超过支付等待时间(20分钟)订单自动失效,订单失效需要将未使用的优惠券回退。
系统增加退单流程。会员下单24小时内可退货,退货退款原路返回(退回支付宝或微信,需要调用支付宝或微信的退款接口)。24小时后,自动设置为已发货状态(待收货),不可以退货退款。在管理后台订单列表页面,"待发货"这一栏中,点击"订单发货"按钮,订单状态变为"待收货"状态,也不可以退货退款。
收货(提货)的流程和操作。在管理后台订单列表页面的"待收货"列表,增加"已收货"按钮,将订单状态改为交易完成。在APP端用户可以点击"收货"按钮,同样完成收货操作。后台记录收货时间以及是客户操作还是后台人员操作。
在订单列表,可以通过下单日期时间段、取货点、分类(订单状态)、用户信息等进行过滤查询,查询结果需要能够导出到Excel。导出字段包括:下单日期,手机号,用户名,商品名称,价格,数量,自提点,订单状态等。
增加订单归集统计页面,对于商品待发货、已发货、已完成订单统计列表。
- (1)全部提货点的商品订单统计。
- (2)各个提货点的商品订单统计。
- (3)各个提货点对应到人的订单统计。
+(1)全部提货点的商品订单统计。
+(2)各个提货点的商品订单统计。
+(3)各个提货点对应到人的订单统计。
后台管理,发货界面加一个批量发货(该需求待讨论)
完整的购买、下单、收货流程
用户在APP端浏览商品,选择下单,生成订单(订单状态为待付款)。下单前惠农会员可以先领优惠券。
会员通过微信或支付宝付款成功(订单状态为待发货)。会员取消付款或订单超过20分钟未付款,订单设置为已关闭状态,优惠券退回。待发货24小时之内如果订单状态没改变(还没发货),用户可以取消订单,停止发货,款项原路退回,优惠券失效,订单为已关闭状态。
工作人员在后台待发货列表点击"发货",或者待发货状态超过24小时,订单状态改为"待收货",不可以再退货。后台发送消息通知:7日内到取货点取货。
订单在待收货状态,用户可以到取货点取货,工作人员根据手机号查询对应订单及货物交付给用户,用户可以在APP端点击"取货"完成取货操作或者工作人员在待收货列表点击"已取货"按钮状对应订单设置为已经取货状态,交易完成。在待收货列表,可以针对未取货的订单用户发送消息通知或电话联系。
- 消息通知,增加消息通知设置页面,设定日期时间、通知标题、通知内容。后台程序在设定的日期时间将通知内容发送给全部用户。现在的消息通知功能为系统发送信息到用户手机APP信息界面,用户在信息界面查看消息通知内容。
+ (已修改20230318)消息通知,增加消息通知设置页面,设定日期时间、通知标题、通知内容。后台程序在设定的日期时间将通知内容发送给全部用户。现在的消息通知功能为系统发送信息到用户手机APP信息界面,用户在信息界面查看消息通知内容。
2023-03-18
-有两个确定的需求需要更新一下,其他的还要跟业务再讨论
+(已修改20230318)有两个确定的需求需要更新一下,其他的还要跟业务再讨论
1.优惠券的批量领取
2.购买商品时如果有符合使用的优惠券,自动选取优惠券
+
+进行中工作2023-03-18
+ 增加订单归集统计页面,对于商品待发货、已发货、已完成订单统计列表。
+(1)全部提货点的商品订单统计。
+(2)各个提货点的商品订单统计。
+(3)各个提货点对应到人的订单统计。
+
+业务需求未确定工作2023-03-18
+ 待支付的订单取消后优惠券不回退。用户使用优惠券下单,未支付或支付失败的情况,该订单还有效,处于待支付状态,APP端可以继续完成支付操作。在待支付状态用户可以主动取消订单,或者超过支付等待时间(20分钟)订单自动失效,订单失效需要将未使用的优惠券回退。
+ 系统增加退单流程。会员下单24小时内可退货,退货退款原路返回(退回支付宝或微信,需要调用支付宝或微信的退款接口)。24小时后,自动设置为已发货状态(待收货),不可以退货退款。在管理后台订单列表页面,"待发货"这一栏中,点击"订单发货"按钮,订单状态变为"待收货"状态,也不可以退货退款。
+ 收货(提货)的流程和操作。在管理后台订单列表页面的"待收货"列表,增加"已收货"按钮,将订单状态改为交易完成。在APP端用户可以点击"收货"按钮,同样完成收货操作。后台记录收货时间以及是客户操作还是后台人员操作。
+ 在订单列表,可以通过下单日期时间段、取货点、分类(订单状态)、用户信息等进行过滤查询,查询结果需要能够导出到Excel。导出字段包括:下单日期,手机号,用户名,商品名称,价格,数量,自提点,订单状态等。
+ 后台管理,发货界面加一个批量发货(该需求待讨论)
+ 完整的购买、下单、收货流程
+ 用户在APP端浏览商品,选择下单,生成订单(订单状态为待付款)。下单前惠农会员可以先领优惠券。
+ 会员通过微信或支付宝付款成功(订单状态为待发货)。会员取消付款或订单超过20分钟未付款,订单设置为已关闭状态,优惠券退回。待发货24小时之内如果订单状态没改变(还没发货),用户可以取消订单,停止发货,款项原路退回,优惠券失效,订单为已关闭状态。
+ 工作人员在后台待发货列表点击"发货",或者待发货状态超过24小时,订单状态改为"待收货",不可以再退货。后台发送消息通知:7日内到取货点取货。
+ 订单在待收货状态,用户可以到取货点取货,工作人员根据手机号查询对应订单及货物交付给用户,用户可以在APP端点击"取货"完成取货操作或者工作人员在待收货列表点击"已取货"按钮状对应订单设置为已经取货状态,交易完成。在待收货列表,可以针对未取货的订单用户发送消息通知或电话联系。
+
+
diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/MallAdminApplication.java b/mallplus-admin/src/main/java/com/zscat/mallplus/MallAdminApplication.java
index ba09654..ecf9746 100644
--- a/mallplus-admin/src/main/java/com/zscat/mallplus/MallAdminApplication.java
+++ b/mallplus-admin/src/main/java/com/zscat/mallplus/MallAdminApplication.java
@@ -4,6 +4,7 @@ import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
@@ -13,6 +14,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@MapperScan({"com.zscat.mallplus.mapper", "com.zscat.mallplus.ums.mapper", "com.zscat.mallplus.sms.mapper", "com.zscat.mallplus.cms.mapper", "com.zscat.mallplus.sys.mapper", "com.zscat.mallplus.oms.mapper", "com.zscat.mallplus.pms.mapper"})
@EnableTransactionManagement
+@EnableScheduling
public class MallAdminApplication {
public static void main(String[] args) {
SpringApplication.run(MallAdminApplication.class, args);
diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/task/SchedulingTaskComponent.java b/mallplus-admin/src/main/java/com/zscat/mallplus/task/SchedulingTaskComponent.java
new file mode 100644
index 0000000..6398223
--- /dev/null
+++ b/mallplus-admin/src/main/java/com/zscat/mallplus/task/SchedulingTaskComponent.java
@@ -0,0 +1,60 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.zscat.mallplus.task;
+
+import com.zscat.mallplus.ums.service.SysMessageTaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * Project: mallplus
+ * File: SchedulingService.java
+ * Class: com.zscat.mallplus.task.SchedulingService
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2023/3/18 22:10
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Component
+public class SchedulingTaskComponent {
+
+ @Autowired
+ private SysMessageTaskService sysMessageTaskService;
+
+ @Scheduled(cron = "0 */5 * * * ?")
+ public void remindVehicle() {
+ sysMessageTaskService.checkTask();
+ }
+}
diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/SysMessageTaskService.java b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/SysMessageTaskService.java
index 4dafcc9..1a3cb21 100644
--- a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/SysMessageTaskService.java
+++ b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/SysMessageTaskService.java
@@ -1,10 +1,39 @@
package com.zscat.mallplus.ums.service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zscat.mallplus.ums.entity.SysMessage;
import com.zscat.mallplus.ums.entity.SysMessageTask;
import com.zscat.mallplus.ums.mapper.SysMessageTaskMapper;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.Date;
+import java.util.List;
+
@Service
public class SysMessageTaskService extends ServiceImpl {
+
+ @Autowired
+ private ISysMessageService messageService;
+
+ public void checkTask() {
+ QueryWrapper qw = new QueryWrapper<>();
+ qw.eq("status", 0);
+ qw.lt("sendtime", new Date());
+ List list = baseMapper.selectList(qw);
+ for (SysMessageTask task : list) {
+ SysMessage sm = new SysMessage();
+ sm.setCode("系统消息");
+ sm.setUserId(1);
+ sm.setId(null);
+ sm.setContent(task.getContent());
+ sm.setParams(task.getParams());
+ sm.setCtime(System.currentTimeMillis());
+ messageService.sendToAll(sm);
+ task.setStatus(1);
+ baseMapper.updateById(task);
+ }
+
+ }
}
diff --git a/mallplus-mbg/pom.xml b/mallplus-mbg/pom.xml
index af4eecd..4d5d590 100644
--- a/mallplus-mbg/pom.xml
+++ b/mallplus-mbg/pom.xml
@@ -55,11 +55,22 @@
hutool-all
${hutool.version}
-
+
+
+ com.alipay.sdk
+ alipay-sdk-java
+ 4.8.10.ALL
+
+
+ fastjson
+ com.alibaba
+
+
diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/alipay/AliPayController.java b/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/alipay/AliPayController.java
index 6895b8f..0bcfb99 100644
--- a/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/alipay/AliPayController.java
+++ b/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/alipay/AliPayController.java
@@ -9,8 +9,6 @@ import com.alipay.api.CertAlipayRequest;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.*;
import com.alipay.api.internal.util.AlipaySignature;
-import com.alipay.api.request.AlipayTradeAppPayRequest;
-import com.alipay.api.response.AlipayTradeAppPayResponse;
import com.alipay.api.response.AlipayTradeCreateResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zscat.mallplus.alipay.AliPayApi;
diff --git a/mallplusui-web-admin/src/views/sms/coupon/components/CouponDetail.vue b/mallplusui-web-admin/src/views/sms/coupon/components/CouponDetail.vue
index 389dd36..1afeb77 100644
--- a/mallplusui-web-admin/src/views/sms/coupon/components/CouponDetail.vue
+++ b/mallplusui-web-admin/src/views/sms/coupon/components/CouponDetail.vue
@@ -265,6 +265,15 @@
onSubmit(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
+ if(parseFloat(this.coupon.amount)>=parseFloat(this.coupon.minPoint)){
+ this.$message({
+ message: '优惠券面值金额须小于使用门槛金额',
+ type: 'error',
+ duration: 1000
+ });
+ return false;
+ }
+
this.$confirm('是否提交数据', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',