lcl 1 год назад
Родитель
Сommit
d5a42551bc

+ 130 - 0
Areas/Admin/Controllers/MainServer/OrdersController.cs

@@ -1037,6 +1037,136 @@ namespace MySystem.Areas.Admin.Controllers
             return "success";
         }
 
+        #endregion
+        
+        #region wifi押金退款
+
+        public IActionResult WifiReturn(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            Orders editData = db.Orders.FirstOrDefault(m => m.Id == Id) ?? new Orders();
+            ViewBag.data = editData;
+            return View();
+        }
+
+        #endregion
+
+        #region wifi押金退款
+
+        [HttpPost]
+        public string WifiReturn(Orders data)
+        {
+            AddSysLog(data.Id.ToString(), "Orders", "Return");
+            Orders order = db.Orders.FirstOrDefault(m => m.Id == data.Id);
+            if (order != null)
+            {
+                if (order.TotalPrice <= 0)
+                {
+                    return "该订单不符合退货规则!";
+                }
+                else if (order.TotalPrice < decimal.Parse(data.RefundActAmount.ToString()) || decimal.Parse(data.RefundActAmount.ToString()) <= 0)
+                {
+                    return "退款金额和订单金额不符!";
+                }
+                else
+                {
+                    order.UpdateMan = SysUserName + "_" + SysRealName;
+                    order.RefundActAmount += data.RefundActAmount;
+                    if(order.RefundActAmount >= order.TotalPrice)
+                    {
+                        order.Status = 4;
+                        order.RefundStatus = 1;
+                        order.RefundReason = data.RefundReason;
+                    }
+                    db.SaveChanges();
+                    var Remark = "";
+                    var orderProduct = db.OrderProduct.FirstOrDefault(m => m.OrderId == order.Id) ?? new OrderProduct();
+                    Remark = orderProduct.ProductName + "退款至余额";
+
+                    bool op = true;
+                    decimal TotalPrice = order.TotalPrice;
+                    decimal Amount = data.RefundActAmount;
+                    if (order.PayMode == 1)
+                    {
+                        PublicAccountSet set = db.PublicAccountSet.FirstOrDefault() ?? new PublicAccountSet();
+                        string result = new Alipay.AlipayPublicClass(_accessor.HttpContext).Refund(set.AlipayAppId, set.AlipayPrivateKey, set.AlipayPublicKey, order.OrderNo, Amount);
+                    }
+                    else if (order.PayMode == 3)
+                    {
+                        UserAccount user = db.UserAccount.FirstOrDefault(m => m.Id == order.UserId);
+                        if (user == null)
+                        {
+                            user = db.UserAccount.Add(new UserAccount()
+                            {
+                                Id = order.UserId,
+                                UserId = order.UserId,
+                            }).Entity;
+                            db.SaveChanges();
+                        }
+                        decimal BeforeTotalAmount = user.TotalAmount; //变更前总金额
+                        decimal BeforeFreezeAmount = user.FreezeAmount; //变更前冻结金额
+                        decimal BeforeBalanceAmount = user.BalanceAmount; //变更前余额
+                        user.BalanceAmount += Amount;
+                        decimal AfterTotalAmount = user.TotalAmount; //变更后总金额
+                        decimal AfterFreezeAmount = user.FreezeAmount; //变更后冻结金额
+                        decimal AfterBalanceAmount = user.BalanceAmount; //变更后余额
+                        db.UserAccountRecord.Add(new UserAccountRecord()
+                        {
+                            CreateDate = DateTime.Now,
+                            UpdateDate = DateTime.Now,
+                            UserId = order.UserId, //创客
+                            ChangeType = 21, //变动类型
+                            ChangeAmount = Amount, //变更金额
+                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                            QueryCount = order.Id,
+                            Remark = Remark,
+                        });
+                    }
+                    if (op)
+                    {
+                        db.OrderRefund.Add(new OrderRefund()
+                        {
+                            CreateDate = DateTime.Now,
+                            Mobile = order.Mobile,
+                            Amount = Amount,
+                            SeoDescription = Remark,
+                            ProductId = order.ProductId.ToString(),
+                            OrderId = order.Id,
+                            UserId = order.UserId,
+                        });
+                    }
+                    else
+                    {
+                        order.RefundStatus = 0;
+                        order.RefundReason = null;
+                        order.RefundActAmount = 0;
+                    }
+
+                    if(!string.IsNullOrEmpty(order.SnNos) && order.ProductId == 134)
+                    {
+                        int count = (int)order.TotalPrice / 750;
+                        List<string> list = order.SnNos.Split(',').ToList();
+                        IQueryable<PosMachinesTwo> poslist = db.PosMachinesTwo.Where(m => list.Contains(m.PosSn) && m.IsOpAct == 1).Take(count);
+                        foreach(PosMachinesTwo pos in poslist)
+                        {
+                            pos.IsOpAct = 2;
+                        }
+                    }
+
+                    db.SaveChanges();
+                }
+            }
+            return "success";
+        }
+
         #endregion
 
         #region 订单详情

+ 130 - 0
Areas/Admin/Views/MainServer/Orders/WifiReturn.cshtml

@@ -0,0 +1,130 @@
+@using MySystem.Models;
+@{Orders editData = ViewBag.data as Orders;}
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+}
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>退款</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <script src="/admin/js/LAreaData2.js"></script>
+</head>
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        
+        <div class="layui-card">
+          <div class="layui-card-body">
+            <div class="layui-tab" lay-filter="mytabbar">
+                <div class="layui-tab-content mt20">
+                    <div class="layui-tab-item layui-show">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*订单总金额</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" readonly value="@editData.TotalPrice">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*退款金额</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="RefundActAmount" name="RefundActAmount" maxlength="30"
+                                    lay-verify="required|number|" autocomplete="off" placeholder="请输入退款金额">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*退款原因</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="RefundReason" name="RefundReason" maxlength="30"
+                                    lay-verify="required" autocomplete="off" placeholder="请输入退款原因">
+                            </div>
+                        </div>
+
+                    </div>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/other/oss/upload-min@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+        
+                    
+        //编辑器
+        KindEditor.ready(function (K) {
+            
+        });
+
+        var ids = "";
+        function getChildren(obj) {
+            $.each(obj, function (index, value) {
+                var id = obj[index].id;
+                ids += id + ",";
+                var children = obj[index].children;
+                if (children) {
+                    getChildren(children);
+                }
+            });
+        }
+        
+        var tree;
+        var element;
+        var upload;
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form', 'upload', 'layedit', 'laydate', 'element', 'croppers', 'transfer', 'tree', 'util'], function () {
+            var $ = layui.$
+                , form = layui.form
+                , layer = layui.layer
+                , layedit = layui.layedit
+                , laydate = layui.laydate
+                , croppers = layui.croppers
+                , transfer = layui.transfer
+                , util = layui.util;
+            tree = layui.tree;
+            element = layui.element;
+            upload = layui.upload;
+        
+            //Hash地址的定位
+            var layid = location.hash.replace(/^#test=/, '');
+            element.tabChange('test', layid);
+            element.on('tab(test)', function (elem) {
+                location.hash = 'test=' + $(this).attr('lay-id');
+            });
+    
+            //日期
+            
+
+            //上传文件
+            
+
+            //穿梭框
+            
+
+            //TreeView,比如权限管理
+            
+
+            //省市区
+            
+        })
+
+    </script>
+</body>
+</html>

+ 2 - 2
wwwroot/layuiadmin/modules_main/OrdersWifiDeposit_Admin.js

@@ -364,7 +364,7 @@ layui.config({
             var perContent = layer.open({
                 type: 2
                 , title: '退款'
-                , content: 'Return?Id=' + data.Id + ''
+                , content: 'WifiReturn?Id=' + data.Id + ''
                 , maxmin: true
                 , area: ['500px', '450px']
                 , btn: ['确认退款', '取消']
@@ -395,7 +395,7 @@ layui.config({
 
                         $.ajax({
                             type: "POST",
-                            url: "/Admin/Orders/Return?r=" + Math.random(1),
+                            url: "/Admin/Orders/WifiReturn?r=" + Math.random(1),
                             data: userdata,
                             dataType: "text",
                             success: function (data) {