Kaynağa Gözat

Merge branch 'master' of http://49.234.186.218:9000/root/ieplus

mingfu 1 ay önce
ebeveyn
işleme
6b653413f0

+ 2 - 1
back-ui/src/api/dz/cards.js

@@ -196,12 +196,13 @@ export function getCampusSchoolList(query) {
 }
 
 // 关联校区
-export function associateCampus(beginCardNo, endCardNo, campusId) {
+export function associateCampus(beginCardNo, endCardNo, campusId, campusClassId) {
   return request({
     url: "/dz/cards/changeCampus",
     method: "post",
     params: {
       campusId,
+      campusClassId,
       begin: beginCardNo,
       end: endCardNo,
     },

+ 27 - 3
back-ui/src/views/dz/cards/components/RelateDialog.vue

@@ -11,7 +11,11 @@
       </el-form-item>
       <el-form-item label="校区" prop="campusId" required>
         <ie-select v-model="selectedCampus" :options="campusList" label-key="name" value-key="id" filterable
-          class="w-[350px]!" />
+          class="w-[350px]!" @change="handleCampusChange" />
+      </el-form-item>
+      <el-form-item label="校区班级" prop="campusClassId">
+        <ie-select v-model="selectedCampusClass" :options="campusClassOptions" label-key="name" value-key="classId" filterable
+          clearable class="w-[350px]!" :disabled="!selectedCampus" />
       </el-form-item>
     </el-form>
   </IeModal>
@@ -22,7 +26,8 @@ import IeModal from '@/components/IeModal/index.vue';
 import IeSelect from '@/components/IeSelect/index.vue';
 
 import { associateCampus } from '@/api/dz/cards';
-import { getCurrentInstance, watchEffect } from 'vue';
+import { getClassesByCampusId } from '@/api/dz/classes';
+import { getCurrentInstance, watchEffect, ref } from 'vue';
 
 const { proxy } = getCurrentInstance();
 
@@ -33,6 +38,9 @@ const {
   getCampusList
 } = useSchool({ autoLoad: false });
 
+const campusClassOptions = ref([]);
+const selectedCampusClass = ref(null);
+
 const modalRef = ref(null);
 const formRef = ref(null);
 const form = ref({
@@ -54,8 +62,20 @@ const validateCardNoRange = (rule, value, callback) => {
 watchEffect(() => {
   form.value.cardNoRange = `${form.value.begin}-${form.value.end}`;
   form.value.campusId = selectedCampus.value;
+  form.value.campusClassId = selectedCampusClass.value;
 })
 
+/** 校区变化处理 */
+function handleCampusChange() {
+  selectedCampusClass.value = null;
+  campusClassOptions.value = [];
+  if (selectedCampus.value) {
+    getClassesByCampusId({ campusId: selectedCampus.value }).then(response => {
+      campusClassOptions.value = response.data || [];
+    });
+  }
+}
+
 const rules = ref({
   cardNoRange: [
     { validator: validateCardNoRange, trigger: ['blur', 'change'] },
@@ -67,6 +87,8 @@ const rules = ref({
 
 const handleBeforeClose = () => {
   form.value = {};
+  selectedCampusClass.value = null;
+  campusClassOptions.value = [];
   reset();
 }
 
@@ -77,6 +99,8 @@ const open = () => {
   modalRef.value.open()
 }
 const close = () => {
+  selectedCampusClass.value = null;
+  campusClassOptions.value = [];
   reset();
   modalRef.value.close()
 }
@@ -85,7 +109,7 @@ const handleConfirm = () => {
   formRef.value.validate(async (valid) => {
     if (valid) {
       modalRef.value.showLoading()
-      associateCampus(form.value.begin, form.value.end, form.value.campusId).then(res => {
+      associateCampus(form.value.begin, form.value.end, form.value.campusId, form.value.campusClassId).then(res => {
         proxy.$modal.msgSuccess('关联校区成功')
         close();
         setTimeout(() => {

+ 4 - 5
ie-admin/src/main/java/com/ruoyi/web/controller/dz/DzCardsController.java

@@ -85,9 +85,8 @@ public class DzCardsController extends BaseController
             dzCards.setDeptId(SecurityUtils.getDeptId());
         } else if (UserTypeEnum.isSchool(userType)) {
             dzCards.setCampusId(sysUser.getUserTypeId());
-        } else if(UserTypeEnum.isTeacher(userType)) {
-            dzCards.setTeacherId(sysUser.getUserTypeId());
-        } else if (UserTypeEnum.isAgent(userType)) {
+        }
+        if ((UserTypeEnum.isAgent(userType) || UserTypeEnum.isTeacher(userType)) && null == dzCards.getAgentId()) {
             //代理商及老师只能查看分配给自己的卡
             DzAgent agent = agentService.selectDzAgentByUserId(SecurityUtils.getUserId());
             if (null != agent) {
@@ -220,8 +219,8 @@ public class DzCardsController extends BaseController
     @PostMapping("/changeCampus")
     @ApiOperation("分配校区")
     @PreAuthorize("@ss.hasPermi('dz:cards:associateCampus')")
-    public AjaxResult changeCampus(@ApiParam("校区") Long campusId, @ApiParam("开始号") String begin, @ApiParam("结束号") String end) {
-        return AjaxResult.success(dzCardsService.changeCampus(campusId, begin, end));
+    public AjaxResult changeCampus(@ApiParam("校区") Long campusId, @ApiParam("校区班级") Long campusClassId, @ApiParam("开始号") String begin, @ApiParam("结束号") String end) {
+        return AjaxResult.success(dzCardsService.changeCampus(campusId, campusClassId, begin, end));
     }
 
     @Log(title = "支付", businessType = BusinessType.UPDATE)

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

@@ -179,8 +179,13 @@ public class DzCards extends BaseEntity
     /** 统计类型(用于详情查询) */
     private String statisticsType;
 
+    public Long getTeacherId() {
+        return teacherId;
+    }
 
-
+    public void setTeacherId(Long teacherId) {
+        this.teacherId = teacherId;
+    }
 
     public String getNickName() {
         return nickName;
@@ -356,14 +361,6 @@ public class DzCards extends BaseEntity
         return schoolId;
     }
 
-    public Long getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Long teacherId) {
-        this.teacherId = teacherId;
-    }
-
     public void setClassId(Long classId)
     {
         this.classId = classId;

+ 2 - 1
ie-system/src/main/java/com/ruoyi/dz/service/IDzCardsService.java

@@ -121,11 +121,12 @@ public interface IDzCardsService
     /**
      * 分配校区
      * @param campusId
+     * @param campusClassId
      * @param beginNo
      * @param endNo
      * @return
      */
-    public Boolean changeCampus(Long campusId, String beginNo, String endNo);
+    public Boolean changeCampus(Long campusId, Long campusClassId, String beginNo, String endNo);
     public List<DzCards> selectCardsByCardIds(List<Long> cardIds);
 
     /**

+ 2 - 1
ie-system/src/main/java/com/ruoyi/dz/service/impl/DzCardsServiceImpl.java

@@ -442,7 +442,7 @@ public class DzCardsServiceImpl implements IDzCardsService
         }
     }
 
-    public Boolean changeCampus(Long campusId, String beginNo, String endNo) {
+    public Boolean changeCampus(Long campusId, Long campusClassId, String beginNo, String endNo) {
         CardCriteria cond = new CardCriteria();
         cond.setStartNo(beginNo);
         cond.setEndNo(endNo);
@@ -451,6 +451,7 @@ public class DzCardsServiceImpl implements IDzCardsService
         cards.stream().forEach(c -> {
             dzCards.setCardId(c.getCardId());
             dzCards.setCampusId(campusId);
+            dzCards.setCampusClassId(campusClassId);
             dzCardsMapper.updateDzCards(dzCards);
         });
         return true;