shenhao преди 4 години
родител
ревизия
f6b5d3b759

+ 0 - 2
src/main/java/com/ssj/SysApp.java

@@ -1,6 +1,5 @@
 package com.ssj;
 
-import org.springframework.amqp.rabbit.annotation.EnableRabbit;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.builder.SpringApplicationBuilder;
@@ -12,7 +11,6 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 @SpringBootApplication(scanBasePackages = {"com.ssj"})
 @EnableJpaRepositories
 @ServletComponentScan
-@EnableRabbit
 @EnableScheduling
 public class SysApp extends SpringBootServletInitializer {
 	

+ 94 - 0
src/main/java/com/ssj/agent/controller/AgentController.java

@@ -8,9 +8,17 @@ import com.ssj.agent.dao.AgentEntity;
 import com.ssj.agent.service.IAgentService;
 import com.ssj.bean.common.framework.core.domain.Response;
 import com.ssj.bean.sys.organization.domain.Organization;
+import com.ssj.bean.sys.role.domain.Admin;
+import com.ssj.bean.sys.role.domain.AdminRole;
+import com.ssj.bean.sys.role.domain.Role;
 import com.ssj.bean.weixin.libmy.domain.TbLibJoin;
+import com.ssj.dao.sys.role.dao.AdminRoleDao;
 import com.ssj.framework.basic.common.bean.SplitPage;
+import com.ssj.framework.basic.utils.MD5;
 import com.ssj.framework.core.common.controller.BaseController;
+import com.ssj.framework.core.util.PasswordUtil;
+import com.ssj.service.sys.role.service.AdminService;
+import com.ssj.service.sys.role.service.RoleService;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,6 +50,15 @@ public class AgentController extends BaseController {
     @Autowired
     private IAgentService agentService;
 
+    @Autowired
+    private RoleService roleService;
+
+    @Autowired
+    private AdminService adminService;
+
+    @Autowired
+    private AdminRoleDao adminRoleDao;
+
     /**
      * 栏目主页面
      * @return
@@ -107,6 +124,30 @@ public class AgentController extends BaseController {
             }
             org.setCreateTime(new Date());
             org.setSubCount(0);
+            org.setAdminName(org.getAgentName());
+            if(org.getType()!=3){
+                //创建登录账号 使用
+                Admin admin = adminService.getByLoginName(org.getAgentName());
+                if(Objects.nonNull(admin)){
+                    return response.failure(org.getAgentName()+"此名字已经存在,请更换重新添加!");
+                }
+                admin.setLoginName(org.getAgentName());
+                admin.setNickName(org.getAgentName());
+                admin.setStatus(1);
+                String md5Pwd = MD5.getMD5("123456".getBytes());
+                Date now = new Date();
+                admin.setPassword(PasswordUtil.initPassword(md5Pwd));
+                admin.setUpdateTime(now);
+                admin.setCreateTime(now);
+                admin = adminService.save(admin);
+                //赋权限
+                Role role = roleService.findRoleByName("销售以及代理");
+                AdminRole adminRole = new AdminRole();
+                adminRole.setAdminId(admin.getId());
+                adminRole.setRoleId(role.getId());
+                adminRole.setCreateTime(now);
+                adminRoleDao.save(adminRole);
+            }
         }
         org.setUpdateTime(new Date());
         org.setLever(agentService.getById(org.getUpId()).getLever()+1);
@@ -127,6 +168,14 @@ public class AgentController extends BaseController {
         agent.setUpdateTime(new Date());
         agentService.save(agent);
         agentService.changeSubCount(pId, false);
+
+        //删除admin账号
+        Admin admin = adminService.getByLoginName(agent.getAdminName());
+        if(admin !=null){
+            admin.setStatus(2);
+            admin.setUpdateTime(new Date());
+            adminService.save(admin);
+        }
         response.success();
         return response;
     }
@@ -166,6 +215,51 @@ public class AgentController extends BaseController {
         return "sys/agent/monthList";
     }
 
+    @RequestMapping("/agentLibList")
+    public String agentLibList(Model model,@RequestParam(required = false, defaultValue = "10") int pageSize,
+                                @RequestParam(required = false, defaultValue = "1") int pageNo){
+        Map<String, Object> params = new HashMap<>();
+        params.put("name",request.getParameter("name")==null?"":request.getParameter("name"));
+
+        Admin admin = (Admin)request.getSession().getAttribute("admin");
+        if(!"admin".equals(admin.getLoginName())){
+            //获取登陆人的agent信息
+            AgentEntity entity = agentService.findAgentByAdminName(admin.getLoginName());
+            if(entity!=null){
+                if(entity.getType() == 2){
+                    params.put("upId",entity.getUpId());
+                }else{
+                    params.put("agentId",entity.getId());
+                }
+            }else{
+                params.put("agentId","-1");
+            }
+
+        }
+        Page<Map<String,Object>> page= agentService.agentLibList(params, initPage(pageNo,pageSize));
+        SplitPage sp = initPage(pageNo,pageSize,params,(int) page.getTotalElements());
+        model.addAttribute("list", page.getContent());
+        model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
+        model.addAttribute("page", sp);
+        model.addAttribute("search", params);
+        return "sys/agent/libList";
+    }
+
+    @RequestMapping("/libStudentList")
+    public String libStudentList(Model model,@RequestParam(required = false, defaultValue = "10") int pageSize,
+                                 @RequestParam(required = false, defaultValue = "1") int pageNo){
+        Map<String, Object> params = new HashMap<>();
+        params.put("name",request.getParameter("name")==null?"":request.getParameter("name"));
+        params.put("libId",request.getParameter("libId"));
+        Page<Map<String,Object>> page= agentService.libStudentList(params, initPage(pageNo,pageSize));
+        SplitPage sp = initPage(pageNo,pageSize,params,(int) page.getTotalElements());
+        model.addAttribute("list", page.getContent());
+        model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
+        model.addAttribute("page", sp);
+        model.addAttribute("search", params);
+        return "sys/agent/vipList";
+    }
+
     @RequestMapping(value = "/exportExcel", method = RequestMethod.POST)
     @ResponseBody
     public  void exportExcel(){

+ 3 - 0
src/main/java/com/ssj/agent/dao/AgentDao.java

@@ -31,4 +31,7 @@ public interface AgentDao extends JpaRepository<AgentEntity, String> {
 
     @Query(nativeQuery = true,value ="select count(1) from tb_agent where status=1 and agent_name REGEXP ?1 " )
     Long countByLikeName(String name);
+
+    @Query(nativeQuery = true,value = "select * from tb_agent where admin_name=?1")
+    AgentEntity findAgentByAdminName(String loginName);
 }

+ 1 - 0
src/main/java/com/ssj/agent/dao/AgentEntity.java

@@ -54,6 +54,7 @@ public class AgentEntity extends BaseEntity {
      * 销售类型
      * 1、销售
      * 2、管理人员
+     * 3、机构
      */
     private Integer type;
 

+ 4 - 0
src/main/java/com/ssj/agent/dao/AgentQueryDao.java

@@ -17,4 +17,8 @@ public interface AgentQueryDao {
     List<AgentEntity> findByLikeName(String name, Integer pageNo, Integer pageSize);
 
     Page<Map<String, Object>> agentMonthList(Map<String, Object> params, Pageable initPage);
+
+    Page<Map<String, Object>> agentLibList(Map<String, Object> params, Pageable initPage);
+
+    Page<Map<String, Object>> libStudentList(Map<String, Object> params, Pageable initPage);
 }

+ 47 - 1
src/main/java/com/ssj/agent/dao/impl/AgentQueryDaoImpl.java

@@ -12,14 +12,16 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Repository;
 
+import javax.naming.Name;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * @author sh
  * @className AgentQueryDaoImpl
- * @description TODO
+ * @description queryDaoImpl
  * @date 2021/1/22
  */
 @Repository
@@ -66,4 +68,48 @@ public class AgentQueryDaoImpl implements AgentQueryDao {
         selSql.append(" order by t.create_time asc");
         return dao.findPage(selSql.toString(),queryParams.toArray(),initPage);
     }
+
+    @Override
+    public Page<Map<String, Object>> agentLibList(Map<String, Object> params, Pageable initPage) {
+        StringBuilder sql = new StringBuilder();
+        List<Object> queryParams = new ArrayList<>();
+        sql.append("select t3.id,t.agent_name,t3.league_name,t1.sign_time,t1.end_sign_time,t1.lib_service,  ");
+        sql.append("(select count(1) from tb_lib_vip a where a.lib_id = t1.lib_id) as stu_count  ");
+        sql.append(" from tb_agent t");
+        sql.append(" join fx_merchant_meal_order t1 on t.id = t1.agent_id \n");
+        sql.append(" left join fx_merchant t2 on t1.merchant_id = t2.id \n");
+        sql.append(" join tb_lib_join t3 on t2.lib_id = t3.id ");
+        sql.append(" where t11.pos_type = 3 ");
+
+        if(!StringUtil.isEmpty(params.get("name"))){
+            sql.append(" and t.agent_name like concat('%',?,'%')");
+            queryParams.add(params.get("name"));
+        }
+        if(!StringUtil.isEmpty(params.get("upId"))){
+            sql.append(" and t.up_id = ? ");
+            queryParams.add(params.get("upId"));
+        }
+        if(!StringUtil.isEmpty(params.get("agentId"))){
+            sql.append(" and t.id = ? ");
+            queryParams.add(params.get("agentId"));
+        }
+        sql.append(" order by t1.create_time desc");
+        return dao.findPage(sql.toString(),queryParams.toArray(),initPage);
+    }
+
+    @Override
+    public Page<Map<String, Object>> libStudentList(Map<String, Object> params, Pageable initPage) {
+        StringBuilder sql = new StringBuilder();
+        List<Object> queryParams = new ArrayList<>();
+        sql.append("select t.child_name,t11.league_name,t.parent_name,t12.start_time,t12.end_time from tb_lib_vip t");
+        sql.append(" left join tb_lib_join t11 on t.lib_id = t11.id");
+        sql.append(" left join tb_lib_vip_service t12 on t.id = t12.vip_id");
+        sql.append(" where t.lib_id = ? ");
+        queryParams.add(params.get("libId"));
+        if(StringUtil.isNotBlank(MapUtils.getString(params,"name"))){
+            sql.append(" and t.child_name REGEXP ? ");
+            queryParams.add(params.get("name"));
+        }
+        return dao.findPage(sql.toString(),queryParams.toArray(),initPage);
+    }
 }

+ 23 - 0
src/main/java/com/ssj/agent/service/IAgentService.java

@@ -30,4 +30,27 @@ public interface IAgentService extends BaseService<AgentEntity,String> {
     List<AgentEntity> findByLikeName(String name, Integer pageNo, Integer pageSize);
 
     Page<Map<String, Object>> agentMonthList(Map<String, Object> params, Pageable initPage);
+
+    /**
+     * 登陆人查看下属或自己订单关联的校区数据
+     * @param params
+     * @param initPage
+     * @return
+     */
+    Page<Map<String, Object>> agentLibList(Map<String, Object> params, Pageable initPage);
+
+    /**
+     * 通过登录名查询销售人员
+     * @param loginName
+     * @return
+     */
+    AgentEntity findAgentByAdminName(String loginName);
+
+    /**
+     * 查看学生列表
+     * @param params
+     * @param initPage
+     * @return
+     */
+    Page<Map<String, Object>> libStudentList(Map<String, Object> params, Pageable initPage);
 }

+ 15 - 0
src/main/java/com/ssj/agent/service/impl/AgentServiceImpl.java

@@ -101,4 +101,19 @@ public class AgentServiceImpl extends BaseServiceImpl<AgentEntity,String> implem
         }
         return page;
     }
+
+    @Override
+    public Page<Map<String, Object>> agentLibList(Map<String, Object> params, Pageable initPage) {
+        return queryDao.agentLibList(params,initPage);
+    }
+
+    @Override
+    public AgentEntity findAgentByAdminName(String loginName) {
+        return dao.findAgentByAdminName(loginName);
+    }
+
+    @Override
+    public Page<Map<String, Object>> libStudentList(Map<String, Object> params, Pageable initPage) {
+        return queryDao.libStudentList(params,initPage);
+    }
 }

+ 3 - 2
src/main/java/com/ssj/dao/sys/role/dao/RoleDao.java

@@ -35,6 +35,7 @@ public interface RoleDao extends JpaRepository<Role, String>{
 	@Query(nativeQuery = true, value = "delete from tb_role_weixin_ref  where role_id =?1  ")
 	@Modifying
 	public void deleteWxRole(String id);
-	
-	
+
+	@Query(nativeQuery = true, value = "select *  from sys_role  where name =?1  ")
+    Role findRoleByName(String roleName);
 }

+ 6 - 0
src/main/java/com/ssj/service/sys/role/service/RoleService.java

@@ -73,4 +73,10 @@ public interface RoleService extends BaseService<Role, String> {
 	 */
 	Page<Map<String, Object>> findForPushPage(Map<String, Object> params, Pageable initPage);
 
+	/**
+	 * 通过角色名称查询
+	 * @param roleName
+	 * @return
+	 */
+	Role findRoleByName(String roleName);
 }

+ 5 - 0
src/main/java/com/ssj/service/sys/role/service/impl/RoleServiceImpl.java

@@ -133,4 +133,9 @@ public class RoleServiceImpl  extends BaseServiceImpl<Role, String> implements R
 		
 		return roleQueryDao.findForPushPage(params,initPage);
 	}
+
+	@Override
+	public Role findRoleByName(String roleName) {
+		return roleDao.findRoleByName(roleName);
+	}
 }

+ 58 - 0
src/main/resources/templates/sys/agent/vipList.html

@@ -0,0 +1,58 @@
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+<title>私塾家</title>
+<script th:include="sys/common/metaCSS" th:remove="tag"></script> 
+<script th:include="sys/common/metaJS" th:remove="tag"></script> 
+</head>
+<body>
+	<div class="rightinfo">
+		<form id="seachform" th:action="@{/sys/agent/list.html}" method="post">
+		       <input type="hidden" name="libId" th:value="${search.get('libId')}" />
+				<ul class="seachform">
+					<li>
+						<label>名称</label>
+						<input name="name" type="text" class="scinput" th:value="${search.get('name')}"/>
+					</li>
+					<li>
+						<label>&nbsp;</label>
+						<input type="button" class="scbtn" value="查询" />
+					</li>
+				</ul>
+		</form>
+	
+		
+		<table class="imgtable">
+	        <thead>
+	            <tr>
+	                <th style="width: 50px;">序号</th>
+	                <th>校区</th>
+	                <th>学生姓名</th>
+	                <th>家长姓名</th>
+	                <th>服务开始时间</th>
+	                <th>服务结束时间</th>
+	            </tr>
+	        </thead>
+            <tbody>
+				
+				<tr th:each="item:${list}" >
+					<td th:text="${itemStat.count}" ></td>
+					<td th:text="${item.league_name}" ></td>
+					<td th:text="${item.child_name}" ></td>
+					<td th:text="${item.parent_name}" ></td>
+					<td><p th:text="''+${#calendars.format(item.start_time,'yyyy-MM-dd HH:mm:ss')}"></p></td>
+					<td><p th:text="''+${#calendars.format(item.end_time,'yyyy-MM-dd HH:mm:ss')}"></p></td>
+			   </tr>
+			
+             </tbody>
+        </table>
+          <!-- 分页 -->
+		<div class="pagin">
+	    	<div class="message">共<i class="blue">[[${page.rowCnt}]]</i>条记录,当前显示第&nbsp;<i class="blue">[[${page.pageNo }]]&nbsp;</i>页</div>
+	    	<div th:utext='${listNavigatHtml}' th:remove="tag" ></div>
+	   	</div>
+	</div>
+	
+<script type="text/javascript">
+</script>
+</body>
+</html>