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: '取消',