From b446c757aedcce68269807d789451fb30ddce91a Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Mon, 13 Mar 2023 23:35:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/StudentAccountAssetAllocation.java | 5 +- .../ibeetl/jlw/entity/StudentClientLink.java | 2 +- .../jlw/service/ResourcesQuestionService.java | 2 + .../StudentAccountAssetAllocationService.java | 64 +++++++++++++++++-- ...udentAccountAssetAllocationController.java | 15 +++++ .../jlw/web/StudentClientLinkController.java | 54 ++++++++++++++-- .../StudentAccountAssetAllocationQuery.java | 5 +- ...CollegesJurisdictionCurriculumResources.md | 17 ++--- .../studentClientLink/applicationOther.html | 4 ++ 9 files changed, 145 insertions(+), 23 deletions(-) diff --git a/web/src/main/java/com/ibeetl/jlw/entity/StudentAccountAssetAllocation.java b/web/src/main/java/com/ibeetl/jlw/entity/StudentAccountAssetAllocation.java index 5eaaebe9..5808326e 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/StudentAccountAssetAllocation.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/StudentAccountAssetAllocation.java @@ -3,6 +3,7 @@ package com.ibeetl.jlw.entity; import com.ibeetl.admin.core.annotation.Dict; import com.ibeetl.admin.core.entity.BaseEntity; import com.ibeetl.admin.core.util.ValidateConfig; +import com.ibeetl.jlw.enums.AccountTypeEnum; import lombok.Data; import org.beetl.sql.annotation.builder.UpdateTime; import org.beetl.sql.annotation.entity.AssignID; @@ -43,7 +44,7 @@ public class StudentAccountAssetAllocation extends BaseEntity{ //账户名称 - private String name ; + private AccountTypeEnum name ; //账户开通状态 1:未开通 2:已开通 @@ -59,7 +60,7 @@ public class StudentAccountAssetAllocation extends BaseEntity{ //转入账户 - private String intoAccount ; + private AccountTypeEnum intoAccount ; //转账金额 diff --git a/web/src/main/java/com/ibeetl/jlw/entity/StudentClientLink.java b/web/src/main/java/com/ibeetl/jlw/entity/StudentClientLink.java index 38ff963a..7980fd24 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/StudentClientLink.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/StudentClientLink.java @@ -66,7 +66,7 @@ public class StudentClientLink extends BaseEntity{ private Long userId ; //组织ID - + @Dict(type = "core_org.name.del_flag=0") private Long orgId ; public StudentClientLink(){ diff --git a/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java b/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java index 58b9fdc1..87d27068 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java @@ -471,6 +471,8 @@ public class ResourcesQuestionService extends CoreBaseService pojo.setQuestionAnswer(questionAnswer); } pojo.setQuestionAnalysis(questionAnalysis); + // 默认导入上架状态 + pojo.setQuestionStatus(1); pojo.setAddType(ADMIN_ADD); insert(pojo); diff --git a/web/src/main/java/com/ibeetl/jlw/service/StudentAccountAssetAllocationService.java b/web/src/main/java/com/ibeetl/jlw/service/StudentAccountAssetAllocationService.java index b950d04c..7f137bed 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/StudentAccountAssetAllocationService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/StudentAccountAssetAllocationService.java @@ -1,6 +1,7 @@ package com.ibeetl.jlw.service; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.jwt.JWTUtil; import cn.jlw.util.ToolUtils; @@ -24,10 +25,14 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; +import static cn.hutool.core.collection.IterUtil.getFirst; + /** * 资产账户管理 Service * 当分布式ID开启后请勿使用insert(*,true) @@ -211,9 +216,7 @@ public class StudentAccountAssetAllocationService extends CoreBaseService accountAssetAllocation = getValuesByQueryNotWithPermission(param); @@ -228,7 +231,7 @@ public class StudentAccountAssetAllocationService extends CoreBaseService accountAssetAllocations = getByApplicationToken(applicationToken, param); + + Assert.notEmpty(accountAssetAllocations, "未查询到账户信息!"); + Assert.isTrue(accountAssetAllocations.size() == 1, "本次查询到多个账户,无法同时操作多个账户!"); + + StudentAccountAssetAllocation accountAssetAllocation = getFirst(accountAssetAllocations); + + // 预扣资金,先看下是否能够被扣除 + BigDecimal remainingAvailableFundsAfterDeduction = accountAssetAllocation + .getAvailableFunds().subtract(param.getAvailableFunds()).setScale(2, RoundingMode.HALF_UP); + + // 这种情况,是不够扣除的。比较预扣资金,是否小于0 + boolean isLessZero = NumberUtil.isLess(remainingAvailableFundsAfterDeduction, BigDecimal.ZERO); + + Assert.isFalse(isLessZero, "用户余额不足,无法完成本次操作!"); + + StudentAccountAssetAllocation updatePO = new StudentAccountAssetAllocation(); + updatePO.setId(accountAssetAllocation.getId()); + updatePO.setAvailableFunds(remainingAvailableFundsAfterDeduction); + + updateTemplate(updatePO); + } + } diff --git a/web/src/main/java/com/ibeetl/jlw/web/StudentAccountAssetAllocationController.java b/web/src/main/java/com/ibeetl/jlw/web/StudentAccountAssetAllocationController.java index 26020e27..98929a11 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/StudentAccountAssetAllocationController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/StudentAccountAssetAllocationController.java @@ -221,4 +221,19 @@ public class StudentAccountAssetAllocationController{ studentAccountAssetAllocationService.deleteStudentAccountAssetAllocation(ids); return JsonResult.success(); } + + /** + * 更新账户的可用资金字段,暂时这个接口只能更新这一个字段,后期根据需求再进行修改。 + * + * @param applicationToken + * @param param + * @return + */ + @PostMapping(MODEL + "/updateAccountAvailableFunds.json") + @Function("studentAccountAssetAllocation.delete") + @ResponseBody + public JsonResult updateAccountAvailableFunds(@RequestParam("applicationToken") String applicationToken, StudentAccountAssetAllocationQuery param) { + studentAccountAssetAllocationService.updateAccountAvailableFunds(applicationToken, param); + return JsonResult.success("修改成功!"); + } } diff --git a/web/src/main/java/com/ibeetl/jlw/web/StudentClientLinkController.java b/web/src/main/java/com/ibeetl/jlw/web/StudentClientLinkController.java index 4de31d12..2666ea0a 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/StudentClientLinkController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/StudentClientLinkController.java @@ -1,5 +1,6 @@ package com.ibeetl.jlw.web; +import cn.hutool.core.lang.Assert; import cn.jlw.Interceptor.SCoreUser; import cn.jlw.validate.ValidateConfig; import com.ibeetl.admin.core.annotation.Function; @@ -79,7 +80,7 @@ public class StudentClientLinkController{ public JsonResult>getList(StudentClientLinkQuery condition) { CoreUser user = getUser(); - if (null != user && user.isUniAdmin()) { + if (null != user && !user.isAdmin()) { condition.setOrgIdPlural(join(Arrays.asList(user.getOrgId(), 1, null).toArray(), ",")); } Listlist = studentClientLinkService.getValuesByQueryNotWithPermission(condition); @@ -195,9 +196,29 @@ public class StudentClientLinkController{ @PostMapping(MODEL + "/list.json") @Function("studentClientLink.query") @ResponseBody - public JsonResult list(StudentClientLinkQuery condition){ - PageQuery page = condition.getPageQuery(); - studentClientLinkService.queryByCondition(page); + public JsonResult list(@SCoreUser CoreUser coreUser, StudentClientLinkQuery condition){ + + // 非管理员身份 + final boolean isNotAdmin = !coreUser.isAdmin(); + + if (isNotAdmin) { + condition.setOrgIdPlural(join(Arrays.asList("1", coreUser.getOrgId()).toArray(), ",")); + } + PageQuery page = condition.getPageQuery(); + studentClientLinkService.queryByCondition(page); + + page.getList().forEach(item -> { + // 默认可以修改,所有的数据 + item.set("isEdit", true); + + if (isNotAdmin) { + // 判断是否是超管上传的数据 + if (((Long)1L).equals(item.getOrgId())) { + item.set("isEdit", false); + } + } + }); + return JsonResult.success(page); } @@ -235,12 +256,15 @@ public class StudentClientLinkController{ @PostMapping(MODEL + "/edit.json") @Function("studentClientLink.edit") @ResponseBody - public JsonResult update(@Validated(ValidateConfig.UPDATE.class) StudentClientLinkQuery studentClientLinkQuery, BindingResult result) { + public JsonResult update(@SCoreUser CoreUser coreUser, @Validated(ValidateConfig.UPDATE.class) StudentClientLinkQuery studentClientLinkQuery, BindingResult result) { if(result.hasErrors()){ return JsonResult.failMessage(result); }else { studentClientLinkQuery.setUserId(null); studentClientLinkQuery.setOrgId(null); + + checkLoginUserIsEditPermission(coreUser, studentClientLinkQuery.getStudentClientLinkId()); + String msg = studentClientLinkService.edit(studentClientLinkQuery); if (StringUtils.isBlank(msg)) { return JsonResult.success(); @@ -250,6 +274,20 @@ public class StudentClientLinkController{ } } + /** + * 检查当前登录的用户,是否有编辑权限 + * @param coreUser + * @param studentClientLinkId + */ + private void checkLoginUserIsEditPermission(CoreUser coreUser, Long studentClientLinkId) { + // 如果是验证 + if (!coreUser.isAdmin()) { + StudentClientLink clientLink = studentClientLinkService.queryById(studentClientLinkId); + Assert.isTrue(clientLink != null && coreUser.getOrgId().equals(clientLink.getOrgId()) + , "院校身份,只能修改自己上传的数据!"); + } + } + @GetMapping(MODEL + "/view.json") @Function("studentClientLink.query") @@ -271,7 +309,11 @@ public class StudentClientLinkController{ @PostMapping(MODEL + "/delete.json") @Function("studentClientLink.delete") @ResponseBody - public JsonResult delete(String ids) { + public JsonResult delete(@SCoreUser CoreUser coreUser, String ids) { + for (String id : ids.split(",")) { + checkLoginUserIsEditPermission(coreUser, Long.valueOf(id)); + } + studentClientLinkService.deleteStudentClientLink(ids); return JsonResult.success(); } diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/StudentAccountAssetAllocationQuery.java b/web/src/main/java/com/ibeetl/jlw/web/query/StudentAccountAssetAllocationQuery.java index b7d7b00f..352c0aa1 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/query/StudentAccountAssetAllocationQuery.java +++ b/web/src/main/java/com/ibeetl/jlw/web/query/StudentAccountAssetAllocationQuery.java @@ -4,6 +4,7 @@ import cn.jlw.validate.ValidateConfig; import com.ibeetl.admin.core.annotation.Query; import com.ibeetl.admin.core.web.query.PageParam; import com.ibeetl.jlw.entity.StudentAccountAssetAllocation; +import com.ibeetl.jlw.enums.AccountTypeEnum; import lombok.Data; import javax.validation.constraints.NotNull; @@ -48,7 +49,7 @@ public class StudentAccountAssetAllocationQuery extends PageParam { ////////////////////////////////////////////////////////////////////////////////////////////////// @Query(name = "账户名称", display = false) - private String name; + private AccountTypeEnum name; @Query(name = "账户开通状态 1:未开通 2:已开通", display = true) private Integer state; @Query(name = "期初资金", display = false) @@ -56,7 +57,7 @@ public class StudentAccountAssetAllocationQuery extends PageParam { @Query(name = "可用资金", display = false) private BigDecimal availableFunds; @Query(name = "转入账户", display = false) - private String intoAccount; + private AccountTypeEnum intoAccount; @Query(name = "转账金额", display = false) private BigDecimal transferAmount; @Query(name = "转入金额", display = false) diff --git a/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionCurriculumResources.md b/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionCurriculumResources.md index e8e98a69..3cb5cef0 100644 --- a/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionCurriculumResources.md +++ b/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionCurriculumResources.md @@ -157,13 +157,16 @@ queryAllAuthCourseInfoByCondition @} @if(!isEmpty(universitiesCollegesId)){ + @// 上面的sql结果集中,会包含下面的结果。用union去重 union + @// 查询本校自己上传的课程列表。这部分不需要授权,就可以访问 select - t.use_type, - t.use_start_time, - t.use_end_time, - t.second_level_name, - t.second_level_logo, + null as use_type, + null as use_start_time, + null as use_end_time, + null as second_level_name, + null as second_level_logo, + null as universities_colleges_name, ta.`course_info_id`, ta.`course_info_full_id`, ta.`course_info_name`, @@ -184,18 +187,16 @@ queryAllAuthCourseInfoByCondition ta.`add_time`, ta.org_id, ta.user_id, - null as universities_colleges_name, tc.course_label_type, tc.course_label_name from course_info ta left join course_label tc on tc.course_label_id = ta.course_label_id and tc.course_label_status = 1 - left join universities_colleges_jurisdiction_curriculum_resources t on ta.course_info_id = t.course_info_id and 0 where 1 AND tc.course_label_type = '理论课程类' AND ta.course_info_status = 1 AND ta.course_info_type = 1 AND ta.org_id = ( - select org_id from universities_colleges where universities_colleges_id = #universitiesCollegesId# limit 1 + select org_id from universities_colleges where universities_colleges_id = #universitiesCollegesId# ) @} ) tt diff --git a/web/src/main/resources/templates/jlw/studentClientLink/applicationOther.html b/web/src/main/resources/templates/jlw/studentClientLink/applicationOther.html index 20bb797a..7f69ca19 100644 --- a/web/src/main/resources/templates/jlw/studentClientLink/applicationOther.html +++ b/web/src/main/resources/templates/jlw/studentClientLink/applicationOther.html @@ -101,6 +101,10 @@ field : 'studentClientLinkDesc', title : '应用描述',align:"center" }, + { + field : 'orgIdText', + title : '来源',align:"center" + }, { field : 'userId',title : '操作',align:"center", width:150,templet: function (d) { var htm = '编辑';