suochencheng 6 лет назад
Родитель
Сommit
030595a262

+ 2 - 0
src/main/java/com/izouma/awesomeadmin/dao/PayCodeOrderMapper.java

@@ -29,7 +29,9 @@ public interface PayCodeOrderMapper{
     PayCodeOrder queryPayCodeOrder(PayCodeOrder record);
     PayCodeOrder queryPayCodeOrder(PayCodeOrder record);
 
 
     List<PayCodeOrder> query(PayCodeOrder record);
     List<PayCodeOrder> query(PayCodeOrder record);
+
     /*generatedEnd*/
     /*generatedEnd*/
+    List<PayCodeOrder> queryAutoCancelPayCodeOrderList(PayCodeOrder record);
 
 
 }
 }
 
 

+ 14 - 0
src/main/java/com/izouma/awesomeadmin/dao/PayCodeOrderMapper.xml

@@ -482,6 +482,20 @@
         </if>
         </if>
         id DESC
         id DESC
     </select>
     </select>
+    <select id="queryAutoCancelPayCodeOrderList" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.PayCodeOrder">
+        SELECT
+        *
+        FROM pay_code_order
+        <where>
+            AND del_flag = 'N'
+            AND status_flag = 0
+            AND DATE_SUB(
+            CURRENT_TIMESTAMP (),
+            INTERVAL 30 MINUTE
+            ) <![CDATA[ >= ]]>  create_time
+        </where>
+    </select>
 
 
     <select id="queryPayCodeOrder" parameterType="java.util.Map"
     <select id="queryPayCodeOrder" parameterType="java.util.Map"
             resultMap="OnePayCodeOrderResult">
             resultMap="OnePayCodeOrderResult">

+ 2 - 0
src/main/java/com/izouma/awesomeadmin/service/PayCodeOrderService.java

@@ -31,5 +31,7 @@ public interface PayCodeOrderService{
     Result pay(PayCodeOrder record);
     Result pay(PayCodeOrder record);
 
 
     Result cancel(PayCodeOrder record);
     Result cancel(PayCodeOrder record);
+
+    Result autoCancel(PayCodeOrder record);
 }
 }
 
 

+ 19 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/PayCodeOrderServiceImpl.java

@@ -356,5 +356,24 @@ public class PayCodeOrderServiceImpl implements PayCodeOrderService {
         }
         }
         return new Result(false, "付款码取消失败");
         return new Result(false, "付款码取消失败");
     }
     }
+
+    @Override
+    public Result autoCancel(PayCodeOrder record) {
+        logger.info("autoCancel 付款码取消");
+        try {
+
+            List<PayCodeOrder> payCodeOrderList = payCodeOrderMapper.queryAutoCancelPayCodeOrderList(record);
+
+            for (PayCodeOrder payCodeOrder : payCodeOrderList) {
+                cancel(payCodeOrder);
+            }
+
+            return new Result(true, "付款码取消成功");
+
+        } catch (Exception e) {
+            logger.error("autoCancel 付款码取消", e);
+        }
+        return new Result(false, "autoCancel失败");
+    }
 }
 }
 
 

+ 5 - 0
src/main/java/com/izouma/awesomeadmin/web/PayCodeOrderController.java

@@ -147,6 +147,11 @@ public class PayCodeOrderController {
     public Result cancel(PayCodeOrder record) {
     public Result cancel(PayCodeOrder record) {
         return payCodeOrderService.cancel(record);
         return payCodeOrderService.cancel(record);
     }
     }
+    @RequestMapping(value = "/autoCancel", method = RequestMethod.POST)
+    @ResponseBody
+    public Result autoCancel() {
+        return payCodeOrderService.autoCancel(null);
+    }
 
 
 }
 }
 
 

+ 11 - 9
src/main/resources/spring/appWebService.xml

@@ -28,15 +28,17 @@
     <task:annotation-driven/> <!-- 定时器开关-->
     <task:annotation-driven/> <!-- 定时器开关-->
 
 
     <!--自动开始房间定时任务-->
     <!--自动开始房间定时任务-->
-<!--    <bean id="houseInfoTask" class="com.izouma.awesomeadmin.web.HouseInfoController"></bean>-->
-
-<!--    <task:scheduled-tasks>-->
-<!--        <task:scheduled ref="houseInfoTask" method="autoBegin" cron="0 0/1 * * * ? "/>-->
-<!--        <task:scheduled ref="houseInfoTask" method="autoNoStartPlay" cron="0 0/2 * * * ? "/>-->
-<!--        <task:scheduled ref="houseInfoTask" method="autoEnd" cron="0 0/5 * * * ? "/>-->
-<!--        <task:scheduled ref="houseInfoTask" method="updateToAnalysis" cron="0 0/2 * * * ? "/>-->
-<!--        <task:scheduled ref="houseInfoTask" method="autoSettlement" cron="0 0/3 * * * ? "/>-->
-<!--    </task:scheduled-tasks>-->
+    <bean id="houseInfoTask" class="com.izouma.awesomeadmin.web.HouseInfoController"></bean>
+    <bean id="payCodeOrderTask" class="com.izouma.awesomeadmin.web.PayCodeOrderController"></bean>
+
+    <task:scheduled-tasks>
+        <task:scheduled ref="houseInfoTask" method="autoBegin" cron="0 0/1 * * * ? "/>
+        <task:scheduled ref="houseInfoTask" method="autoNoStartPlay" cron="0 0/2 * * * ? "/>
+        <task:scheduled ref="houseInfoTask" method="autoEnd" cron="0 0/5 * * * ? "/>
+        <task:scheduled ref="houseInfoTask" method="updateToAnalysis" cron="0 0/2 * * * ? "/>
+        <task:scheduled ref="houseInfoTask" method="autoSettlement" cron="0 0/3 * * * ? "/>
+        <task:scheduled ref="payCodeOrderTask" method="autoCancel" cron="0 0/3 * * * ? "/>
+    </task:scheduled-tasks>
 
 
 
 
 </beans>
 </beans>

+ 90 - 0
src/main/vue/src/pages/ChangePassword.vue

@@ -0,0 +1,90 @@
+<template>
+    <div>
+        <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small"
+                 style="max-width: 500px;">
+            <el-form-item prop="username" label="用户名">
+                <el-input v-model="formData.username" disabled></el-input>
+            </el-form-item>
+            <el-form-item prop="phone" label="手机">
+                <el-input v-model="formData.phone" disabled></el-input>
+            </el-form-item>
+            <el-form-item prop="password" label="密码">
+                <el-input v-model="formData.password"></el-input>
+            </el-form-item>
+
+            <el-form-item>
+                <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
+                <el-button @click="$router.go(-1)">取消</el-button>
+            </el-form-item>
+        </el-form>
+    </div>
+</template>
+<script>
+import formValidator from '../formValidator';
+
+export default {
+    created() {
+        if (this.$route.query.id) {
+            this.$http
+                .get({
+                    url: '/userInfo/getOne',
+                    data: {
+                        id: this.$route.query.id,
+                    },
+                })
+                .then(res => {
+                    if (res.success) {
+                        this.formData = res.data;
+                    }
+                });
+        }
+    },
+    data() {
+        return {
+            saving: false,
+            formData: {
+            },
+            rules: {
+                password: [
+                    { required: true, message: '请输入密码', trigger: 'blur' },
+                ],
+                // roleId: [
+                //     {required: true, message: '请选择角色', trigger: 'blur'},
+                // ]
+            },
+        };
+    },
+    methods: {
+        onSave() {
+            this.$refs.form.validate(valid => {
+                if (valid) {
+                    this.submit();
+                } else {
+                    return false;
+                }
+            });
+        },
+        submit() {
+            var data = {
+                id: this.formData.id,
+                password: this.formData.password,
+            };
+            this.$http
+                .post({
+                    url: '/userInfo/updatePassword',
+                    data: data,
+                })
+                .then(res => {
+                    if (res.success) {
+                        this.$message.success('成功');
+                        this.$router.go(-1);
+                    } else {
+                        this.$message.warning('失败');
+                    }
+                });
+        },
+    },
+};
+</script>
+<style lang="less" scoped>
+</style>

+ 114 - 94
src/main/vue/src/pages/Users.vue

@@ -69,11 +69,12 @@
             </el-table-column>
             </el-table-column>
             <el-table-column prop="channel" label="渠道" min-width="50">
             <el-table-column prop="channel" label="渠道" min-width="50">
             </el-table-column>
             </el-table-column>
-            <el-table-column label="操作" align="center" fixed="right" width="220">
+            <el-table-column label="操作" align="center" fixed="right" width="290">
                 <template slot-scope="scope">
                 <template slot-scope="scope">
                     <el-button @click="$router.push({path:'/userTeam',query:{column:scope.row.id+',recommender'}})" type="primary" size="small" plain>团队
                     <el-button @click="$router.push({path:'/userTeam',query:{column:scope.row.id+',recommender'}})" type="primary" size="small" plain>团队
                     </el-button>
                     </el-button>
                     <el-button @click="weiren(scope.row)" type="primary" size="mini" plain>委任</el-button>
                     <el-button @click="weiren(scope.row)" type="primary" size="mini" plain>委任</el-button>
+                    <el-button @click="changePasswordRow(scope.row)" type="primary" size="mini" plain>密码</el-button>
                     <el-button @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
                     <el-button @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
                 </template>
                 </template>
             </el-table-column>
             </el-table-column>
@@ -117,40 +118,45 @@
     </div>
     </div>
 </template>
 </template>
 <script>
 <script>
-import { mapState } from 'vuex'
+import { mapState } from 'vuex';
 
 
 export default {
 export default {
     created() {
     created() {
-
-        this.$http.get({
-            url: '/userLevel/all'
-        }).then(res => {
-            if (res.success) {
-
-                if (res.data.length > 0) {
-                    res.data.forEach(item => {
-                        this.userLevelOptions.push({ label: item.name, value: item.id });
-                    })
+        this.$http
+            .get({
+                url: '/userLevel/all',
+            })
+            .then(res => {
+                if (res.success) {
+                    if (res.data.length > 0) {
+                        res.data.forEach(item => {
+                            this.userLevelOptions.push({
+                                label: item.name,
+                                value: item.id,
+                            });
+                        });
+                    }
                 }
                 }
-            }
-        });
-
-        this.$http.get({
-            url: '/channelInfo/all'
-        }).then(res => {
-            if (res.success) {
+            });
 
 
-                if (res.data.length > 0) {
-                    res.data.forEach(item => {
-                        this.channelOptions.push({ label: item.name, value: item.id });
-                    })
+        this.$http
+            .get({
+                url: '/channelInfo/all',
+            })
+            .then(res => {
+                if (res.success) {
+                    if (res.data.length > 0) {
+                        res.data.forEach(item => {
+                            this.channelOptions.push({
+                                label: item.name,
+                                value: item.id,
+                            });
+                        });
+                    }
                 }
                 }
-            }
-        });
+            });
 
 
         this.getData();
         this.getData();
-
-
     },
     },
     data() {
     data() {
         return {
         return {
@@ -164,39 +170,45 @@ export default {
             filter3: '',
             filter3: '',
             filter4: '',
             filter4: '',
             filter5: '',
             filter5: '',
-            tableColumns: [{
-                label: '用户名',
-                value: 'username',
-                show: true
-            }, {
-                label: '昵称',
-                value: 'nickname',
-                show: true
-            }, {
-                label: '头像',
-                value: 'icon',
-                show: true
-            }, {
-                label: '性别',
-                value: 'sex',
-                show: true
-            }, {
-                label: 'phone',
-                value: 'phone',
-                show: true
-            }],
+            tableColumns: [
+                {
+                    label: '用户名',
+                    value: 'username',
+                    show: true,
+                },
+                {
+                    label: '昵称',
+                    value: 'nickname',
+                    show: true,
+                },
+                {
+                    label: '头像',
+                    value: 'icon',
+                    show: true,
+                },
+                {
+                    label: '性别',
+                    value: 'sex',
+                    show: true,
+                },
+                {
+                    label: 'phone',
+                    value: 'phone',
+                    show: true,
+                },
+            ],
             multipleMode: false,
             multipleMode: false,
             userLevelOptions: [],
             userLevelOptions: [],
             channelOptions: [],
             channelOptions: [],
             weirenRow: {},
             weirenRow: {},
             weirenShowDialog: false,
             weirenShowDialog: false,
-        }
+        };
     },
     },
     computed: {
     computed: {
         ...mapState(['tableHeight']),
         ...mapState(['tableHeight']),
         selection() {
         selection() {
             return this.$refs.table.selection.map(i => i.id);
             return this.$refs.table.selection.map(i => i.id);
-        }
+        },
     },
     },
     methods: {
     methods: {
         pageSizeChange(size) {
         pageSizeChange(size) {
@@ -208,23 +220,25 @@ export default {
             this.getData();
             this.getData();
         },
         },
         getData() {
         getData() {
-            this.$http.get({
-                url: '/userInfo/page',
-                data: {
-                    currentPage: this.currentPage,
-                    pageNumber: this.pageSize,
-                    adminFlag: this.filter2,
-                    searchKey: this.filter1,
-                    createFlag: this.filter3,
-                    levelId: this.filter4,
-                    channel: this.filter5,
-                }
-            }).then(res => {
-                if (res.success) {
-                    this.totalNumber = res.data.page.totalNumber;
-                    this.tableData = res.data.pp;
-                }
-            })
+            this.$http
+                .get({
+                    url: '/userInfo/page',
+                    data: {
+                        currentPage: this.currentPage,
+                        pageNumber: this.pageSize,
+                        adminFlag: this.filter2,
+                        searchKey: this.filter1,
+                        createFlag: this.filter3,
+                        levelId: this.filter4,
+                        channel: this.filter5,
+                    },
+                })
+                .then(res => {
+                    if (res.success) {
+                        this.totalNumber = res.data.page.totalNumber;
+                        this.tableData = res.data.pp;
+                    }
+                });
         },
         },
         isColumnShow(column) {
         isColumnShow(column) {
             var row = this.tableColumns.find(i => i.value === column);
             var row = this.tableColumns.find(i => i.value === column);
@@ -240,9 +254,17 @@ export default {
             this.$router.push({
             this.$router.push({
                 path: '/user',
                 path: '/user',
                 query: {
                 query: {
-                    id: row.id
-                }
-            })
+                    id: row.id,
+                },
+            });
+        },
+        changePasswordRow(row) {
+            this.$router.push({
+                path: '/changePassword',
+                query: {
+                    id: row.id,
+                },
+            });
         },
         },
         weiren(row) {
         weiren(row) {
             this.weirenRow = row;
             this.weirenRow = row;
@@ -250,35 +272,33 @@ export default {
         },
         },
         weirenSubmit() {
         weirenSubmit() {
             if (!this.weirenRow.levelId) {
             if (!this.weirenRow.levelId) {
-                this.$message.warning('请选择级别')
-
+                this.$message.warning('请选择级别');
             } else {
             } else {
-                this.$http.post({
-                    url: '/userInfo/weiren',
-                    data: {
-                        id: this.weirenRow.id,
-                        levelId: this.weirenRow.levelId
-                    }
-                }).then(res => {
-                    if (res.success) {
-
-                        this.$message.success('保存成功');
-                        this.getData();
-
-                    } else {
-                        this.$message.error('保存失败');
-                    }
+                this.$http
+                    .post({
+                        url: '/userInfo/weiren',
+                        data: {
+                            id: this.weirenRow.id,
+                            levelId: this.weirenRow.levelId,
+                        },
+                    })
+                    .then(res => {
+                        if (res.success) {
+                            this.$message.success('保存成功');
+                            this.getData();
+                        } else {
+                            this.$message.error('保存失败');
+                        }
 
 
-                    this.weirenRow = {};
-                    this.weirenShowDialog = false;
-                })
+                        this.weirenRow = {};
+                        this.weirenShowDialog = false;
+                    });
             }
             }
-
         },
         },
         operation1() {
         operation1() {
             this.$notify({
             this.$notify({
                 title: '提示',
                 title: '提示',
-                message: this.selection
+                message: this.selection,
             });
             });
         },
         },
         operation2() {
         operation2() {
@@ -288,8 +308,8 @@ export default {
             this.currentPage = 1;
             this.currentPage = 1;
             this.getData();
             this.getData();
         },
         },
-    }
-}
+    },
+};
 </script>
 </script>
 <style lang="less" scoped>
 <style lang="less" scoped>
 </style>
 </style>

+ 5 - 0
src/main/vue/src/router/index.js

@@ -385,6 +385,11 @@ const router = new Router({
                     name: 'UserTeam',
                     name: 'UserTeam',
                     component: () => import('../pages/UserTeam'),
                     component: () => import('../pages/UserTeam'),
                 },
                 },
+                {
+                    path: '/changePassword',
+                    name: 'ChangePassword',
+                    component: () => import('../pages/ChangePassword'),
+                },
                 {
                 {
                     path: '/recommenderLog',
                     path: '/recommenderLog',
                     name: 'RecommenderLog',
                     name: 'RecommenderLog',