第三方应用

beetlsql3-dev
Mlxa0324 2 years ago
parent b0fb2b221f
commit b446c757ae

@ -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 ;
//转账金额

@ -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(){

@ -471,6 +471,8 @@ public class ResourcesQuestionService extends CoreBaseService<ResourcesQuestion>
pojo.setQuestionAnswer(questionAnswer);
}
pojo.setQuestionAnalysis(questionAnalysis);
// 默认导入上架状态
pojo.setQuestionStatus(1);
pojo.setAddType(ADMIN_ADD);
insert(pojo);

@ -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<Studen
Assert.isTrue(StrUtil.isAllNotEmpty(studentId, applicationId, universitiesCollegesId), "学生ID、应用ID、院校ID都不能为空");
// 从token中获取必要条件
param.setStudentId(Long.valueOf(studentId));
param.setApplicationId(Long.valueOf(applicationId));
param.setUniversitiesCollegesId(Long.valueOf(universitiesCollegesId));
copyInfoByApplicationToken(loginTodo, param);
List<StudentAccountAssetAllocation> accountAssetAllocation = getValuesByQueryNotWithPermission(param);
@ -228,7 +231,7 @@ public class StudentAccountAssetAllocationService extends CoreBaseService<Studen
* @param applicationToken token
* @return
*/
private LoginTodo validateAndGetLoginTodo(String applicationToken) {
public LoginTodo validateAndGetLoginTodo(String applicationToken) {
LoginTodo payload = loginTodoService.getPayloadByString(applicationToken);
Assert.notNull(payload, "回传的token不是有效的加密串");
@ -249,4 +252,57 @@ public class StudentAccountAssetAllocationService extends CoreBaseService<Studen
public void createFundAccountWithUserCreated() {
}
/**
*
* @param loginTodo
* @param param
*/
private void copyInfoByApplicationToken(LoginTodo loginTodo, StudentAccountAssetAllocationQuery param) {
Assert.notNull(loginTodo);
Assert.notNull(param);
// 从token中获取必要条件
param.setStudentId(Long.valueOf(loginTodo.getStudentId()));
param.setApplicationId(Long.valueOf(loginTodo.getApplicationId()));
param.setUniversitiesCollegesId(Long.valueOf(loginTodo.getSchoolId()));
}
/**
*
* availableFunds
* @param applicationToken
* @param param
* @return
*/
public void updateAccountAvailableFunds(String applicationToken, StudentAccountAssetAllocationQuery param) {
// 已开通状态2
param.setState(2);
// 这里1代表未删除是正常状态
param.setIsDel(1);
List<StudentAccountAssetAllocation> 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);
}
}

@ -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("修改成功!");
}
}

@ -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<List<StudentClientLink>>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(), ","));
}
List<StudentClientLink>list = studentClientLinkService.getValuesByQueryNotWithPermission(condition);
@ -195,9 +196,29 @@ public class StudentClientLinkController{
@PostMapping(MODEL + "/list.json")
@Function("studentClientLink.query")
@ResponseBody
public JsonResult<PageQuery> list(StudentClientLinkQuery condition){
PageQuery page = condition.getPageQuery();
studentClientLinkService.queryByCondition(page);
public JsonResult<PageQuery> list(@SCoreUser CoreUser coreUser, StudentClientLinkQuery condition){
// 非管理员身份
final boolean isNotAdmin = !coreUser.isAdmin();
if (isNotAdmin) {
condition.setOrgIdPlural(join(Arrays.asList("1", coreUser.getOrgId()).toArray(), ","));
}
PageQuery<StudentClientLink> 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<String> update(@Validated(ValidateConfig.UPDATE.class) StudentClientLinkQuery studentClientLinkQuery, BindingResult result) {
public JsonResult<String> 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();
}

@ -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)

@ -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

@ -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 = '<a class="layui-table-link" lay-event="edit">编辑</a>';

Loading…
Cancel
Save