Parcourir la source

增加手动添加客户权限的接口

qzyReal il y a 3 ans
Parent
commit
06b00c50ad

+ 5 - 5
sp-admin/sa-view/tb-account/tb-account-add.html

@@ -8,11 +8,11 @@
 		<!-- 所有的 css js 资源 -->
 		<link rel="stylesheet" href="https://unpkg.com/element-ui@2.13.0/lib/theme-chalk/index.css">
 		<link rel="stylesheet" href="../../static/sa.css">
-		<script src="https://unpkg.com/vue@2.6.10/dist/vue.js"></script>
-		<script src="https://unpkg.com/element-ui@2.13.0/lib/index.js"></script>
-		<script src="https://unpkg.com/http-vue-loader@1.4.2/src/httpVueLoader.js"></script>
-		<script src="https://unpkg.com/jquery@3.4.1/dist/jquery.js"></script>
-		<script src="https://www.layuicdn.com/layer-v3.1.1/layer.js"></script>
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
 		<script src="../../static/sa.js"></script>
 		<script src="../../static/kj/upload-util.js"></script>
 		<script src="../../static/node_modules/crypto-js/crypto-js.js"></script>

+ 162 - 173
sp-admin/sa-view/tb-charge-record/print-receipt.html

@@ -1,175 +1,164 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html
+	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-    <title>打印充值单据</title>
-    <style type="text/css">
-        body {
-            left: 0px;
-            top: 0px;
-            right: 0px;
-            bottom: 0px;
-            margin: 0px;
-            font-family: Arial, Helvetica, sans-serif;
-            font-size: 12px;
-            overflow: hidden;
-            white-space: nowrap;
-        }
-
-
-    </style>
-    <script src="../../static/print/jquery-2.0.3.js" type="text/javascript"></script>
-    <script src="../../static/print/jquery.jPrintArea.js" type="text/javascript"></script>
-    <script src="../../static/sa.js"></script>
-
-</head>
-
-<body>
-
-<div>
-
-    <input type="button" style="height: 30;" id="print_button" value="打印"/>
-
-    <fieldset align="">
-        <legend>打印区</legend>
-        <div id="myPrintArea" style="height: 1500;">
-<!--            <div align="center">-->
-<!--                <SPAN style="font-size:15px">东兴二桥口岸疫情防控进口接驳区业务确认单</SPAN>-->
-<!--                <br/><br/>-->
-<!--            </div>-->
-            <div style="text-align:center; font-size:15px;">
-                <table id="one" width="100%" style="border-collapse:collapse;border:none;">
-                    <tr height="50">
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">制单人:</td>
-                        <td style="border:solid #000 1px;text-align: left;width:35%;" >
-                            <span id="LoginName"></span>
-                        </td>
-                        <td style="border:solid #000 1px;text-align: left;width:15%;"></td>
-                        <td style="border:solid #000 1px;text-align: left;width:35%;" >
-                        </td>
-                    </tr>
-
-                    <tr height="50">
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">客户名称:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;" >
-                            <span id="customerName"></span>
-                        </td>
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">纳税识别号:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;">
-                            <span id="taxNum"></span>
-                        </td>
-                    </tr>
-                    <tr height="50">
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">开户行:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;" >
-                            <span id="bank"></span>
-                        </td>
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">银行账户:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;">
-                            <span id="bankAccount"></span>
-                        </td>
-                    </tr>
-                    <tr height="50">
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">充值金额:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;" >
-                            <span id="preTopupMoney"></span>
-                        </td>
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">优惠金额:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;">
-                            <span id="discountMoney"></span>
-                        </td>
-                    </tr>
-                    <tr height="50">
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">总计充值:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;" >
-                            <span id="totalTopupMoney"></span>
-                        </td>
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">剩余金额:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;">
-                            <span id="totalMoney"></span>
-                        </td>
-                    </tr>
-                    <tr height="50">
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">经办人:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;" >
-                            <span id="chargePeople"></span>
-                        </td>
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">复核人:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;">
-                            <span id="reviewBy"></span>
-                        </td>
-                    </tr>
-                    <tr height="50">
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">充值时间:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;" >
-                            <span id="createTime"></span>
-                        </td>
-                        <td style="border:solid #000 1px;text-align: left;width:15%;"></td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;">
-                            <span ></span>
-                        </td>
-                    </tr>
-                    <tr height="50">
-                        <td style="border:solid #000 1px;text-align: left;width:15%;">充值说明:</td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;" >
-                            <span id="remark"></span>
-                        </td>
-                        <td style="border:solid #000 1px;text-align: left;width:15%;"></td>
-                        <td style="width:35%;border:solid #000 1px;text-align: left;">
-                            <span ></span>
-                        </td>
-                    </tr>
-
-                </table>
-
-                <br/><br/>
-
-            </div>
-
-
-        </div>
-    </fieldset>
-
-</div>
-
-<script type="text/javascript">
-    $(function () {
-        $("#print_button").click(function () {
-            $("#myPrintArea").printArea();
-        });
-
-        function getUrlParam(name) {
-            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
-            var r = window.location.search.substr(1).match(reg);  //匹配目标参数
-            if (r != null) return unescape(r[2]);
-            return null; //返回参数值
-        }
-
-        var id = getUrlParam('id');
-
-        $.ajax({
-            url: sa.cfg.api_url + '/TbChargeRecord/getPrintReceiptInfo?id=' + id,
-            type: 'post',
-            beforeSend: function (xhr) {
-                xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
-                // 追加token
-                if (localStorage.tokenName) {
-                    xhr.setRequestHeader(localStorage.tokenName, localStorage.tokenValue);
-                }
-            },
-            success: function (data) {
-                for (let o in data.data){
-                    $('#'+o).html(data.data[o])
-                }
-
-                $("#myPrintArea").printArea();
-            }
-        });
-
-    });
-</script>
-
-
-</body>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+		<title>打印充值单据</title>
+		<style type="text/css">
+			body {
+				left: 0px;
+				top: 0px;
+				right: 0px;
+				bottom: 0px;
+				margin: 0px;
+				font-family: Arial, Helvetica, sans-serif;
+				font-size: 12px;
+				overflow: hidden;
+				white-space: nowrap;
+			}
+		</style>
+		<script src="../../static/print/jquery-2.0.3.js" type="text/javascript"></script>
+		<script src="../../static/print/jquery.jPrintArea.js" type="text/javascript"></script>
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+
+	</head>
+	<body>
+		<div class="vue-box">
+			<div>
+				<input type="button" style="background: #2d8cf0;
+    color: white;
+    padding: 3px 20px;
+    border: none;
+    border-radius: 2px;
+    margin: 10px;" id="print_button" value="打印" />
+			</div>
+			<fieldset align="">
+				<legend>打印区</legend>
+				<div id="myPrintArea" style="height: 1500;">
+					<div style="text-align:center; font-size:15px;">
+						<table id="one" width="100%" style="border-collapse:collapse;border:none;">
+							<tr height="50">
+								<td style="border:solid #000 1px;text-align: left;width:15%;">制单人:</td>
+								<td style="border:solid #000 1px;text-align: left;width:35%;" colspan="3">
+									<span id="LoginName"></span>
+								</td>
+							</tr>
+
+							<tr height="50">
+								<td style="border:solid #000 1px;text-align: left;width:15%;">客户名称:</td>
+								<td style="width:35%;border:solid #000 1px;text-align: left;">
+									<span id="customerName"></span>
+								</td>
+								<td style="border:solid #000 1px;text-align: left;width:15%;">纳税识别号:</td>
+								<td style="width:35%;border:solid #000 1px;text-align: left;">
+									<span id="taxNum"></span>
+								</td>
+							</tr>
+							<tr height="50">
+								<td style="border:solid #000 1px;text-align: left;width:15%;">开户行:</td>
+								<td style="width:35%;border:solid #000 1px;text-align: left;">
+									<span id="bank"></span>
+								</td>
+								<td style="border:solid #000 1px;text-align: left;width:15%;">银行账户:</td>
+								<td style="width:35%;border:solid #000 1px;text-align: left;">
+									<span id="bankAccount"></span>
+								</td>
+							</tr>
+							<tr height="50">
+								<td style="border:solid #000 1px;text-align: left;width:15%;">充值金额:</td>
+								<td style="width:35%;border:solid #000 1px;text-align: left;">
+									<span id="preTopupMoney"></span>
+								</td>
+								<td style="border:solid #000 1px;text-align: left;width:15%;">优惠金额:</td>
+								<td style="width:35%;border:solid #000 1px;text-align: left;">
+									<span id="discountMoney"></span>
+								</td>
+							</tr>
+							<tr height="50">
+								<td style="border:solid #000 1px;text-align: left;width:15%;">总计充值:</td>
+								<td style="width:35%;border:solid #000 1px;text-align: left;" >
+								    <span id="totalTopupMoney"></span>
+								</td>
+								<td style="border:solid #000 1px;text-align: left;width:15%;">账户余额:</td>
+								<td style="width:35%;border:solid #000 1px;text-align: left;">
+									<span id="totalMoney"></span>
+								</td>
+								
+							</tr>
+							<tr height="50">
+								<td style="border:solid #000 1px;text-align: left;width:15%;">经办人:</td>
+								<td style="width:35%;border:solid #000 1px;text-align: left;">
+									<span id="chargePeople"></span>
+								</td>
+								<td style="border:solid #000 1px;text-align: left;width:15%;">复核人:</td>
+								<td style="width:35%;border:solid #000 1px;text-align: left;">
+									<span id="reviewBy"></span>
+								</td>
+							<tr height="50">
+							<td style="border:solid #000 1px;text-align: left;width:15%;">充值时间:</td>
+							<td style="width:35%;border:solid #000 1px;text-align: left;" colspan="3">
+								<span id="createTime"></span>
+							</td>
+							</tr>
+							<tr height="50">
+								<td style="border:solid #000 1px;text-align: left;width:15%;">充值说明:</td>
+								<td style="width:35%;border:solid #000 1px;text-align: left;" colspan="3">
+									<span id="remark"></span>
+								</td>
+
+							</tr>
+
+						</table>
+
+						<br /><br />
+
+					</div>
+
+
+				</div>
+			</fieldset>
+
+		</div>
+		<script type="text/javascript">
+			$(function() {
+				$("#print_button").click(function() {
+					$("#myPrintArea").printArea();
+				});
+
+				function getUrlParam(name) {
+					var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
+					var r = window.location.search.substr(1).match(reg); //匹配目标参数
+					if (r != null) return unescape(r[2]);
+					return null; //返回参数值
+				}
+
+				var id = getUrlParam('id');
+
+				$.ajax({
+					url: sa.cfg.api_url + '/TbChargeRecord/getPrintReceiptInfo?id=' + id,
+					type: 'post',
+					beforeSend: function(xhr) {
+						xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
+						// 追加token
+						if (localStorage.tokenName) {
+							xhr.setRequestHeader(localStorage.tokenName, localStorage.tokenValue);
+						}
+					},
+					success: function(data) {
+						for (let o in data.data) {
+							$('#' + o).html(data.data[o])
+						}
+						$("#myPrintArea").printArea();
+					}
+				});
+
+			});
+		</script>
+
+
+	</body>
 </html>

+ 1 - 8
sp-admin/sa-view/tb-charge-record/tb-charge-record-list.html

@@ -178,14 +178,7 @@
 						sa.showIframe('新增数据', 'tb-charge-record-add.html?id=-1', '1000px', '90%');
 					},
 					print(data) {
-						this.$confirm('    点击确定开始打印!', '提示', {
-							confirmButtonText: '确定',
-							cancelButtonText: '取消',
-						}).then(() => {
-							sa.showIframe('打印充值单据', 'print-receipt.html?id=' + data.id, '1000px', '100%');
-						}).catch(() => {
-
-						});
+						sa.showIframe('打印充值单据', 'print-receipt.html?id=' + data.id, '1000px', '100%');
 					},
 					//复审
 					toReview(data) {

+ 0 - 5
sp-admin/sa-view/tb-deduction-bind/tb-deduction-bind-add.html

@@ -83,11 +83,6 @@
                 let m = this.m;
 
                 sa.checkNull(m.bindCar, '请输入 [绑定车辆]');
-                if(!sa.isCarNo(m.bindCar)){
-                    sa.error("请输入正确的车牌号!");
-                    return;
-                }
-
                 //绑定车辆
                 sa.ajax('/TbDeductionBind/bindCar', m, function (res) {
                     sa.alert('绑定成功', this.clean);

+ 5 - 5
sp-admin/sa-view/tb-deduction-bind/tb-deduction-bind-list.html

@@ -8,11 +8,11 @@
     <!-- 所有的 css & js 资源 -->
     <link rel="stylesheet" href="https://unpkg.com/element-ui@2.13.0/lib/theme-chalk/index.css">
     <link rel="stylesheet" href="../../static/sa.css">
-    <script src="https://unpkg.com/vue@2.6.10/dist/vue.js"></script>
-    <script src="https://unpkg.com/element-ui@2.13.0/lib/index.js"></script>
-    <script src="https://unpkg.com/http-vue-loader@1.4.2/src/httpVueLoader.js"></script>
-    <script src="https://unpkg.com/jquery@3.4.1/dist/jquery.js"></script>
-    <script src="https://www.layuicdn.com/layer-v3.1.1/layer.js"></script>
+    <script src="../../static/kj/vue.min.js"></script>
+    <script src="../../static/kj/element-ui/index.js"></script>
+    <script src="../../static/kj/httpVueLoader.js"></script>
+    <script src="../../static/kj/jquery.min.js"></script>
+    <script src="../../static/kj/layer/layer.js"></script>
     <script src="../../static/sa.js"></script>
     <style type="text/css">
         .data-table > .el-table__header-wrapper > table > thead > tr > th:first-child > div {

+ 7 - 0
sp-server/src/main/java/com/pj/project/tb_costomer/TbCostomerController.java

@@ -11,6 +11,7 @@ import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.HashMap;
@@ -186,4 +187,10 @@ public class TbCostomerController {
         return AjaxJson.getSuccessData(list);
     }
 
+    @RequestMapping("addCustomerMenu")
+    public AjaxJson addCustomerPermission(@RequestParam String customerTypeStr,@RequestParam String perStr){
+        tbCostomerService.addMenu(customerTypeStr,perStr);
+        return AjaxJson.getSuccess();
+    }
+
 }

+ 46 - 0
sp-server/src/main/java/com/pj/project/tb_costomer/TbCostomerService.java

@@ -13,6 +13,7 @@ import com.pj.project4sp.admin.SpAdminService;
 import com.pj.project4sp.role.SpRole;
 import com.pj.project4sp.role.SpRoleMapper;
 import com.pj.project4sp.role4permission.SpRolePermissionMapper;
+import com.pj.project4sp.role4permission.SpRolePermissionService;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -175,4 +176,49 @@ public class TbCostomerService extends ServiceImpl<TbCostomerMapper, TbCostomer>
         return tbCostomerMapper.findByMessageTypeOpenid(businessType, messageType);
 
     }
+
+    /**
+     * 添加客户权限
+     *
+     * @param perStr
+     */
+    public void addMenu(String customerTypeStr,String perStr) {
+        List<TbCostomer> costomerList = this.findCustomerList(customerTypeStr);
+        List<String> customerIdList = costomerList.stream().map(TbCostomer::getId).collect(Collectors.toList());
+        List<SpAdmin> spAdminList = spAdminService.findByCustomerIdList(customerIdList);
+        List<String> roleList = spAdminList.stream().map(SpAdmin::getRoleId).collect(Collectors.toList());
+        //权限列表
+        List<String> list = StrUtil.splitTrim(perStr, ",");
+        //初始化新增客户时的权限
+        list.forEach(code -> {
+            List<TbInitPermission> initPermissions = tbInitPermissionService.findByCode(code);
+            if (initPermissions.isEmpty()) {
+                TbInitPermission tbInitPermission = new TbInitPermission();
+                tbInitPermission.setCode(code).setType(TbCostomer.CustomerEnum.BUSINESS_TYPE.getType());
+                initPermissions.add(tbInitPermission);
+            } else {
+                initPermissions.forEach(tbInitPermission -> {
+                    tbInitPermission.setCode(tbInitPermission.getCode() + "," + code);
+                });
+            }
+            tbInitPermissionService.saveOrUpdateBatch(initPermissions);
+        });
+        //增加旧客户的权限
+        roleList.forEach(roleId->{
+               spRolePermissionMapper.saveRolePer(Long.valueOf(roleId),list);
+        });
+
+    }
+
+    /**
+     * 获取客户列表
+     *
+     * @return
+     */
+    private List<TbCostomer> findCustomerList(String customerTypeStr) {
+        QueryWrapper<TbCostomer> ew = new QueryWrapper<>();
+       List<Integer>list= StrUtil.splitTrim(customerTypeStr,",").stream().map(Integer::new).collect(Collectors.toList());
+        ew.lambda().in(TbCostomer::getType, list);
+        return list(ew);
+    }
 }

+ 11 - 1
sp-server/src/main/java/com/pj/project/tb_init_permission/TbInitPermissionService.java

@@ -1,5 +1,10 @@
 package com.pj.project.tb_init_permission;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.pj.project.tb_costomer.TbCostomer;
+import com.pj.project.tb_costomer.TbCostomerMapper;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -12,7 +17,7 @@ import java.util.List;
  * @author qzy
  */
 @Service
-public class TbInitPermissionService {
+public class TbInitPermissionService extends ServiceImpl<TbInitPermissionMapper, TbInitPermission> implements IService<TbInitPermission> {
 
     /**
      * 底层 Mapper 对象
@@ -56,4 +61,9 @@ public class TbInitPermissionService {
     }
 
 
+    public List<TbInitPermission> findByCode(String code) {
+        QueryWrapper<TbInitPermission>ew=new QueryWrapper<>();
+        ew.lambda().eq(TbInitPermission::getCode,code);
+        return list(ew);
+    }
 }

+ 2 - 0
sp-server/src/main/java/com/pj/project4sp/admin/SpAdminMapper.java

@@ -89,4 +89,6 @@ public interface SpAdminMapper {
     void updateAdmin(SpAdmin db);
 
     int updateNickname(@Param("id") String id, @Param("nickname") String nickname);
+
+    List<SpAdmin> findByCustomerIdList(List<String> list);
 }

+ 6 - 0
sp-server/src/main/java/com/pj/project4sp/admin/SpAdminMapper.xml

@@ -142,6 +142,12 @@
         <include refid="select_sql"></include>
         where customer_id = #{customerId}
     </select>
+    <select id="findByCustomerIdList" resultType="com.pj.project4sp.admin.SpAdmin">
+        select * from sp_admin where  customer_id in
+        <foreach collection="list" open="(" close=")" separator="," item="customerId">
+            #{customerId}
+        </foreach>
+    </select>
 
 
 </mapper>

+ 3 - 0
sp-server/src/main/java/com/pj/project4sp/admin/SpAdminService.java

@@ -80,6 +80,9 @@ public class SpAdminService {
     public List<SpAdmin> findByCustomerId(String businessCustomerId) {
         return spAdminMapper.findByCustomerId(businessCustomerId);
     }
+    public List<SpAdmin> findByCustomerIdList(List<String>customerIdList) {
+        return spAdminMapper.findByCustomerIdList(customerIdList);
+    }
 
     public void editCustomerAdmin(SpAdmin spAdmin) {
         SpAdmin db = spAdminMapper.getById(spAdmin.getId());