From c4a098e3f88bc5071e36b92b9e5dcceb51129957 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 01 六月 2023 23:25:07 +0800
Subject: [PATCH] 同步后台代码

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java |   71 ++++++++++++++++++++++++++++++++---
 1 files changed, 65 insertions(+), 6 deletions(-)

diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java
index d6a3819..5e692d4 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java
@@ -1,10 +1,13 @@
 package com.stylefeng.guns.modular.system.controller.general;
 
+import cn.hutool.crypto.SecureUtil;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.base.tips.SuccessTip;
+import com.stylefeng.guns.core.common.constant.state.ManagerStatus;
 import com.stylefeng.guns.core.exception.GunsException;
 import com.stylefeng.guns.core.exception.ServiceExceptionEnum;
+import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.core.util.DateUtil;
 import com.stylefeng.guns.modular.system.controller.resp.TAgentResp;
 import com.stylefeng.guns.modular.system.controller.util.ExcelUtil;
@@ -13,6 +16,7 @@
 import com.stylefeng.guns.modular.system.enums.UserTypeEnum;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.util.RedisUtil;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -20,6 +24,8 @@
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -58,13 +64,20 @@
 
     @Autowired
     private ITDriverService tDriverService;
+    @Autowired
+    private ITDriverWorkService tDriverWorkService;
+    @Autowired
+    private IUserService userService;
+    @Autowired
+    private RedisUtil redisUtil;
 
 
     /**
      * 跳转到首页
      */
     @RequestMapping("")
-    public String index() {
+    public String index(Model model) {
+        model.addAttribute("userType", Objects.requireNonNull(ShiroKit.getUser()).getRoleType());
         return PREFIX + "tAgent.html";
     }
 
@@ -130,8 +143,8 @@
      */
     @RequestMapping(value = "/list")
     @ResponseBody
-    public Object list(String principal,String principalPhone,String createTime) {
-        EntityWrapper<TAgent> wrapper = tAgentService.getAgentWrapper(principal,principalPhone,createTime);
+    public Object list(String principal,String principalPhone,String createTime,Integer status) {
+        EntityWrapper<TAgent> wrapper = tAgentService.getAgentWrapper(principal,principalPhone,createTime,status);
         List<TAgent> tAgents = tAgentService.selectList(wrapper);
         // 代理商列表数据封装(导出共用)
         return tAgentService.getAgentResp(tAgents);
@@ -151,6 +164,7 @@
      */
     @RequestMapping(value = "/add")
     @ResponseBody
+    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)
     public Object add(TAgent tAgent) {
 
         String[] split1 = tAgent.getArea().split("/");
@@ -160,6 +174,14 @@
             return new SuccessTip(500,"该代理商已存在!");
         }
 
+        int count1 = userService.selectCount(new EntityWrapper<User>().eq("account", tAgent.getAccount()));
+        if (count1 > 0){
+            return new SuccessTip(500,"该账号已存在!");
+        }
+
+        tAgent.setPrincipal(tAgent.getPrincipal().replace(" ",""));
+
+
         String[] split = tAgent.getAreaId().split("/");
         // 查询省市
         // 黑龙江省/大兴安岭地区
@@ -168,9 +190,30 @@
         tAgent.setProvinceName(province.getName());
         tAgent.setProvinceCode(province.getCode());
         TRegion city = tRegionService.selectById(split[1]);
+        if(Objects.isNull(city)){
+            city = tRegionService.selectOne(new EntityWrapper<TRegion>()
+                    .eq("name",split[1])
+                    .last("LIMIT 1"));
+        }
         tAgent.setCityName(city.getName());
         tAgent.setCityCode(city.getCode());
         tAgentService.insert(tAgent);
+
+        //添加User对象
+        User user = new User();
+        user.setAccount(tAgent.getAccount());
+        user.setSalt(ShiroKit.getRandomSalt(5));
+        user.setPassword(ShiroKit.md5(tAgent.getPassword(), user.getSalt()));
+        user.setStatus(ManagerStatus.OK.getCode());
+        user.setRoleid("2");
+        user.setDeptid(25);
+        user.setCreatetime(new Date());
+        user.setRoleType(3);
+        user.setObjectId(tAgent.getId());
+        user.setName(tAgent.getPrincipal());
+        user.setSex(1);
+        userService.insert(user);
+
         return SUCCESS_TIP;
     }
 
@@ -204,12 +247,27 @@
         for (TDriver tDriver : list) {
             if(1 == status){
                 tDriver.setStatus(2);
+                String value = redisUtil.getValue("DRIVER_" + tDriver.getPhone());
+                redisUtil.remove(value);
+                redisUtil.remove("DRIVER_" + tDriver.getPhone());
+                TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>()
+                        .eq("driverId", tDriver.getId())
+                        .eq("status", 1)
+                        .orderBy("workTime", false)
+                        .last("LIMIT 1"));
+                if(Objects.nonNull(tDriverWork)){
+                    tDriverWork.setStatus(2);
+                    tDriverWork.setOffWorkTime(new Date());
+                    tDriverWorkService.updateById(tDriverWork);
+                }
             }
             if(2 == status){
                 tDriver.setStatus(1);
             }
         }
-        tDriverService.updateBatchById(list);
+        if(!CollectionUtils.isEmpty(list)){
+            tDriverService.updateBatchById(list);
+        }
         return SUCCESS_TIP;
     }
 
@@ -219,6 +277,7 @@
     @RequestMapping(value = "/update")
     @ResponseBody
     public Object update(TAgent tAgent) {
+        tAgent.setPrincipal(tAgent.getPrincipal().replace(" ",""));
         tAgentService.updateById(tAgent);
         return SUCCESS_TIP;
     }
@@ -258,7 +317,7 @@
     @ApiOperation(value = "导出代理商列表",notes="导出代理商列表")
     @RequestMapping(value = "/export")
     @ResponseBody
-    public void export(String principal,String principalPhone,String createTime, HttpServletResponse response) {
+    public void export(String principal,String principalPhone,Integer status,String createTime, HttpServletResponse response) {
         try {
             Date date = new Date();
             DateFormat format = new SimpleDateFormat("yyyyMMdd");
@@ -266,7 +325,7 @@
             String fileName = "Agent"+time1+".xls";
             String[] title = new String[] {"时间","姓名","联系电话","代理区域","客服电话","订单数量",
                     "有效订单","已发放优惠券","已使用优惠券","累计优惠券金额","司机充值","司机数","状态"};
-            EntityWrapper<TAgent> wrapper = tAgentService.getAgentWrapper(principal,principalPhone,createTime);
+            EntityWrapper<TAgent> wrapper = tAgentService.getAgentWrapper(principal,principalPhone,createTime,status);
             // 是否异常
             List<TAgent> list = tAgentService.selectList(wrapper);
 

--
Gitblit v1.7.1