Selaa lähdekoodia

卡相关接口定义初步实现

mingfu 1 kuukausi sitten
vanhempi
commit
54a24d62fd
25 muutettua tiedostoa jossa 448 lisäystä ja 25 poistoa
  1. 51 8
      ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzCardsController.java
  2. 1 0
      ie-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
  3. 13 0
      ie-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
  4. 21 0
      ie-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
  5. 21 0
      ie-system/src/main/java/com/ruoyi/criteria/CardCriteria.java
  6. 13 0
      ie-system/src/main/java/com/ruoyi/dz/domain/DzAgent.java
  7. 3 3
      ie-system/src/main/java/com/ruoyi/dz/domain/DzCards.java
  8. 9 9
      ie-system/src/main/java/com/ruoyi/dz/domain/DzCardsOpen.java
  9. 5 0
      ie-system/src/main/java/com/ruoyi/dz/mapper/DzCardsMapper.java
  10. 38 0
      ie-system/src/main/java/com/ruoyi/dz/service/IDzCardsService.java
  11. 10 1
      ie-system/src/main/java/com/ruoyi/dz/service/impl/DzAgentServiceImpl.java
  12. 116 0
      ie-system/src/main/java/com/ruoyi/dz/service/impl/DzCardsServiceImpl.java
  13. 8 1
      ie-system/src/main/java/com/ruoyi/dz/service/impl/DzTeacherServiceImpl.java
  14. 12 0
      ie-system/src/main/java/com/ruoyi/enums/CardType.java
  15. 12 0
      ie-system/src/main/java/com/ruoyi/enums/PayStatus.java
  16. 12 0
      ie-system/src/main/java/com/ruoyi/enums/RequestStatus.java
  17. 12 0
      ie-system/src/main/java/com/ruoyi/enums/UserTypeEnum.java
  18. 3 0
      ie-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java
  19. 3 0
      ie-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
  20. 7 0
      ie-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
  21. 15 0
      ie-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
  22. 18 0
      ie-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
  23. 35 0
      ie-system/src/main/resources/mapper/dz/DzCardsMapper.xml
  24. 2 1
      ie-system/src/main/resources/mapper/system/SysRoleMapper.xml
  25. 8 2
      ie-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 51 - 8
ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzCardsController.java

@@ -2,16 +2,14 @@ package com.ruoyi.web.controller.dz;
 
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.SecurityUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -29,6 +27,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
  */
 @RestController
 @RequestMapping("/dz/cards")
+@Api("后台-学习卡管理")
 public class DzCardsController extends BaseController
 {
     @Autowired
@@ -101,4 +100,48 @@ public class DzCardsController extends BaseController
     {
         return toAjax(dzCardsService.deleteDzCardsByCardIds(cardIds));
     }
+
+    @Log(title = "制卡", businessType = BusinessType.INSERT)
+    @PostMapping("/issue")
+    @ApiOperation("制卡")
+    public AjaxResult issue(@ApiParam("机构") Long deptId, @ApiParam("卡类型") Integer type, @ApiParam("开始号") Integer begin, @ApiParam("结束号") Integer end)
+    {
+        dzCardsService.issue(deptId, type, begin, end);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "分配卡", businessType = BusinessType.INSERT)
+    @PostMapping("/assign")
+    @ApiOperation("分配卡")
+    public AjaxResult assign(@ApiParam("代理商") Long agentId, @ApiParam("开始号") String begin, @ApiParam("结束号") String end)
+    {
+        dzCardsService.assign(agentId, begin, end);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "申请开卡", businessType = BusinessType.INSERT)
+    @PostMapping("/requestOpen")
+    @ApiOperation("分配卡")
+    public AjaxResult requestOpen(@ApiParam("学校") Long schoolId, @ApiParam("开始号") String begin, @ApiParam("结束号") String end)
+    {
+        Long agentId = SecurityUtils.getLoginUser().getUser().getUserTypeId();
+        return AjaxResult.success(dzCardsService.requestOpen(schoolId, agentId, begin, end));
+    }
+
+    @Log(title = "确认开卡", businessType = BusinessType.INSERT)
+    @PostMapping("/confirmOpen")
+    @ApiOperation("确认开卡")
+    public AjaxResult confirmOpen(@ApiParam("开卡申请ID") Long openId)
+    {
+        dzCardsService.confirmOpen(openId);
+        return AjaxResult.success();
+    }
+
+    @PostMapping("/reOpen")
+    @ApiOperation("重开卡")
+    public AjaxResult reOpen(@ApiParam("卡ID") Long[] cardIds)
+    {
+        dzCardsService.reOpen(cardIds);
+        return AjaxResult.success();
+    }
 }

+ 1 - 0
ie-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java

@@ -2,6 +2,7 @@ package com.ruoyi.web.controller.system;
 
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;

+ 13 - 0
ie-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java

@@ -64,6 +64,11 @@ public class SysRole extends BaseEntity
     /** 角色菜单权限 */
     private Set<String> permissions;
 
+
+    /** 角色权限 */
+    @Excel(name = "用户绑定类型")
+    private String userType;
+
     public SysRole()
     {
 
@@ -219,6 +224,14 @@ public class SysRole extends BaseEntity
         this.permissions = permissions;
     }
 
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 21 - 0
ie-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

@@ -30,6 +30,11 @@ public class SysUser extends BaseEntity
     @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号")
     private Long userId;
 
+    @Excel(name = "用户类型", cellType = ColumnType.TEXT, prompt = "用户类型")
+    private String userType;
+
+    private Long userTypeId;
+
     /** 部门ID */
     @Excel(name = "部门编号", type = Type.IMPORT)
     private Long deptId;
@@ -140,6 +145,22 @@ public class SysUser extends BaseEntity
         this.userId = userId;
     }
 
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+
+    public Long getUserTypeId() {
+        return userTypeId;
+    }
+
+    public void setUserTypeId(Long userTypeId) {
+        this.userTypeId = userTypeId;
+    }
+
     public Long getUserId()
     {
         return userId;

+ 21 - 0
ie-system/src/main/java/com/ruoyi/criteria/CardCriteria.java

@@ -0,0 +1,21 @@
+package com.ruoyi.criteria;
+
+import com.ruoyi.dz.domain.DzCards;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 学习卡对象 dz_cards
+ * 
+ * @author ruoyi
+ * @date 2025-09-12
+ */
+@Data
+public class CardCriteria extends DzCards
+{
+    @ApiModelProperty("开始卡号")
+    private String startNo;
+    @ApiModelProperty("结束卡号")
+    private String endNo;
+
+}

+ 13 - 0
ie-system/src/main/java/com/ruoyi/dz/domain/DzAgent.java

@@ -18,6 +18,9 @@ public class DzAgent extends TreeEntity
     /** 代理商ID */
     private Long agentId;
 
+    /** 上级代理商ID */
+    private Long parentId;
+
     /** 用户ID */
     @Excel(name = "用户ID")
     private Long userId;
@@ -84,6 +87,16 @@ public class DzAgent extends TreeEntity
         return schools;
     }
 
+    @Override
+    public Long getParentId() {
+        return parentId;
+    }
+
+    @Override
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 3 - 3
ie-system/src/main/java/com/ruoyi/dz/domain/DzCards.java

@@ -46,7 +46,7 @@ public class DzCards extends BaseEntity
 
     /** 0=未缴费,1=已缴费,2=已退费 */
     @Excel(name = "0=未缴费,1=已缴费,2=已退费")
-    private Long payStatus;
+    private Integer payStatus;
 
     /** 是否结算(0:否,1:是) */
     @Excel(name = "是否结算(0:否,1:是)")
@@ -202,12 +202,12 @@ public class DzCards extends BaseEntity
         return timeStatus;
     }
 
-    public void setPayStatus(Long payStatus) 
+    public void setPayStatus(Integer payStatus)
     {
         this.payStatus = payStatus;
     }
 
-    public Long getPayStatus() 
+    public Integer getPayStatus()
     {
         return payStatus;
     }

+ 9 - 9
ie-system/src/main/java/com/ruoyi/dz/domain/DzCardsOpen.java

@@ -47,15 +47,15 @@ public class DzCardsOpen extends BaseEntity
 
     /** 重新开卡:0否,1是 */
     @Excel(name = "重新开卡:0否,1是")
-    private Long isReopen;
+    private Integer isReopen;
 
     /** 卡类型,对应card_type */
     @Excel(name = "卡类型,对应card_type")
-    private Long cardType;
+    private Integer cardType;
 
     /** 状态(0:无效,1:审核结束,2:审核中) */
     @Excel(name = "状态(0:无效,1:审核结束,2:审核中)")
-    private Long status;
+    private Integer status;
 
     public void setId(Long id) 
     {
@@ -127,32 +127,32 @@ public class DzCardsOpen extends BaseEntity
         return sender;
     }
 
-    public void setIsReopen(Long isReopen) 
+    public void setIsReopen(Integer isReopen)
     {
         this.isReopen = isReopen;
     }
 
-    public Long getIsReopen() 
+    public Integer getIsReopen()
     {
         return isReopen;
     }
 
-    public void setCardType(Long cardType) 
+    public void setCardType(Integer cardType)
     {
         this.cardType = cardType;
     }
 
-    public Long getCardType() 
+    public Integer getCardType()
     {
         return cardType;
     }
 
-    public void setStatus(Long status) 
+    public void setStatus(Integer status)
     {
         this.status = status;
     }
 
-    public Long getStatus() 
+    public Integer getStatus()
     {
         return status;
     }

+ 5 - 0
ie-system/src/main/java/com/ruoyi/dz/mapper/DzCardsMapper.java

@@ -1,7 +1,10 @@
 package com.ruoyi.dz.mapper;
 
 import java.util.List;
+
+import com.ruoyi.criteria.CardCriteria;
 import com.ruoyi.dz.domain.DzCards;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 学习卡Mapper接口
@@ -58,4 +61,6 @@ public interface DzCardsMapper
      * @return 结果
      */
     public int deleteDzCardsByCardIds(Long[] cardIds);
+
+    public List<DzCards> selectListByCond(CardCriteria cond);
 }

+ 38 - 0
ie-system/src/main/java/com/ruoyi/dz/service/IDzCardsService.java

@@ -60,4 +60,42 @@ public interface IDzCardsService
      * @return 结果
      */
     public int deleteDzCardsByCardId(Long cardId);
+
+    /**
+     * 制卡
+     * @param deptId
+     * @param type
+     * @param begin
+     * @param end
+     */
+    public void issue(Long deptId, Integer type, Integer begin, Integer end);
+
+    /**
+     * 分配卡
+     * @param agentId
+     * @param beginNo
+     * @param endNo
+     */
+    public void assign(Long agentId, String beginNo, String endNo);
+
+    /**
+     * 申请开卡
+     * @param schoolId
+     * @param agentId
+     * @param beginNo
+     * @param endNo
+     */
+    public Boolean requestOpen(Long schoolId, Long agentId, String beginNo, String endNo);
+
+    /**
+     * 审核开卡
+     * @param openId
+     */
+    public void confirmOpen(Long openId);
+
+    /**
+     * 重开卡
+     * @param cardIds
+     */
+    public void reOpen(Long[] cardIds);
 }

+ 10 - 1
ie-system/src/main/java/com/ruoyi/dz/service/impl/DzAgentServiceImpl.java

@@ -1,6 +1,11 @@
 package com.ruoyi.dz.service.impl;
 
 import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.enums.UserTypeEnum;
+import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.dz.mapper.DzAgentMapper;
@@ -18,6 +23,8 @@ public class DzAgentServiceImpl implements IDzAgentService
 {
     @Autowired
     private DzAgentMapper dzAgentMapper;
+    @Autowired
+    private ISysUserService userService;
 
     /**
      * 查询机构代理
@@ -52,7 +59,9 @@ public class DzAgentServiceImpl implements IDzAgentService
     @Override
     public int insertDzAgent(DzAgent dzAgent)
     {
-        return dzAgentMapper.insertDzAgent(dzAgent);
+        int iRet = dzAgentMapper.insertDzAgent(dzAgent);
+        userService.insertRelateUser(UserTypeEnum.Agent, dzAgent.getAgentId(),dzAgent.getName());
+        return iRet;
     }
 
     /**

+ 116 - 0
ie-system/src/main/java/com/ruoyi/dz/service/impl/DzCardsServiceImpl.java

@@ -1,13 +1,28 @@
 package com.ruoyi.dz.service.impl;
 
+import java.util.Date;
 import java.util.List;
+import java.util.Random;
+
+import cn.hutool.core.util.RandomUtil;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.criteria.CardCriteria;
+import com.ruoyi.dz.domain.DzAgent;
+import com.ruoyi.dz.domain.DzCardsOpen;
+import com.ruoyi.dz.mapper.DzAgentMapper;
+import com.ruoyi.dz.mapper.DzCardsOpenMapper;
+import com.ruoyi.enums.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.dz.mapper.DzCardsMapper;
 import com.ruoyi.dz.domain.DzCards;
 import com.ruoyi.dz.service.IDzCardsService;
 
+import javax.validation.ValidationException;
+
 /**
  * 学习卡Service业务层处理
  * 
@@ -19,6 +34,12 @@ public class DzCardsServiceImpl implements IDzCardsService
 {
     @Autowired
     private DzCardsMapper dzCardsMapper;
+    @Autowired
+    private DzCardsOpenMapper dzCardsOpenMapper;
+    @Autowired
+    private DzAgentMapper dzAgentMapper;
+
+    private final String format = "%d%08d";
 
     /**
      * 查询学习卡
@@ -102,4 +123,99 @@ public class DzCardsServiceImpl implements IDzCardsService
     {
         return dzCardsMapper.deleteDzCardsByCardId(cardId);
     }
+
+    @Override
+    public void issue(Long deptId, Integer type, Integer begin, Integer end) {
+
+        for(Integer i = begin; i<= end; i++) {
+            DzCards c = new DzCards();
+            c.setType(type);
+            c.setCardNo(String.format(format, type, i));
+            c.setPassword(RandomUtil.randomNumbers(6));
+            c.setDistributeStatus(CardDistributeStatus.Free.getVal());
+            c.setStatus(CardStatus.Free.getVal());
+            c.setTimeStatus(CardTimeStatus.Valid.getVal());
+            c.setPayStatus(PayStatus.UnPay.getVal());
+            c.setIsSettlement(0);
+            c.setDeptId(deptId);
+            dzCardsMapper.insertDzCards(c);
+        }
+    }
+
+    @Override
+    public void assign(Long agentId, String beginNo, String endNo) {
+        CardCriteria cond = new CardCriteria();
+        cond.setStartNo(beginNo);
+        cond.setEndNo(endNo);
+        DzCards dzCards = new DzCards();
+        DzAgent agent = dzAgentMapper.selectDzAgentByAgentId(agentId);
+        dzCardsMapper.selectListByCond(cond).stream().forEach(c -> {
+            dzCards.setCardId(c.getCardId());
+            if(null != agent.getParentId()) {
+                dzCards.setAgentId(agent.getParentId());
+                dzCards.setLeftAgentId(agent.getAgentId());
+            } else {
+                dzCards.setAgentId(agent.getAgentId());
+                dzCards.setLeftAgentId(agent.getAgentId());
+            }
+            dzCards.setDistributeTime(DateUtils.getNowDate());
+            dzCardsMapper.updateDzCards(dzCards);
+        });
+    }
+
+    @Override
+    public Boolean requestOpen(Long schoolId, Long agentId, String beginNo, String endNo) {
+        DzCardsOpen newOpen = new DzCardsOpen();
+        newOpen.setAgentId(agentId);
+        newOpen.setStartNo(beginNo);
+        newOpen.setEndNo(endNo);
+        newOpen.setEndDate(DateUtils.addDays(DateUtils.getNowDate(), 14)); // TODO MF 卡默认有效期
+        newOpen.setSchoolId(schoolId);
+        newOpen.setIsReopen(0);
+        newOpen.setCardType(CardType.Test.getVal());
+        newOpen.setStatus(RequestStatus.Wait.getVal());
+        dzCardsOpenMapper.insertDzCardsOpen(newOpen);
+        // TODO MF 检查已经使用的或无效的
+        return true;
+    }
+
+    @Override
+    public void confirmOpen(Long openId) {
+        DzCardsOpen open = dzCardsOpenMapper.selectDzCardsOpenById(openId);
+        if(!open.getStatus().equals(RequestStatus.Wait.getVal())) {
+            throw new ValidationException("无效状态");
+        }
+        CardCriteria cond = new CardCriteria();
+        cond.setType(open.getCardType());
+        cond.setStartNo(open.getStartNo());
+        cond.setEndNo(open.getEndNo());
+        DzCards dzCards = new DzCards();
+        dzCardsMapper.selectListByCond(cond).stream().forEach(c -> {
+            dzCards.setCardId(c.getCardId());
+            dzCards.setPayTime(DateUtils.getNowDate());
+            dzCards.setPayStatus(PayStatus.Paid.getVal());
+            dzCards.setStatus(CardStatus.Paid.getVal());
+            dzCardsMapper.updateDzCards(dzCards);
+        });
+        DzCardsOpen up = new DzCardsOpen();
+        up.setId(openId);
+        up.setStatus(RequestStatus.Pass.getVal());
+        dzCardsOpenMapper.updateDzCardsOpen(up);
+    }
+
+    @Override
+    public void reOpen(Long[] cardIds) {
+        DzCards up = new DzCards();
+        for(Long cardId : cardIds) {
+            DzCards old = dzCardsMapper.selectDzCardsByCardId(cardId);
+            if(!old.getDistributeStatus().equals(CardDistributeStatus.Close.getVal())) {
+                throw new ValidationException("非关闭卡");
+            }
+            up.setCardId(old.getCardId());
+            up.setDistributeStatus(CardDistributeStatus.Assign.getVal());
+            dzCardsMapper.updateDzCards(up);
+        }
+    }
+
+
 }

+ 8 - 1
ie-system/src/main/java/com/ruoyi/dz/service/impl/DzTeacherServiceImpl.java

@@ -1,6 +1,9 @@
 package com.ruoyi.dz.service.impl;
 
 import java.util.List;
+
+import com.ruoyi.enums.UserTypeEnum;
+import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.dz.mapper.DzTeacherMapper;
@@ -18,6 +21,8 @@ public class DzTeacherServiceImpl implements IDzTeacherService
 {
     @Autowired
     private DzTeacherMapper dzTeacherMapper;
+    @Autowired
+    private ISysUserService userService;
 
     /**
      * 查询老师
@@ -52,7 +57,9 @@ public class DzTeacherServiceImpl implements IDzTeacherService
     @Override
     public int insertDzTeacher(DzTeacher dzTeacher)
     {
-        return dzTeacherMapper.insertDzTeacher(dzTeacher);
+        int id = dzTeacherMapper.insertDzTeacher(dzTeacher);
+        userService.insertRelateUser(UserTypeEnum.Teacher, dzTeacher.getTeacherId(),dzTeacher.getName());
+        return id;
     }
 
     /**

+ 12 - 0
ie-system/src/main/java/com/ruoyi/enums/CardType.java

@@ -0,0 +1,12 @@
+package com.ruoyi.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum CardType {
+    Test(0); // 未用/申请开卡/开卡成功且支付/激活
+
+    private final Integer val;
+}

+ 12 - 0
ie-system/src/main/java/com/ruoyi/enums/PayStatus.java

@@ -0,0 +1,12 @@
+package com.ruoyi.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum PayStatus {
+    UnPay(0), Paid(20), Refund(30); // 0=未缴费,1=已缴费,2=已退费
+
+    private final Integer val;
+}

+ 12 - 0
ie-system/src/main/java/com/ruoyi/enums/RequestStatus.java

@@ -0,0 +1,12 @@
+package com.ruoyi.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum RequestStatus {
+    Draft(0), Pass(1), Wait(2); //
+
+    private final Integer val;
+}

+ 12 - 0
ie-system/src/main/java/com/ruoyi/enums/UserTypeEnum.java

@@ -0,0 +1,12 @@
+package com.ruoyi.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum UserTypeEnum {
+    Sys("00"), Card("01"), Agent("10"), Teacher("11"), Dept("12"); // 用户类型(00系统01卡10代理11老师12机构)
+
+    private final String val;
+}

+ 3 - 0
ie-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java

@@ -3,6 +3,7 @@ package com.ruoyi.system.service;
 import java.util.List;
 import java.util.Set;
 import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.enums.UserTypeEnum;
 import com.ruoyi.system.domain.SysUserRole;
 
 /**
@@ -170,4 +171,6 @@ public interface ISysRoleService
      * @return 结果
      */
     public int insertAuthUsers(Long roleId, Long[] userIds);
+
+    public SysRole selectRoleByUserType(UserTypeEnum userType);
 }

+ 3 - 0
ie-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -3,6 +3,7 @@ package com.ruoyi.system.service;
 import java.util.Date;
 import java.util.List;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.enums.UserTypeEnum;
 
 /**
  * 用户 业务层
@@ -222,4 +223,6 @@ public interface ISysUserService
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
+
+    public int insertRelateUser(UserTypeEnum userType, Long userTypeId, String userName);
 }

+ 7 - 0
ie-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java

@@ -4,6 +4,9 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
+
+import com.ruoyi.enums.UserTypeEnum;
+import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.common.annotation.DataScope;
@@ -35,6 +38,9 @@ public class SysDeptServiceImpl implements ISysDeptService
     @Autowired
     private SysRoleMapper roleMapper;
 
+    @Autowired
+    private ISysUserService userService;
+
     /**
      * 查询部门管理数据
      * 
@@ -218,6 +224,7 @@ public class SysDeptServiceImpl implements ISysDeptService
             throw new ServiceException("部门停用,不允许新增");
         }
         dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
+        userService.insertRelateUser(UserTypeEnum.Dept, dept.getDeptId(), dept.getDeptName());
         return deptMapper.insertDept(dept);
     }
 

+ 15 - 0
ie-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java

@@ -5,6 +5,9 @@ import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+
+import com.ruoyi.enums.UserTypeEnum;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -424,4 +427,16 @@ public class SysRoleServiceImpl implements ISysRoleService
         }
         return userRoleMapper.batchUserRole(list);
     }
+
+    @Override
+    public SysRole selectRoleByUserType(UserTypeEnum userType) {
+        SysRole cond = new SysRole();
+        cond.setUserType(userType.getVal());
+        List<SysRole> roleList = roleMapper.selectRoleList(cond);
+        if (CollectionUtils.isEmpty(roleList))
+        {
+            throw new ServiceException(String.format("%1$s未定义角色", userType.name()));
+        }
+        return roleList.get(0);
+    }
 }

+ 18 - 0
ie-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -5,6 +5,9 @@ import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 import javax.validation.Validator;
+
+import com.ruoyi.enums.UserTypeEnum;
+import com.ruoyi.system.service.ISysRoleService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -66,6 +69,9 @@ public class SysUserServiceImpl implements ISysUserService
     @Autowired
     protected Validator validator;
 
+    @Autowired
+    private ISysRoleService roleService;
+
     /**
      * 根据条件分页查询用户列表
      * 
@@ -574,4 +580,16 @@ public class SysUserServiceImpl implements ISysUserService
         }
         return successMsg.toString();
     }
+
+    @Override
+    public int insertRelateUser(UserTypeEnum userType, Long userTypeId, String userName) {
+        SysUser user = new SysUser();
+        user.setUserName(userName);
+        user.setUserType(userType.getVal());
+        user.setUserTypeId(userTypeId);
+        user.setPassword2("123456");
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setRoleIds(new Long[] {roleService.selectRoleByUserType(userType).getRoleId()});
+        return insertUser(user);
+    }
 }

+ 35 - 0
ie-system/src/main/resources/mapper/dz/DzCardsMapper.xml

@@ -190,4 +190,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{cardId}
         </foreach>
     </delete>
+
+
+    <select id="selectListByCond" parameterType="com.ruoyi.criteria.CardCriteria" resultMap="DzCardsResult">
+        <include refid="selectDzCardsVo"/>
+        <where>
+            <if test="startNo != null  and startNo != ''"> and card_no &gt; #{cardNo}</if>
+            <if test="endNo != null  and endNo != ''"> and card_no &lt; #{cardNo}</if>
+            <if test="cardNo != null  and cardNo != ''"> and card_no = #{cardNo}</if>
+            <if test="password != null  and password != ''"> and password = #{password}</if>
+            <if test="type != null "> and type = #{type}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="distributeStatus != null "> and distribute_status = #{distributeStatus}</if>
+            <if test="timeStatus != null "> and time_status = #{timeStatus}</if>
+            <if test="payStatus != null "> and pay_status = #{payStatus}</if>
+            <if test="isSettlement != null "> and is_settlement = #{isSettlement}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="agentId != null "> and agent_id = #{agentId}</if>
+            <if test="leftAgentId != null "> and left_agent_id = #{leftAgentId}</if>
+            <if test="campusId != null "> and campus_id = #{campusId}</if>
+            <if test="assignSchoolId != null "> and assign_school_id = #{assignSchoolId}</if>
+            <if test="schoolId != null "> and school_id = #{schoolId}</if>
+            <if test="classId != null "> and class_id = #{classId}</if>
+            <if test="year != null "> and year = #{year}</if>
+            <if test="endYear != null "> and end_year = #{endYear}</if>
+            <if test="openId != null "> and open_id = #{openId}</if>
+            <if test="distributeTime != null "> and distribute_time = #{distributeTime}</if>
+            <if test="outDate != null "> and out_date = #{outDate}</if>
+            <if test="openTime != null "> and open_time = #{openTime}</if>
+            <if test="payTime != null "> and pay_time = #{payTime}</if>
+            <if test="activeTime != null "> and active_time = #{activeTime}</if>
+            <if test="settlementTime != null "> and settlement_time = #{settlementTime}</if>
+            <if test="refundTime != null "> and refund_time = #{refundTime}</if>
+            <if test="closeTime != null "> and close_time = #{closeTime}</if>
+        </where>
+    </select>
 </mapper>

+ 2 - 1
ie-system/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -19,11 +19,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="updateBy"           column="update_by"             />
 		<result property="updateTime"         column="update_time"           />
 		<result property="remark"             column="remark"                />
+		<result property="userType"             column="user_type"                />
 	</resultMap>
 	
 	<sql id="selectRoleVo">
 	    select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly,
-            r.status, r.del_flag, r.create_time, r.remark 
+            r.status, r.del_flag, r.create_time, r.remark, r.user_type
         from sys_role r
 	        left join sys_user_role ur on ur.role_id = r.role_id
 	        left join sys_user u on u.user_id = ur.user_id

+ 8 - 2
ie-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -33,6 +33,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"      column="update_by"       />
         <result property="updateTime"    column="update_time"     />
         <result property="remark"        column="remark"          />
+		<result property="userType"        column="user_type"          />
+		<result property="userTypeId"        column="user_type_id"          />
         <association property="dept"     javaType="SysDept"         resultMap="deptResult" />
         <collection  property="roles"    javaType="java.util.List"  resultMap="RoleResult" />
     </resultMap>
@@ -60,7 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark,
 		u.location,u.exam_type,u.reg_status,u.end_year,u.invite_code,u.scores,u.select_subject,u.directed_study,u.card_id,
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
-        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
+        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status, u.user_type, u.user_type_id
         from sys_user u
 		    left join sys_dept d on u.dept_id = d.dept_id
 		    left join sys_user_role ur on u.user_id = ur.user_id
@@ -68,7 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
     
     <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
-		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
+		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader, u.user_type, u.user_type_id from sys_user u
 		left join sys_dept d on u.dept_id = d.dept_id
 		where u.del_flag = '0'
 		<if test="userId != null and userId != 0">
@@ -183,6 +185,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		    <if test="cardId != null and cardId != ''">card_id,</if>
  			<if test="createBy != null and createBy != ''">create_by,</if>
  			<if test="remark != null and remark != ''">remark,</if>
+		    <if test="userType != null'">user_type,</if>
+		    <if test="userTypeId != null">user_type_id,</if>
  			create_time
  		)values(
  			<if test="userId != null and userId != ''">#{userId},</if>
@@ -208,6 +212,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="cardId != null and cardId != ''">#{cardId},</if>
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
  			<if test="remark != null and remark != ''">#{remark},</if>
+		    <if test="userType != null">#{userType},</if>
+		    <if test="userTypeId != null">#{userTypeId},</if>
  			sysdate()
  		)
 	</insert>