From 8cde7ee1143bae70eb68d2b75f572d5b4dbadf98 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期四, 12 十月 2023 17:47:00 +0800
Subject: [PATCH] zjh 2023/10/12--1

---
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java               |    2 
 ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java         |   55 ++++
 ltkj-hosp/src/main/java/com/ltkj/hosp/domain/DictHosp.java                               |    6 
 ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjFlowingWater.java                         |    2 
 ltkj-admin/src/main/resources/application.yml                                            |    4 
 ltkj-common/src/main/java/com/ltkj/common/exception/CustomException.java                 |   41 +++
 ltkj-common/src/main/java/com/ltkj/common/utils/SecurityUtils.java                       |   30 ++
 ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java                          |    3 
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java                       |    2 
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java    |    2 
 ltkj-common/src/main/java/com/ltkj/common/exception/user/SecretKeyException.java         |   43 +++
 ltkj-admin/src/test/java/zjhTest.java                                                    |   60 +++--
 ltkj-common/src/main/java/com/ltkj/common/core/domain/model/LoginUser.java               |   12 +
 ltkj-hosp/src/main/resources/mapper/hosp/TjOrderMapper.xml                               |    2 
 ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/NewFlowingWaterVo.java                    |   42 +++
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysLoginController.java          |   61 +++++
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjNewFlowingWaterController.java |  252 ++++++++++++++++++++++
 17 files changed, 589 insertions(+), 30 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysLoginController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysLoginController.java
index 6f1125e..2686fc0 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysLoginController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysLoginController.java
@@ -3,11 +3,20 @@
 import java.awt.peer.LabelPeer;
 import java.util.*;
 
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ltkj.common.annotation.RepeatSubmit;
+import com.ltkj.common.core.domain.entity.SysDept;
 import com.ltkj.common.core.domain.entity.SysRole;
+import com.ltkj.common.core.redis.RedisCache;
+import com.ltkj.common.exception.CustomException;
+import com.ltkj.common.exception.user.SecretKeyException;
 import com.ltkj.common.utils.StringUtils;
+import com.ltkj.framework.config.UserHoder;
+import com.ltkj.hosp.domain.DictHosp;
 import com.ltkj.hosp.domain.TjCustomer;
+import com.ltkj.hosp.service.IDictHospService;
 import com.ltkj.hosp.service.ITjCustomerService;
 import com.ltkj.system.domain.SysPost;
 import com.ltkj.system.domain.SysRoleMenu;
@@ -17,6 +26,7 @@
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import com.ltkj.common.constant.Constants;
 import com.ltkj.common.core.domain.AjaxResult;
@@ -56,6 +66,17 @@
     private ISysRoleMenuService roleMenuService;
     @Autowired
     private ISysConfigService configService;
+    @Resource
+    private IDictHospService hospService;
+    @Autowired
+    private ISysDeptService deptService;
+    @Value("${token.secret_key}")
+    private String secret;
+
+    @Value("${token.secret_key_login}")
+    private boolean secretKeyLogin;
+    @Autowired
+    private RedisCache redisCache;
 
     /**
      * 鐧诲綍鏂规硶
@@ -90,13 +111,50 @@
     @GetMapping("getInfo")
     public AjaxResult getInfo() {
         AjaxResult ajax = success();
-        SysUser user = Objects.requireNonNull(SecurityUtils.getLoginUser()).getUser();
+//        SysUser user = Objects.requireNonNull(SecurityUtils.getLoginUser()).getUser();
+        SysUser user = UserHoder.getLoginUser().getUser();
         if (null != user.getUserId()) {
+            String message=null;
+            if (secretKeyLogin)
+            {
+                if(null !=user.getDeptId()){
+                    if(!SecurityUtils.isAdmin(user.getUserId())){
+                        SysDept sysDept = deptService.getById(user.getDeptId());
+                        if (null != sysDept) {
+                            DictHosp dictHosp = hospService.getById(sysDept.getHospId());
+                            if(null !=dictHosp && dictHosp.getSecretKey() !=null && dictHosp.getExpirationTime() !=null){
+                                if (!SecurityUtils.matchesMallMerchantSecretKey(secret,dictHosp.getHospAreaId(),dictHosp.getAreaid(),
+                                        dictHosp.getExpirationTime(),dictHosp.getSecretKey())) {
+
+                                    String userIdKey = Constants.LOGIN_USERID_KEY + user.getUserId();
+                                    String userKey = redisCache.getCacheObject(userIdKey);
+                                    if (org.apache.commons.lang3.StringUtils.isNotEmpty(userKey))
+                                    {
+                                        redisCache.deleteObject(userIdKey);
+                                        redisCache.deleteObject(userKey);
+                                    }
+
+                                    throw new SecretKeyException("鍟嗗宸茶繃鏈熻缁垂浣跨敤");
+                                }
+                                long between = DateUtil.between(new Date(), DateUtil.endOfDay(dictHosp.getExpirationTime()), DateUnit.DAY);
+                                if(between<=30){
+//                                    message="杩樻湁 "+between+" 澶╁埌鏈� 璇锋敞鎰忕画璐�! 浠ュ厤褰卞搷姝e父浣跨敤!";
+                                    UserHoder.getLoginUser().setMessage("杩樻湁 "+between+" 澶╁埌鏈� 璇锋敞鎰忕画璐�! 浠ュ厤褰卞搷姝e父浣跨敤!");
+                                }
+                            }else {
+                                throw new SecretKeyException("璇风即璐逛娇鐢�");
+                            }
+                        }
+                    }
+
+                }
+            }
             Set<String> roles = permissionService.getRolePermission(user);
             Set<String> permissions = permissionService.getMenuPermission(user);
             ajax.put("user", user);
             ajax.put("roles", roles);
             ajax.put("permissions", permissions);
+            ajax.put("securitMessage",UserHoder.getLoginUser().getMessage());
         } else {
             Set<String> roles = new HashSet<>();
             LambdaQueryWrapper<SysRole> wq = new LambdaQueryWrapper<>();
@@ -116,6 +174,7 @@
             ajax.put("roles", roles);
             ajax.put("permissions", permissions);
             ajax.put("post",null);
+            ajax.put("securitMessage",null);
         }
         return ajax;
     }
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java
index 7329e50..4f1ebc2 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java
@@ -418,7 +418,7 @@
                                 tjRefundVo.setTjName(MatchUtils.hideCusName(customer.getCusName()));
                                 tjRefundVo.setTjPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
                                 tjRefundVo.setSex(String.valueOf(customer.getCusSex()));
-                                tjRefundVo.setIdCard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
+                               if(null !=customer.getCusIdcard()) tjRefundVo.setIdCard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
                                 DictComp dictComp = compService.getById(order.getFirmId());
                                 if(null !=dictComp){
                                     tjRefundVo.setTjComp(dictComp.getCnName());
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjNewFlowingWaterController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjNewFlowingWaterController.java
new file mode 100644
index 0000000..b5995f1
--- /dev/null
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjNewFlowingWaterController.java
@@ -0,0 +1,252 @@
+package com.ltkj.web.controller.system;
+
+import cn.hutool.core.codec.Base64;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.extra.pinyin.PinyinUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ltkj.common.core.domain.AjaxResult;
+import com.ltkj.common.core.domain.entity.SysUser;
+import com.ltkj.common.utils.SecurityUtils;
+import com.ltkj.framework.config.MatchUtils;
+import com.ltkj.hosp.domain.*;
+import com.ltkj.hosp.service.*;
+import com.ltkj.hosp.vodomain.NewFlowingWaterVo;
+import com.ltkj.hosp.vodomain.TjCollectFeesVo;
+import com.ltkj.mall.domain.MallCheckLog;
+import com.ltkj.mall.domain.MallOrder;
+import com.ltkj.mall.mallOrderUtils.TjConstants;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
+ * @Author: zjh
+ * @Date: 2023/10/12 08:42
+ */
+
+
+@RestController
+@RequestMapping("/hosp/new/water")
+@Api(tags = "PC绔� 浣撴 鏂� 鐧昏鏀惰垂鍔熻兘鎺ュ彛")
+public class TjNewFlowingWaterController {
+    @Resource
+    private ITjFlowingWaterService flowingWaterService;
+    @Resource
+    private ITjOrderService orderService;
+    @Resource
+    private ITjOrderDetailService detailService;
+    @Resource
+    private ITjTollCollectorService collectorService;
+    @Resource
+    private ITjTollCollectorDetailService collectorDetailService;
+    @Resource
+    private ITjCustomerService customerService;
+    @Resource
+    private ITjProjectService projectService;
+    @Resource
+    private ITjChargingStandardService chargingStandardService;
+
+
+
+
+    @GetMapping("/getFlowingWaterList")
+    @ApiOperation(value = "鑾峰彇浣撴鏀惰垂璁板綍鎺ュ彛")
+    public AjaxResult getFlowingWaterList(@RequestParam(required = false) @ApiParam(value = "浣撴鍙�") String phone,
+                                          @RequestParam(required = false) @ApiParam(value = "浣撴浜哄鍚�") String name,
+                                          @RequestParam(defaultValue = "1") @ApiParam(value = "鏀惰垂1 閫�璐�2") Long type) {
+        List<TjFlowingWater> waterList =null;
+        List<Long> collect =null;
+        TjCustomer one =null;
+
+        LambdaQueryWrapper<TjFlowingWater> wq1 = new LambdaQueryWrapper<>();
+        if(null !=phone || null !=name){
+            LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
+            if(null !=name){
+                wq.like(TjCustomer::getCusName,name);
+            }
+            if (null != phone) {
+                wq.eq(TjCustomer::getCusPhone, phone);
+            }
+             one = customerService.getOne(wq);
+        }
+
+        if (null != one) {
+            collect = orderService.getOrderList(one.getCusId()).stream().map(TjOrder::getOrderId).collect(Collectors.toList());
+        }
+        if(null !=collect){
+            wq1.in(TjFlowingWater::getOrderId, collect);
+        }
+        wq1.between(TjFlowingWater::getCreateTime,DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date()));
+        wq1.eq(TjFlowingWater::getPayStasus,type);
+        waterList = flowingWaterService.list(wq1);
+
+        if(null !=waterList && waterList.size()>0){
+            for (TjFlowingWater flowingWater : waterList) {
+                TjOrder order = orderService.getById(flowingWater.getOrderId());
+                if (null != order) {
+                    if (null != customerService.getById(order.getUserId())) {
+                        flowingWater.setCustomer(customerService.getById(order.getUserId()));
+                    }
+                }
+            }
+        }
+        return AjaxResult.success(waterList);
+    }
+
+
+
+
+    @GetMapping("/getTjPrice")
+    @ApiOperation(value = "鑾峰彇浣撴璐圭敤")
+    public AjaxResult getTjPrice() {
+        TjProject project = projectService.getOne(new LambdaQueryWrapper<TjProject>().eq(TjProject::getProName, "浣撴璐�")
+                .eq(TjProject::getProId, 1712272744924446722L));
+        if (null != project) {
+            return AjaxResult.success(project.getProPrice());
+        }
+        return AjaxResult.error("娌℃壘鍒板搴旈」鐩� 璇疯嚜瀹氫箟璐圭敤");
+    }
+
+
+    /**
+     * 浣撴绛惧埌鐧昏鎺ュ彛
+     */
+    @PostMapping("/addOrderAndDetail")
+    @ApiOperation(value = "浣撴鏀惰垂鎺ュ彛")
+    @Transactional
+    public AjaxResult addOrderAndDetail(@RequestBody NewFlowingWaterVo vo) {
+
+        if (!MatchUtils.isMobileNO(vo.getPhone())) {
+            return AjaxResult.error("鎵嬫満鍙锋牸寮忔湁璇�!");
+        }
+//        Long cusId = null;
+//        LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
+//        wq.eq(TjCustomer::getCusName, vo.getName());
+//        wq.eq(TjCustomer::getCusPhone, vo.getPhone());
+//        TjCustomer one = customerService.getOne(wq);
+//        if (null == one) {
+            TjCustomer customer = new TjCustomer();
+            if(null !=vo.getPhone())customer.setCusPhone(vo.getPhone());
+            customer.setCusName(vo.getName());
+            customer.setCusBrithday(new Date());
+            customer.setCusSex(0L);
+            customerService.save(customer);
+//            cusId = customer.getCusId();
+//        } else {
+//            cusId = one.getCusId();
+//        }
+        TjOrder tjOrder = new TjOrder();
+        tjOrder.setUserId(customer.getCusId());
+        tjOrder.setTjType("2");
+        //鐢熸垚浣撴鍙�
+        String tjNumber = (SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmss").format(new Date()));
+        tjOrder.setTjNumber(tjNumber);
+        tjOrder.setFirmId("0");
+        tjOrder.setStatus(TjConstants.TJ_BEGIN);
+        if (orderService.save(tjOrder)) {
+
+            LambdaQueryWrapper<TjFlowingWater> wq = new LambdaQueryWrapper<>();
+            wq.eq(TjFlowingWater::getOrderId,tjOrder.getOrderId());
+            wq.eq(TjFlowingWater::getPayStasus,1L);
+            if(null !=flowingWaterService.getOne(wq)){
+                return AjaxResult.error("璇ヨ鍗曞凡缂磋垂!");
+            }
+
+            TjOrderDetail detail = new TjOrderDetail();
+            detail.setOrderId(tjOrder.getOrderId());
+            detail.setProId(1712272744924446722L);
+            detail.setProType("0");
+            detailService.save(detail);
+
+            TjFlowingWater tjFlowingWater = new TjFlowingWater();
+            tjFlowingWater.setOrderId(tjOrder.getOrderId());
+            tjFlowingWater.setPayType(Long.valueOf(vo.getType()));
+            tjFlowingWater.setCopeWith(vo.getYs());
+            tjFlowingWater.setPaidIn(vo.getSs());
+            tjFlowingWater.setDiscount(vo.getZk());
+            tjFlowingWater.setPayStasus(1L);
+            Date date1 = new Date(System.currentTimeMillis());
+            String s1 = SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmssSSS").format(date1);
+            tjFlowingWater.setWaterId(s1);
+            tjFlowingWater.setRemarks("宸叉敹璐�");
+            if (flowingWaterService.save(tjFlowingWater)) {
+                tjOrder.setTjSerialNumber(String.valueOf(tjFlowingWater.getTjSerialNumber()));
+                orderService.updateById(tjOrder);
+                detail.setFlowingWaterId(tjFlowingWater.getWaterId());
+                detailService.updateById(detail);
+                TjChargingStandard tjChargingStandard = new TjChargingStandard();
+                tjChargingStandard.setTjNum(tjOrder.getTjNumber());
+                tjChargingStandard.setProId(1712272744924446722L);
+                tjChargingStandard.setPrice(vo.getYs().divide(BigDecimal.valueOf(Long.parseLong(vo.getNumber()))));
+                tjChargingStandard.setProName("浣撴椤圭洰");
+                tjChargingStandard.setCount(Long.valueOf(vo.getNumber()));
+                chargingStandardService.save(tjChargingStandard);
+            }
+            return AjaxResult.success();
+        }
+        return AjaxResult.error();
+    }
+
+
+    /**
+     * 浣撴閫�璐规帴鍙�
+     */
+    @PostMapping("/tjRefund")
+    @ApiOperation(value = "浣撴閫�璐规寜閽帴鍙�")
+    public AjaxResult tjRefund(@RequestBody @ApiParam(value = "娴佹按瀵硅薄") TjFlowingWater water) {
+        TjFlowingWater flowingWater = flowingWaterService.getOne(new LambdaQueryWrapper<TjFlowingWater>().eq(TjFlowingWater::getWaterId, water.getWaterId()));
+
+        LambdaQueryWrapper<TjFlowingWater> wq = new LambdaQueryWrapper<>();
+        wq.eq(TjFlowingWater::getOrderId,flowingWater.getOrderId());
+        wq.eq(TjFlowingWater::getPayStasus,2L);
+        if(null !=flowingWaterService.getOne(wq)){
+            return AjaxResult.error("璇ヨ鍗曞凡閫�璐�  涓嶅彲閲嶅閫�璐�!");
+        }
+        TjFlowingWater tjFlowingWater=new TjFlowingWater();
+        tjFlowingWater.setOrderId(flowingWater.getOrderId());
+        tjFlowingWater.setWaterId(SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS"));
+        tjFlowingWater.setTollCollectorId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
+        tjFlowingWater.setRefundPersonId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
+        tjFlowingWater.setRefundTime(new Date());
+        tjFlowingWater.setRefundPrice(flowingWater.getPaidIn());
+        tjFlowingWater.setIsAddition("N");
+        tjFlowingWater.setPayStasus(2L);
+        tjFlowingWater.setPaidIn(BigDecimal.valueOf(0.00).subtract(tjFlowingWater.getRefundPrice()));
+        tjFlowingWater.setCopeWith(flowingWater.getCopeWith());
+        tjFlowingWater.setRemarks("宸查��璐�");
+        if (flowingWaterService.save(tjFlowingWater)) {
+            flowingWater.setRemarks("宸查��璐�");
+            flowingWaterService.updateById(flowingWater);
+            TjOrder order = orderService.getById(tjFlowingWater.getOrderId());
+            LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
+            wq1.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
+            wq1.isNotNull(TjOrderDetail::getFlowingWaterId);
+            List<TjOrderDetail> list = detailService.list(wq1);
+            if (null != list && list.size() > 0) {
+                for (TjOrderDetail orderDetail : list) {
+                    orderDetail.setFlowingWaterId(null);
+                    detailService.updateById(orderDetail);
+                    LambdaQueryWrapper<TjChargingStandard> wqq = new LambdaQueryWrapper<>();
+                    wqq.eq(TjChargingStandard::getTjNum, order.getTjNumber());
+                    wqq.eq(TjChargingStandard::getProId, orderDetail.getProId());
+                    chargingStandardService.remove(wqq);
+                }
+            }
+            return AjaxResult.success("閫�璐规垚鍔�");
+        }
+        return AjaxResult.error();
+    }
+}
diff --git a/ltkj-admin/src/main/resources/application.yml b/ltkj-admin/src/main/resources/application.yml
index ce03beb..977bc19 100644
--- a/ltkj-admin/src/main/resources/application.yml
+++ b/ltkj-admin/src/main/resources/application.yml
@@ -124,10 +124,14 @@
   header: Authorization
   # 浠ょ墝瀵嗛挜
   secret: xaltjdkjyxgs_sjh&1987
+
+  secret_key: ltkj_xaltjdkjsjh
   # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
   expireTime: 180
   # 鏄惁鍏佽璐︽埛澶氱粓绔悓鏃剁櫥褰曪紙true鍏佽 false涓嶅厑璁革級
   soloLogin: true
+  #鏄惁寮�鍚櫥褰曟椂鍒ゆ柇鍟嗘埛绉橀挜鏄惁杩囨湡
+  secret_key_login: true
 
 # MyBatis Plus閰嶇疆
 mybatis-plus:
diff --git a/ltkj-admin/src/test/java/zjhTest.java b/ltkj-admin/src/test/java/zjhTest.java
index b5caa2e..dd3150e 100644
--- a/ltkj-admin/src/test/java/zjhTest.java
+++ b/ltkj-admin/src/test/java/zjhTest.java
@@ -1,11 +1,15 @@
 
+import cn.hutool.core.date.DateUtil;
 import com.ltkj.LtkjApplication;
 import com.ltkj.common.core.redis.RedisCache;
+import com.ltkj.common.utils.SecurityUtils;
+import com.ltkj.hosp.domain.DictHosp;
 import com.ltkj.hosp.service.*;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -14,6 +18,8 @@
 import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -25,31 +31,39 @@
 @Slf4j
 @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
 public class zjhTest {
-
-    @Autowired
-    private ITjGroupingProService groupingProService;
-    @Autowired
-    private ITjProjectService projectService;
-
-    @Resource
-    private ITjOrderService tjOrderService;
-    @Resource
-    private ITjOrderDetailService tjOrderDetailService;
-    @Resource
-    private ITjOrderRemarkService remarkService;
-
-    @Resource
-    private RedisCache redisCache;
-
-    @Autowired
-    public RedisTemplate<String,String> redisTemplate;
-    @Resource
-    private StringRedisTemplate stringRedisTemplate;
-
+//
+//    @Autowired
+//    private ITjGroupingProService groupingProService;
+//    @Autowired
+//    private ITjProjectService projectService;
+//
+//    @Resource
+//    private ITjOrderService tjOrderService;
+//    @Resource
+//    private ITjOrderDetailService tjOrderDetailService;
+//    @Resource
+//    private ITjOrderRemarkService remarkService;
+//
+//    @Resource
+//    private RedisCache redisCache;
+//
+//    @Autowired
+//    public RedisTemplate<String,String> redisTemplate;
+//    @Resource
+//    private StringRedisTemplate stringRedisTemplate;
+@Resource
+private IDictHospService dictHospService;
+    @Value("${token.secret_key}")
+    private String secret;
     @Test
     public void test() {
-//        redisCache.setCacheObject("璧典匠璞�","hahahahaha");
-//        log.info("鍢垮樋!!!");
+//        List<DictHosp> list = dictHospService.list();
+//        for (DictHosp dictHosp : list) {
+//            String mallMerchantSecretKey = SecurityUtils.getMallMerchantSecretKey(secret,dictHosp.getHospAreaId(),dictHosp.getAreaid(), dictHosp.getExpirationTime());
+//            dictHosp.setSecretKey(mallMerchantSecretKey);
+//            dictHosp.setExpirationTime(DateUtil.offsetDay(new Date(),30));
+//            dictHospService.updateById(dictHosp);
+//        }
     }
 
 
diff --git a/ltkj-common/src/main/java/com/ltkj/common/core/domain/model/LoginUser.java b/ltkj-common/src/main/java/com/ltkj/common/core/domain/model/LoginUser.java
index 2cd01af..67e2b2f 100644
--- a/ltkj-common/src/main/java/com/ltkj/common/core/domain/model/LoginUser.java
+++ b/ltkj-common/src/main/java/com/ltkj/common/core/domain/model/LoginUser.java
@@ -77,6 +77,8 @@
      */
     private SysUser user;
 
+    private String message;
+
     /*    */
 
     /**
@@ -96,6 +98,16 @@
     {
         this.wxUser = wxUser;
     }*/
+
+    public String getMessage()
+    {
+        return message;
+    }
+
+    public void setMessage(String message)
+    {
+        this.message = message;
+    }
     public Long getDeptId() {
         return deptId;
     }
diff --git a/ltkj-common/src/main/java/com/ltkj/common/exception/CustomException.java b/ltkj-common/src/main/java/com/ltkj/common/exception/CustomException.java
new file mode 100644
index 0000000..2d6cc58
--- /dev/null
+++ b/ltkj-common/src/main/java/com/ltkj/common/exception/CustomException.java
@@ -0,0 +1,41 @@
+package com.ltkj.common.exception;
+
+/**
+ * 鑷畾涔夊紓甯�
+ */
+public class CustomException extends RuntimeException
+{
+    private static final long serialVersionUID = 1L;
+
+    private Integer code;
+
+    private String message;
+
+    public CustomException(String message)
+    {
+        this.message = message;
+    }
+
+    public CustomException(String message, Integer code)
+    {
+        this.message = message;
+        this.code = code;
+    }
+
+    public CustomException(String message, Throwable e)
+    {
+        super(message, e);
+        this.message = message;
+    }
+
+    @Override
+    public String getMessage()
+    {
+        return message;
+    }
+
+    public Integer getCode()
+    {
+        return code;
+    }
+}
diff --git a/ltkj-common/src/main/java/com/ltkj/common/exception/user/SecretKeyException.java b/ltkj-common/src/main/java/com/ltkj/common/exception/user/SecretKeyException.java
new file mode 100644
index 0000000..ade41bb
--- /dev/null
+++ b/ltkj-common/src/main/java/com/ltkj/common/exception/user/SecretKeyException.java
@@ -0,0 +1,43 @@
+package com.ltkj.common.exception.user;
+
+/**
+ * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
+ * @Author: zjh
+ * @Date: 2023/10/8 14:00
+ */
+public class SecretKeyException extends RuntimeException{
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer code;
+
+    private String message;
+
+    public SecretKeyException(String message)
+    {
+        this.message = message;
+    }
+
+    public SecretKeyException(String message, Integer code)
+    {
+        this.message = message;
+        this.code = code;
+    }
+
+    public SecretKeyException(String message, Throwable e)
+    {
+        super(message, e);
+        this.message = message;
+    }
+
+    @Override
+    public String getMessage()
+    {
+        return message;
+    }
+
+    public Integer getCode()
+    {
+        return code;
+    }
+}
diff --git a/ltkj-common/src/main/java/com/ltkj/common/utils/SecurityUtils.java b/ltkj-common/src/main/java/com/ltkj/common/utils/SecurityUtils.java
index 6770a39..d1c34ea 100644
--- a/ltkj-common/src/main/java/com/ltkj/common/utils/SecurityUtils.java
+++ b/ltkj-common/src/main/java/com/ltkj/common/utils/SecurityUtils.java
@@ -1,11 +1,17 @@
 package com.ltkj.common.utils;
 
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.crypto.SecureUtil;
+import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
+import cn.hutool.crypto.symmetric.SymmetricCrypto;
 import com.ltkj.common.constant.HttpStatus;
 import com.ltkj.common.exception.ServiceException;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import com.ltkj.common.core.domain.model.LoginUser;
+
+import java.util.Date;
 
 /**
  * 瀹夊叏鏈嶅姟宸ュ叿绫�
@@ -96,4 +102,28 @@
     public static boolean isAdmin(Long userId) {
         return userId != null && 1L == userId;
     }
+
+    public static String getMallMerchantSecretKey(String secret,String certificateNumber, String number, Date date) {
+        String secrets = SecureUtil.md5(secret);
+        String certificateNumbers = SecureUtil.md5(certificateNumber);
+        String taxNumber = SecureUtil.md5(number);
+        String expirationTime = SecureUtil.md5(DateUtil.format(DateUtil.endOfDay(date),"yyyy-MM-dd HH:mm:ss"));
+        //闅忔満鐢熸垚瀵嗛挜
+        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, secret.getBytes());
+        return aes.encryptHex(secrets+certificateNumbers+taxNumber+expirationTime);
+    }
+
+    public static boolean matchesMallMerchantSecretKey(String secret,String certificateNumber, String number, Date date,String ordSecretKey) {
+        String secrets = SecureUtil.md5(secret);
+        String certificateNumbers = SecureUtil.md5(certificateNumber);
+        String taxNumber = SecureUtil.md5(number);
+        String expirationTime = SecureUtil.md5(DateUtil.format(DateUtil.endOfDay(date),"yyyy-MM-dd HH:mm:ss"));
+        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, secret.getBytes());
+        String encryptHex = aes.encryptHex(secrets+certificateNumbers+taxNumber+expirationTime);
+
+        if(encryptHex.equals(ordSecretKey)){
+            return true;
+        }
+        return false;
+    }
 }
diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java b/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java
index 3ff7c18..171dd14 100644
--- a/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java
+++ b/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java
@@ -2,16 +2,24 @@
 
 import javax.annotation.Resource;
 
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ltkj.common.constant.CacheConstants;
+import com.ltkj.common.core.domain.entity.SysDept;
+import com.ltkj.common.exception.CustomException;
 import com.ltkj.common.exception.user.CaptchaException;
 import com.ltkj.common.exception.user.CaptchaExpireException;
+import com.ltkj.common.exception.user.SecretKeyException;
 import com.ltkj.common.utils.*;
 import com.ltkj.common.utils.sign.RsaUtils;
 import com.ltkj.framework.config.JwtUtils;
 import com.ltkj.framework.config.UserHoder;
+import com.ltkj.hosp.domain.DictHosp;
 import com.ltkj.hosp.domain.TjCustomer;
+import com.ltkj.hosp.service.IDictHospService;
 import com.ltkj.hosp.service.ITjCustomerService;
+import com.ltkj.system.service.ISysDeptService;
 import com.ltkj.system.service.ISysMenuService;
 import com.ltkj.system.service.SysParametersDisposeService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +41,7 @@
 import com.ltkj.framework.security.context.AuthenticationContextHolder;
 import com.ltkj.system.service.ISysUserService;
 
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -60,13 +69,22 @@
 
     @Resource
     private ISysMenuService menuService;
-
+    @Resource
+    private IDictHospService hospService;
+    @Autowired
+    private ISysDeptService deptService;
     @Autowired
     private SysParametersDisposeService parametersDisposeService;
 
     // 鏄惁鍏佽璐︽埛澶氱粓绔悓鏃剁櫥褰曪紙true鍏佽 false涓嶅厑璁革級
     @Value("${token.soloLogin}")
     private boolean soloLogin;
+
+    @Value("${token.secret_key}")
+    private String secret;
+
+    @Value("${token.secret_key_login}")
+    private boolean secretKeyLogin;
 
 
     /**
@@ -116,6 +134,41 @@
         LoginUser loginUser = (LoginUser) authentication.getPrincipal();
         recordLoginInfo(Long.valueOf(loginUser.getUserId()));
 
+        //鏍¢獙鍟嗗杩囨湡鍚�
+        if (secretKeyLogin)
+        {
+            Long userId =loginUser.getUser().getUserId();
+            SysUser user = userService.getById(userId);
+            if(null !=user && null !=user.getDeptId()){
+//                loginUser.getUser().setOrgId(user.getOrgId());
+                if(!SecurityUtils.isAdmin(user.getUserId())){
+                    SysDept sysDept = deptService.getById(user.getDeptId());
+                    if (null != sysDept) {
+                        DictHosp dictHosp = hospService.getById(sysDept.getHospId());
+                        if(null !=dictHosp && dictHosp.getSecretKey() !=null && dictHosp.getExpirationTime() !=null){
+                            if (!SecurityUtils.matchesMallMerchantSecretKey(secret,dictHosp.getHospAreaId(),dictHosp.getAreaid(),
+                                    dictHosp.getExpirationTime(),dictHosp.getSecretKey())) {
+                                throw new SecretKeyException("鍟嗗宸茶繃鏈熻缁垂浣跨敤");
+                            }
+                            long between = DateUtil.between(new Date(), DateUtil.endOfDay(dictHosp.getExpirationTime()), DateUnit.DAY);
+                            if(between<=30){
+                                loginUser.setMessage("杩樻湁 "+between+" 澶╁埌鏈� 璇锋敞鎰忕画璐�! 浠ュ厤褰卞搷姝e父浣跨敤!");
+                            }else {
+                                loginUser.setMessage(null);
+                            }
+
+                        }else {
+                            throw new SecretKeyException("璇风即璐逛娇鐢�");
+                        }
+                    }
+                }
+
+            }else {
+                throw new CustomException("璇风粦瀹氬晢瀹�");
+            }
+
+        }
+
 //       闄愬埗璐︽埛涓嶅厑璁稿缁堢鐧诲綍
         if (!soloLogin) {
             // 濡傛灉鐢ㄦ埛涓嶅厑璁稿缁堢鍚屾椂鐧诲綍锛屾竻闄ょ紦瀛樹俊鎭�
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/DictHosp.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/DictHosp.java
index 70f801b..e56879b 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/DictHosp.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/DictHosp.java
@@ -167,6 +167,12 @@
     @ApiModelProperty(value = "鍥剧墖")
     private String imgbase64;
 
+    //绉橀挜
+    private String secretKey;
+    //鍒版湡鏃堕棿
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date expirationTime;
+
 
     @Override
     public String toString() {
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjFlowingWater.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjFlowingWater.java
index 48ad88a..8d95662 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjFlowingWater.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjFlowingWater.java
@@ -165,6 +165,8 @@
     @ApiModelProperty(value = "鏄惁缁撹处")
     private String isCheckout;
 
+    private String remarks;
+
 
     @Override
     public String toString() {
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java
index e8afa31..a3a5d06 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java
@@ -75,7 +75,8 @@
     public int deleteTjOrderByOrderIds(Long[] orderIds);
 
 
-    List<TjOrder> getOrderList(Integer cusId);
+    @Select(" select * from tj_order where 1 = 1 and deleted=0  and user_id = #{cusId}")
+    List<TjOrder> getOrderList(Long cusId);
 
 
     List<TjOrder> getOrderList1();
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java
index 7c85d23..d254c98 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java
@@ -77,7 +77,7 @@
      * @param cusId
      * @return
      */
-    public List<TjOrder> getOrderList(Integer cusId);
+    public List<TjOrder> getOrderList(Long cusId);
 
 
     public List<TjOrder> getOrderList1();
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java
index 306255a..0385e19 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java
@@ -143,7 +143,7 @@
     }
 
     @Override
-    public List<TjOrder> getOrderList(Integer cusId) {
+    public List<TjOrder> getOrderList(Long cusId) {
         return tjOrderMapper.getOrderList(cusId);
     }
 
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/NewFlowingWaterVo.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/NewFlowingWaterVo.java
new file mode 100644
index 0000000..897dc6a
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/NewFlowingWaterVo.java
@@ -0,0 +1,42 @@
+package com.ltkj.hosp.vodomain;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
+ * @Author: zjh
+ * @Date: 2023/10/12 09:49
+ */
+
+@Data
+public class NewFlowingWaterVo {
+
+
+    //濮撳悕
+    private String name;
+
+    //鎵嬫満鍙�
+    private String phone;
+
+    //浣撴椤圭洰
+    private String tjPro;
+
+    //鏁伴噺
+    private String number;
+
+    //搴旀敹
+    private BigDecimal ys;
+
+    //鎶樻墸
+    private String zk;
+
+    //瀹炴敹
+    private BigDecimal ss;
+
+    //浠樻绫诲瀷
+    private String type;
+
+}
diff --git a/ltkj-hosp/src/main/resources/mapper/hosp/TjOrderMapper.xml b/ltkj-hosp/src/main/resources/mapper/hosp/TjOrderMapper.xml
index 9b63472..ce187ce 100644
--- a/ltkj-hosp/src/main/resources/mapper/hosp/TjOrderMapper.xml
+++ b/ltkj-hosp/src/main/resources/mapper/hosp/TjOrderMapper.xml
@@ -281,7 +281,7 @@
     </delete>
 
 
-    <select id="getOrderList" parameterType="Integer" resultMap="TjOrderResult">
+    <select id="getOrderList" parameterType="java.lang.Long" resultMap="TjOrderResult">
         select *
         from tj_order
         where 1 = 1

--
Gitblit v1.8.0