...
 
Commits (12)
...@@ -73,11 +73,12 @@ ...@@ -73,11 +73,12 @@
<artifactId>weixin-java-miniapp</artifactId> <artifactId>weixin-java-miniapp</artifactId>
</dependency> </dependency>
<!--千帆 智能对话--> <!--文心一言-->
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency> <dependency>
<groupId>com.squareup.okhttp3</groupId> <groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId> <artifactId>okhttp</artifactId>
<version>4.8.1</version> <version>4.12.0</version>
</dependency> </dependency>
<!-- <dependency>--> <!-- <dependency>-->
......
...@@ -4,14 +4,18 @@ import com.ruoyi.common.annotation.Log; ...@@ -4,14 +4,18 @@ import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.mall.domain.Bo.MallSchoolExcelBo;
import com.ruoyi.mall.domain.Bo.MallTestSchoolRecordBo;
import com.ruoyi.mall.domain.MallSchool; import com.ruoyi.mall.domain.MallSchool;
import com.ruoyi.mall.service.IMallSchoolService; import com.ruoyi.mall.service.IMallSchoolService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
...@@ -109,5 +113,16 @@ public class MallSchoolController extends BaseController ...@@ -109,5 +113,16 @@ public class MallSchoolController extends BaseController
return mallSchoolService.submitSchoolUser(mallSchool); return mallSchoolService.submitSchoolUser(mallSchool);
} }
/**
* 导入学校录取数据列表
*/
@Log(title = "导入学校录取数据列表", businessType = BusinessType.IMPORT)
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
{
ExcelUtil<MallSchoolExcelBo> util = new ExcelUtil<MallSchoolExcelBo>(MallSchoolExcelBo.class);
List<MallSchoolExcelBo> list = util.importExcel(file.getInputStream());
return AjaxResult.success(mallSchoolService.importTestSchoolRecord(list, updateSupport));
}
} }
package com.ruoyi.web.controller.api; // package com.ruoyi.web.controller.api;
//
import cn.hutool.core.bean.BeanUtil; // import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONObject; // import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; // import cn.hutool.json.JSONUtil;
import com.github.pagehelper.PageInfo; // import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.domain.AjaxResult; // import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.StringUtils; // import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.mall.domain.Bo.SaveChatRequestMessage; // import com.ruoyi.mall.domain.Bo.SaveChatRequestMessage;
import com.ruoyi.mall.domain.Bo.SaveMessage; // import com.ruoyi.mall.domain.Bo.SaveMessage;
import com.ruoyi.mall.domain.Chat.ChatRequestMessage; // import com.ruoyi.mall.domain.Chat.ChatRequestMessage;
import com.ruoyi.mall.domain.Chat.ChatResponseMessage; // import com.ruoyi.mall.domain.Chat.ChatResponseMessage;
import com.ruoyi.mall.domain.Chat.Message; // import com.ruoyi.mall.domain.Chat.Message;
import com.ruoyi.mall.domain.MallMemberUser; // import com.ruoyi.mall.domain.MallMemberUser;
import com.ruoyi.mall.service.IMallMemberUserService; // import com.ruoyi.mall.service.IMallMemberUserService;
import okhttp3.*; // import okhttp3.*;
import okhttp3.RequestBody; // import okhttp3.RequestBody;
import org.apache.commons.lang3.ObjectUtils; // import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger; // import org.slf4j.Logger;
import org.slf4j.LoggerFactory; // import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.RedisTemplate; // import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*; // import org.springframework.web.bind.annotation.*;
//
import javax.annotation.Resource; // import javax.annotation.Resource;
import javax.validation.constraints.NotNull; // import javax.validation.constraints.NotNull;
import java.io.IOException; // import java.io.IOException;
import java.util.*; // import java.util.*;
import java.util.concurrent.TimeUnit; // import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; // import java.util.stream.Collectors;
//
/** // /**
* @ClassName 智能对话接口 // * @ClassName 智能对话接口
* @Description 智能对话接口 // * @Description 智能对话接口
* @Author LHY // * @Author LHY
* @Date 2023/10/18 // * @Date 2023/10/18
* @Version 1.0 // * @Version 1.0
**/ // **/
@RestController // @RestController
@RequestMapping("/api/chat") // @RequestMapping("/api/chat")
public class ApiChatController { // public class ApiChatController {
//
private final Logger logger = LoggerFactory.getLogger(this.getClass()); // private final Logger logger = LoggerFactory.getLogger(this.getClass());
//
@Resource // @Resource
private RedisTemplate redisTemplate; // private RedisTemplate redisTemplate;
//
@Resource // @Resource
private IMallMemberUserService mallMemberUserService; // private IMallMemberUserService mallMemberUserService;
//读取超时为60s // //读取超时为60s
private static final long READ_TIMEOUT = 60000; // private static final long READ_TIMEOUT = 60000;
//写入超时为60s // //写入超时为60s
private static final long WRITE_TIMEOUT = 60000; // private static final long WRITE_TIMEOUT = 60000;
//连接超时为60s // //连接超时为60s
private static final long CONNECT_TIMEOUT = 60000; // private static final long CONNECT_TIMEOUT = 60000;
//
private OkHttpClient.Builder builder = new OkHttpClient.Builder() // private OkHttpClient.Builder builder = new OkHttpClient.Builder()
.readTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS) // .readTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS)
.writeTimeout(WRITE_TIMEOUT, TimeUnit.MILLISECONDS) // .writeTimeout(WRITE_TIMEOUT, TimeUnit.MILLISECONDS)
.connectTimeout(CONNECT_TIMEOUT, TimeUnit.MILLISECONDS); // .connectTimeout(CONNECT_TIMEOUT, TimeUnit.MILLISECONDS);
//
//
private OkHttpClient client = builder.build(); // private OkHttpClient client = builder.build();
private final String ACCESS_TOKEN_URI = "https://aip.baidubce.com/oauth/2.0/token"; // private final String ACCESS_TOKEN_URI = "https://aip.baidubce.com/oauth/2.0/token";
// private final String CHAT_URI = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions"; // // private final String CHAT_URI = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions";
private final String CHAT_URI = "https://aip.baidubce.com/rpc/2.0/ai_custom/v2/wenxinworkshop/chat/completions"; // private final String CHAT_URI = "https://aip.baidubce.com/rpc/2.0/ai_custom/v2/wenxinworkshop/chat/completions";
//
private String apiKey = "hco0U4TGdVpA73F5mGBZliai"; // private String apiKey = "hco0U4TGdVpA73F5mGBZliai";
private String secretKey = "kBwPxP7PxRy5fTtIalW81GN7A3LFBrEN"; // private String secretKey = "kBwPxP7PxRy5fTtIalW81GN7A3LFBrEN";
//
//
//响应超时时间 // //响应超时时间
private int responseTimeOut = 5000; // private int responseTimeOut = 5000;
//
//
/** // /**
* 删除旧token // * 删除旧token
* // *
* @return // * @return
*/ // */
@GetMapping("/delQFAccessToken") // @GetMapping("/delQFAccessToken")
public AjaxResult delQFAccessToken(){ // public AjaxResult delQFAccessToken(){
try { // try {
// 删除原来的token // // 删除原来的token
redisTemplate.delete("qianFanAccessToken"); // redisTemplate.delete("qianFanAccessToken");
return AjaxResult.success("删除token成功"); // return AjaxResult.success("删除token成功");
}catch (Exception e){ // }catch (Exception e){
return AjaxResult.error("获取AccessToken异常!"); // return AjaxResult.error("获取AccessToken异常!");
} // }
} // }
//
//
/** // /**
* 获取千帆AccessToken // * 获取千帆AccessToken
* // *
* @return // * @return
*/ // */
@GetMapping("/getQFAccessToken") // @GetMapping("/getQFAccessToken")
public AjaxResult getAccessToken(){ // public AjaxResult getAccessToken(){
try { // try {
String token = getQianFanAccessToken(); // String token = getQianFanAccessToken();
return AjaxResult.success(token); // return AjaxResult.success(token);
}catch (Exception e){ // }catch (Exception e){
return AjaxResult.error("获取AccessToken异常!"); // return AjaxResult.error("获取AccessToken异常!");
} // }
} // }
//
//
//
/** // /**
* 从缓存中拿到千帆AccessToken // * 从缓存中拿到千帆AccessToken
* // *
* @return // * @return
*/ // */
private String getQianFanAccessToken() { // private String getQianFanAccessToken() {
String qianFanAccessToken = new String(); // String qianFanAccessToken = new String();
if(null == redisTemplate.boundValueOps("qianFanAccessToken").get()){ // if(null == redisTemplate.boundValueOps("qianFanAccessToken").get()){
MediaType mediaType = MediaType.parse("application/json"); // MediaType mediaType = MediaType.parse("application/json");
// MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); // // MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, ""); // RequestBody body = RequestBody.create(mediaType, "");
//创建一个请求 // //创建一个请求
Request request = new Request.Builder() // Request request = new Request.Builder()
.url(ACCESS_TOKEN_URI+"?client_id=" + apiKey + "&client_secret=" + secretKey + "&grant_type=client_credentials") // .url(ACCESS_TOKEN_URI+"?client_id=" + apiKey + "&client_secret=" + secretKey + "&grant_type=client_credentials")
.method("POST",body) // .method("POST",body)
.addHeader("Content-Type", "application/json") // .addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json") // .addHeader("Accept", "application/json")
// .addHeader("Content-Type", "application/x-www-form-urlencoded") // // .addHeader("Content-Type", "application/x-www-form-urlencoded")
.build(); // .build();
try { // try {
//使用浏览器对象发起请求 // //使用浏览器对象发起请求
Response response = client.newCall(request).execute(); // Response response = client.newCall(request).execute();
//只能执行一次response.body().string()。下次再执行会抛出流关闭异常,因此需要一个对象存储返回结果 // //只能执行一次response.body().string()。下次再执行会抛出流关闭异常,因此需要一个对象存储返回结果
String responseMessage = response.body().string(); // String responseMessage = response.body().string();
logger.info("获取accessToken成功"); // logger.info("获取accessToken成功");
JSONObject jsonObject = JSONUtil.parseObj(responseMessage); // JSONObject jsonObject = JSONUtil.parseObj(responseMessage);
String accessToken = (String) jsonObject.get("access_token"); // String accessToken = (String) jsonObject.get("access_token");
redisTemplate.boundValueOps("qianFanAccessToken").set(accessToken, 30, TimeUnit.DAYS); // redisTemplate.boundValueOps("qianFanAccessToken").set(accessToken, 30, TimeUnit.DAYS);
//
qianFanAccessToken = (String) redisTemplate.boundValueOps("qianFanAccessToken").get(); // qianFanAccessToken = (String) redisTemplate.boundValueOps("qianFanAccessToken").get();
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
} // }
}else{ // }else{
qianFanAccessToken = (String) redisTemplate.boundValueOps("qianFanAccessToken").get(); // qianFanAccessToken = (String) redisTemplate.boundValueOps("qianFanAccessToken").get();
} // }
return qianFanAccessToken; // return qianFanAccessToken;
} // }
//
/**对话 // /**对话
* // *
* @param params // * @param params
* @return // * @return
* @throws IOException // * @throws IOException
*/ // */
@PostMapping("/createPicture") // @PostMapping("/createPicture")
@org.springframework.web.bind.annotation.ResponseBody // @org.springframework.web.bind.annotation.ResponseBody
public AjaxResult chat(@org.springframework.web.bind.annotation.RequestBody Map<String, Object> params) throws IOException { // public AjaxResult chat(@org.springframework.web.bind.annotation.RequestBody Map<String, Object> params) throws IOException {
//对用户问题的判断 // //对用户问题的判断
if (!params.containsKey("question") || StringUtils.isEmpty(params.get("question").toString())) { // if (!params.containsKey("question") || StringUtils.isEmpty(params.get("question").toString())) {
return AjaxResult.error("缺少问题"); // return AjaxResult.error("缺少问题");
} // }
if (!params.containsKey("userId") || StringUtils.isEmpty(params.get("userId").toString())) { // if (!params.containsKey("userId") || StringUtils.isEmpty(params.get("userId").toString())) {
return AjaxResult.error("缺少用户id"); // return AjaxResult.error("缺少用户id");
} // }
long userId = Long.parseLong(params.get("userId").toString()); // long userId = Long.parseLong(params.get("userId").toString());
//
MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId); // MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId);
if (memberUser == null) { // if (memberUser == null) {
return AjaxResult.error("用户信息异常!!!"); // return AjaxResult.error("用户信息异常!!!");
} // }
//
String question = params.get("question").toString(); // String question = params.get("question").toString();
//通过参数获取一个Message // //通过参数获取一个Message
Message message = new Message("user",question); // Message message = new Message("user",question);
//请求参数 // //请求参数
ChatRequestMessage requestBody = new ChatRequestMessage(); // ChatRequestMessage requestBody = new ChatRequestMessage();
if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){ // if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){
String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString(); // String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString();
//System.out.println("json:"+json); // //System.out.println("json:"+json);
requestBody = JSONUtil.toBean(json, ChatRequestMessage.class); // requestBody = JSONUtil.toBean(json, ChatRequestMessage.class);
} // }
//将新的问题添加到消息上下文 // //将新的问题添加到消息上下文
requestBody.addMessage(message); // requestBody.addMessage(message);
String jsonStr = JSONUtil.toJsonStr(requestBody); // String jsonStr = JSONUtil.toJsonStr(requestBody);
//System.out.println("jsonStr:"+jsonStr); // //System.out.println("jsonStr:"+jsonStr);
MediaType mediaType = MediaType.parse("application/json"); // MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, jsonStr); // RequestBody body = RequestBody.create(mediaType, jsonStr);
Request request = new Request.Builder() // Request request = new Request.Builder()
.url(CHAT_URI+"?access_token="+getQianFanAccessToken()) // .url(CHAT_URI+"?access_token="+getQianFanAccessToken())
.method("POST", body) // .method("POST", body)
.addHeader("Content-Type", "application/json") // .addHeader("Content-Type", "application/json")
.build(); // .build();
try{ // try{
//logger.info("千帆AccessToken:{}",getQianFanAccessToken()); // //logger.info("千帆AccessToken:{}",getQianFanAccessToken());
Response response = client.newCall(request).execute(); // Response response = client.newCall(request).execute();
String responseJsonStr = response.body().string(); // String responseJsonStr = response.body().string();
logger.info("发送一次请求,询问问题:{}",question); // logger.info("发送一次请求,询问问题:{}",question);
ChatResponseMessage responseMessage = JSONUtil.toBean(responseJsonStr, ChatResponseMessage.class); // ChatResponseMessage responseMessage = JSONUtil.toBean(responseJsonStr, ChatResponseMessage.class);
System.out.println("返回的响应结果为:"+responseJsonStr); // System.out.println("返回的响应结果为:"+responseJsonStr);
String result = responseMessage.getResult(); // String result = responseMessage.getResult();
String answer = result.replaceAll("\n+", "\n"); // String answer = result.replaceAll("\n+", "\n");
logger.info("{}",answer); // logger.info("{}",answer);
Message assistant = new Message("assistant", answer); // Message assistant = new Message("assistant", answer);
requestBody.addMessage(assistant); // requestBody.addMessage(assistant);
//redis 存储 // //redis 存储
if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){ // if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){
Long expire = redisTemplate.getExpire("ChatWith" + memberUser.getId()); // Long expire = redisTemplate.getExpire("ChatWith" + memberUser.getId());
redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(requestBody), 30, TimeUnit.DAYS); // redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(requestBody), 30, TimeUnit.DAYS);
}else{ // }else{
redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(requestBody), 30, TimeUnit.DAYS); // redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(requestBody), 30, TimeUnit.DAYS);
} // }
logger.info("存入redis:" +redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString()); // logger.info("存入redis:" +redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString());
return AjaxResult.success(requestBody); // return AjaxResult.success(requestBody);
}catch (Exception e){ // }catch (Exception e){
e.printStackTrace(); // e.printStackTrace();
return AjaxResult.error("对话失败!"); // return AjaxResult.error("对话失败!");
} // }
//
} // }
//
/**对话 只返回最新内容 // /**对话 只返回最新内容
* // *
* @param params // * @param params
* @return // * @return
* @throws IOException // * @throws IOException
*/ // */
@PostMapping("/newChat") // @PostMapping("/newChat")
@org.springframework.web.bind.annotation.ResponseBody // @org.springframework.web.bind.annotation.ResponseBody
public AjaxResult chatNew(@org.springframework.web.bind.annotation.RequestBody Map<String, Object> params) throws IOException { // public AjaxResult chatNew(@org.springframework.web.bind.annotation.RequestBody Map<String, Object> params) throws IOException {
//对用户问题的判断 // //对用户问题的判断
if (!params.containsKey("question") || StringUtils.isEmpty(params.get("question").toString())) { // if (!params.containsKey("question") || StringUtils.isEmpty(params.get("question").toString())) {
return AjaxResult.error("缺少问题"); // return AjaxResult.error("缺少问题");
} // }
if (!params.containsKey("userId") || StringUtils.isEmpty(params.get("userId").toString())) { // if (!params.containsKey("userId") || StringUtils.isEmpty(params.get("userId").toString())) {
return AjaxResult.error("缺少用户id"); // return AjaxResult.error("缺少用户id");
} // }
if (!params.containsKey("hasVoice") || ObjectUtils.isEmpty(Integer.valueOf(params.get("hasVoice").toString()))){ // if (!params.containsKey("hasVoice") || ObjectUtils.isEmpty(Integer.valueOf(params.get("hasVoice").toString()))){
return AjaxResult.error("缺少语音状态"); // return AjaxResult.error("缺少语音状态");
} // }
long userId = Long.parseLong(params.get("userId").toString()); // long userId = Long.parseLong(params.get("userId").toString());
// 是否有语音0-没有,1-有 // // 是否有语音0-没有,1-有
Integer hasVoice = Integer.valueOf(params.get("hasVoice").toString()); // Integer hasVoice = Integer.valueOf(params.get("hasVoice").toString());
//
MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId); // MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId);
if (memberUser == null) { // if (memberUser == null) {
return AjaxResult.error("用户信息异常!!!"); // return AjaxResult.error("用户信息异常!!!");
} // }
//
String question = params.get("question").toString(); // String question = params.get("question").toString();
//通过参数获取一个Message // //通过参数获取一个Message
Message message = new Message("user",question); // Message message = new Message("user",question);
// 创建存储用saveMessage // // 创建存储用saveMessage
SaveMessage saveMessage = new SaveMessage(); // SaveMessage saveMessage = new SaveMessage();
saveMessage.setRole("user"); // saveMessage.setRole("user");
saveMessage.setContent(question); // saveMessage.setContent(question);
saveMessage.setHasVoice(hasVoice); // saveMessage.setHasVoice(hasVoice);
if (hasVoice == 1){ // if (hasVoice == 1){
saveMessage.setVoiceUrl(params.get("voiceUrl").toString()); // saveMessage.setVoiceUrl(params.get("voiceUrl").toString());
} // }
//请求参数 // //请求参数
ChatRequestMessage requestBody = new ChatRequestMessage(); // ChatRequestMessage requestBody = new ChatRequestMessage();
// 创建存储类 // // 创建存储类
SaveChatRequestMessage saveChatRequestMessage = new SaveChatRequestMessage(); // SaveChatRequestMessage saveChatRequestMessage = new SaveChatRequestMessage();
//
// 查询是否有记录 // // 查询是否有记录
if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){ // if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){
String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString(); // String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString();
//System.out.println("json:"+json); // //System.out.println("json:"+json);
//requestBody = JSONUtil.toBean(json, ChatRequestMessage.class); // //requestBody = JSONUtil.toBean(json, ChatRequestMessage.class);
saveChatRequestMessage = JSONUtil.toBean(json, SaveChatRequestMessage.class); // saveChatRequestMessage = JSONUtil.toBean(json, SaveChatRequestMessage.class);
// 记录信息复制到请求参数中 // // 记录信息复制到请求参数中
BeanUtil.copyProperties(saveChatRequestMessage, requestBody); // BeanUtil.copyProperties(saveChatRequestMessage, requestBody);
List<SaveMessage> saveMessageList = saveChatRequestMessage.getSaveMessageList(); // List<SaveMessage> saveMessageList = saveChatRequestMessage.getSaveMessageList();
ArrayList<Message> list = new ArrayList<>(); // ArrayList<Message> list = new ArrayList<>();
if (!saveMessageList.isEmpty()){ // if (!saveMessageList.isEmpty()){
for (SaveMessage saveMessageHistory : saveMessageList) { // for (SaveMessage saveMessageHistory : saveMessageList) {
Message m = BeanUtil.copyProperties(saveMessageHistory, Message.class); // Message m = BeanUtil.copyProperties(saveMessageHistory, Message.class);
list.add(m); // list.add(m);
} // }
requestBody.setMessages(list); // requestBody.setMessages(list);
} // }
} // }
//将新的问题添加到消息上下文 // //将新的问题添加到消息上下文
requestBody.addMessage(message); // requestBody.addMessage(message);
// 新信息添加保存 // // 新信息添加保存
saveChatRequestMessage.addSaveMessage(saveMessage); // saveChatRequestMessage.addSaveMessage(saveMessage);
//
String jsonStr = JSONUtil.toJsonStr(requestBody); // String jsonStr = JSONUtil.toJsonStr(requestBody);
//System.out.println("jsonStr:"+jsonStr); // //System.out.println("jsonStr:"+jsonStr);
MediaType mediaType = MediaType.parse("application/json"); // MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, jsonStr); // RequestBody body = RequestBody.create(mediaType, jsonStr);
Request request = new Request.Builder() // Request request = new Request.Builder()
.url(CHAT_URI+"?access_token="+getQianFanAccessToken()) // .url(CHAT_URI+"?access_token="+getQianFanAccessToken())
.method("POST", body) // .method("POST", body)
.addHeader("Content-Type", "application/json") // .addHeader("Content-Type", "application/json")
.build(); // .build();
try{ // try{
//logger.info("千帆AccessToken:{}",getQianFanAccessToken()); // //logger.info("千帆AccessToken:{}",getQianFanAccessToken());
Response response = client.newCall(request).execute(); // Response response = client.newCall(request).execute();
String responseJsonStr = response.body().string(); // String responseJsonStr = response.body().string();
logger.info("发送一次请求,询问问题:{}",question); // logger.info("发送一次请求,询问问题:{}",question);
ChatResponseMessage responseMessage = JSONUtil.toBean(responseJsonStr, ChatResponseMessage.class); // ChatResponseMessage responseMessage = JSONUtil.toBean(responseJsonStr, ChatResponseMessage.class);
System.out.println("返回的响应结果为:"+responseJsonStr); // System.out.println("返回的响应结果为:"+responseJsonStr);
String result = responseMessage.getResult(); // String result = responseMessage.getResult();
String answer = result.replaceAll("\n+", "\n"); // String answer = result.replaceAll("\n+", "\n");
logger.info("{}",answer); // logger.info("{}",answer);
Message assistant = new Message("assistant", answer); // Message assistant = new Message("assistant", answer);
requestBody.addMessage(assistant); // requestBody.addMessage(assistant);
//
// 存储信息 // // 存储信息
SaveMessage saveAnswer = BeanUtil.copyProperties(assistant, SaveMessage.class); // SaveMessage saveAnswer = BeanUtil.copyProperties(assistant, SaveMessage.class);
saveAnswer.setHasVoice(hasVoice); // saveAnswer.setHasVoice(hasVoice);
saveChatRequestMessage.addSaveMessage(saveAnswer); // saveChatRequestMessage.addSaveMessage(saveAnswer);
//
//redis 存储 // //redis 存储
if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){ // if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){
Long expire = redisTemplate.getExpire("ChatWith" + memberUser.getId()); // Long expire = redisTemplate.getExpire("ChatWith" + memberUser.getId());
redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(saveChatRequestMessage), 30, TimeUnit.DAYS); // redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(saveChatRequestMessage), 30, TimeUnit.DAYS);
}else{ // }else{
redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(saveChatRequestMessage), 30, TimeUnit.DAYS); // redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(saveChatRequestMessage), 30, TimeUnit.DAYS);
} // }
logger.info("存入redis:" +redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString()); // logger.info("存入redis:" +redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString());
List<SaveMessage> newChat = new ArrayList<>(); // List<SaveMessage> newChat = new ArrayList<>();
newChat.add(saveMessage); // newChat.add(saveMessage);
newChat.add(saveAnswer); // newChat.add(saveAnswer);
return AjaxResult.success(newChat); // return AjaxResult.success(newChat);
}catch (Exception e){ // }catch (Exception e){
e.printStackTrace(); // e.printStackTrace();
return AjaxResult.error("对话失败!"); // return AjaxResult.error("对话失败!");
} // }
//
} // }
//
/**对话历史-近到远—分页 // /**对话历史-近到远—分页
* // *
* @param userId 当前对话用户id // * @param userId 当前对话用户id
* @return // * @return
*/ // */
@GetMapping("/getChatHistory") // @GetMapping("/getChatHistory")
public AjaxResult getChatHistory(@RequestParam(defaultValue = "1") Integer pageNum, // public AjaxResult getChatHistory(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize, // @RequestParam(defaultValue = "10") Integer pageSize,
@NotNull(message = "Chat.getChatHistory.userId.isNull") Long userId){ // @NotNull(message = "Chat.getChatHistory.userId.isNull") Long userId){
try { // try {
MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId); // MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId);
if (memberUser == null) { // if (memberUser == null) {
return AjaxResult.error("用户信息异常!!!"); // return AjaxResult.error("用户信息异常!!!");
} // }
SaveChatRequestMessage requestBody = new SaveChatRequestMessage(); // SaveChatRequestMessage requestBody = new SaveChatRequestMessage();
List<SaveMessage> history = new ArrayList<>(); // List<SaveMessage> history = new ArrayList<>();
//有历史消息 // //有历史消息
if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){ // if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){
String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString(); // String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString();
System.out.println("json:"+json); // System.out.println("json:"+json);
requestBody = JSONUtil.toBean(json, SaveChatRequestMessage.class); // requestBody = JSONUtil.toBean(json, SaveChatRequestMessage.class);
if(null != requestBody.getSaveMessageList() && requestBody.getSaveMessageList().size()>0){ // if(null != requestBody.getSaveMessageList() && requestBody.getSaveMessageList().size()>0){
history = requestBody.getSaveMessageList(); // history = requestBody.getSaveMessageList();
Collections.reverse(history); // Collections.reverse(history);
} // }
} // }
//
//Page page = new Page<>(pageNum,pageSize); // //Page page = new Page<>(pageNum,pageSize);
////为Page类中的total属性赋值 // ////为Page类中的total属性赋值
//int total = history.size(); // //int total = history.size();
//page.setTotal(total); // //page.setTotal(total);
////计算当前需要显示的数据下标起始值 // ////计算当前需要显示的数据下标起始值
//int startIndex = (pageNum - 1) * pageSize; // //int startIndex = (pageNum - 1) * pageSize;
//int endIndex = Math.min(startIndex + pageSize,total); // //int endIndex = Math.min(startIndex + pageSize,total);
////从链表中截取需要显示的子链表,并加入到Page // ////从链表中截取需要显示的子链表,并加入到Page
//page.addAll(history.subList(startIndex,endIndex)); // //page.addAll(history.subList(startIndex,endIndex));
////以Page创建PageInfo // ////以Page创建PageInfo
//PageInfo pageInfo = new PageInfo<>(page); // //PageInfo pageInfo = new PageInfo<>(page);
//return AjaxResult.success().put("data",pageInfo); // //return AjaxResult.success().put("data",pageInfo);
//
//java8 stream实现list分页 // //java8 stream实现list分页
//
List<SaveMessage> pageList = history.stream().sorted().skip((pageNum - 1) * pageSize) // List<SaveMessage> pageList = history.stream().sorted().skip((pageNum - 1) * pageSize)
.limit(pageSize) // .limit(pageSize)
.collect(Collectors.toList()); // .collect(Collectors.toList());
PageInfo<SaveMessage> pageInfo = new PageInfo<SaveMessage>(pageList); // PageInfo<SaveMessage> pageInfo = new PageInfo<SaveMessage>(pageList);
//获取PageInfo其他参数 // //获取PageInfo其他参数
pageInfo.setTotal(history.size()); // pageInfo.setTotal(history.size());
//
int endRow = pageInfo.getEndRow() == 0 ? 0 : (int)((pageNum - 1) * pageSize + pageInfo.getEndRow() + 1); // int endRow = pageInfo.getEndRow() == 0 ? 0 : (int)((pageNum - 1) * pageSize + pageInfo.getEndRow() + 1);
pageInfo.setEndRow(endRow); // pageInfo.setEndRow(endRow);
boolean hasNextPage = history.size() <= pageSize * pageNum ? false : true; // boolean hasNextPage = history.size() <= pageSize * pageNum ? false : true;
pageInfo.setHasNextPage(hasNextPage); // pageInfo.setHasNextPage(hasNextPage);
boolean hasPreviousPage = pageNum == 1 ? false : true; // boolean hasPreviousPage = pageNum == 1 ? false : true;
pageInfo.setHasPreviousPage(hasPreviousPage); // pageInfo.setHasPreviousPage(hasPreviousPage);
pageInfo.setIsFirstPage(!hasPreviousPage); // pageInfo.setIsFirstPage(!hasPreviousPage);
boolean isLastPage = (history.size() > pageSize * (pageNum - 1) && history.size() <= pageSize * pageNum) ? true : false; // boolean isLastPage = (history.size() > pageSize * (pageNum - 1) && history.size() <= pageSize * pageNum) ? true : false;
pageInfo.setIsLastPage(isLastPage); // pageInfo.setIsLastPage(isLastPage);
int pages = history.size() % pageSize == 0 ? history.size() / pageSize : (history.size() / pageSize) + 1; // int pages = history.size() % pageSize == 0 ? history.size() / pageSize : (history.size() / pageSize) + 1;
pageInfo.setNavigateLastPage(pages); // pageInfo.setNavigateLastPage(pages);
int[] navigatePageNums = new int[pages]; // int[] navigatePageNums = new int[pages];
for (int i = 1; i < pages; i++) { // for (int i = 1; i < pages; i++) {
navigatePageNums[i - 1] = i; // navigatePageNums[i - 1] = i;
} // }
pageInfo.setNavigatepageNums(navigatePageNums); // pageInfo.setNavigatepageNums(navigatePageNums);
int nextPage = pageNum < pages ? pageNum + 1 : 0; // int nextPage = pageNum < pages ? pageNum + 1 : 0;
pageInfo.setNextPage(nextPage); // pageInfo.setNextPage(nextPage);
pageInfo.setPageNum(pageNum); // pageInfo.setPageNum(pageNum);
pageInfo.setPageSize(pageSize); // pageInfo.setPageSize(pageSize);
pageInfo.setPages(pages); // pageInfo.setPages(pages);
pageInfo.setPrePage(pageNum - 1); // pageInfo.setPrePage(pageNum - 1);
pageInfo.setSize(pageInfo.getList().size()); // pageInfo.setSize(pageInfo.getList().size());
int starRow = history.size() < pageSize * pageNum ? 1 + pageSize * (pageNum - 1) : 0; // int starRow = history.size() < pageSize * pageNum ? 1 + pageSize * (pageNum - 1) : 0;
pageInfo.setStartRow(starRow); // pageInfo.setStartRow(starRow);
return AjaxResult.success().put("data", pageInfo); // return AjaxResult.success().put("data", pageInfo);
//
}catch (Exception e){ // }catch (Exception e){
return AjaxResult.error("获取对话历史异常!"); // return AjaxResult.error("获取对话历史异常!");
} // }
} // }
//
/** 最后一页页数 // /** 最后一页页数
* // *
* @param pageNum // * @param pageNum
* @param pageSize // * @param pageSize
* @param userId // * @param userId
* @return // * @return
*/ // */
@GetMapping("/getLastNum") // @GetMapping("/getLastNum")
public AjaxResult getLastNum(@RequestParam(defaultValue = "1") Integer pageNum, // public AjaxResult getLastNum(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize, // @RequestParam(defaultValue = "10") Integer pageSize,
@NotNull(message = "Chat.getChatHistory.userId.isNull") Long userId){ // @NotNull(message = "Chat.getChatHistory.userId.isNull") Long userId){
try { // try {
MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId); // MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId);
if (memberUser == null) { // if (memberUser == null) {
return AjaxResult.error("用户信息异常!!!"); // return AjaxResult.error("用户信息异常!!!");
} // }
SaveChatRequestMessage requestBody = new SaveChatRequestMessage(); // SaveChatRequestMessage requestBody = new SaveChatRequestMessage();
List<SaveMessage> history = new ArrayList<>(); // List<SaveMessage> history = new ArrayList<>();
//有历史消息 // //有历史消息
if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){ // if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){
String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString(); // String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString();
System.out.println("json:"+json); // System.out.println("json:"+json);
requestBody = JSONUtil.toBean(json, SaveChatRequestMessage.class); // requestBody = JSONUtil.toBean(json, SaveChatRequestMessage.class);
if(null != requestBody.getSaveMessageList() && requestBody.getSaveMessageList().size()>0){ // if(null != requestBody.getSaveMessageList() && requestBody.getSaveMessageList().size()>0){
history = requestBody.getSaveMessageList(); // history = requestBody.getSaveMessageList();
} // }
int total = history.size(); // int total = history.size();
int num = total/pageSize; // int num = total/pageSize;
int remain = total%pageSize; // int remain = total%pageSize;
if(num == 0 && remain > 0){ // if(num == 0 && remain > 0){
return AjaxResult.success().put("lastPage",1); // return AjaxResult.success().put("lastPage",1);
} else if(num > 0 && remain > 0) { // } else if(num > 0 && remain > 0) {
return AjaxResult.success().put("lastPage",num+1); // return AjaxResult.success().put("lastPage",num+1);
}else if(num > 0 && remain == 0) { // }else if(num > 0 && remain == 0) {
return AjaxResult.success().put("lastPage",num); // return AjaxResult.success().put("lastPage",num);
}else{ // }else{
return AjaxResult.success().put("lastPage",0); // return AjaxResult.success().put("lastPage",0);
} // }
}else{ // }else{
return AjaxResult.success().put("lastPage",0); // return AjaxResult.success().put("lastPage",0);
} // }
//
//
}catch (Exception e){ // }catch (Exception e){
return AjaxResult.error("获取最后页数异常!"); // return AjaxResult.error("获取最后页数异常!");
} // }
} // }
//
//
/** // /**
* 调用知识库 // * 调用知识库
*/ // */
@PostMapping("/chatNew") // @PostMapping("/chatNew")
@org.springframework.web.bind.annotation.ResponseBody // @org.springframework.web.bind.annotation.ResponseBody
public AjaxResult newChat(@org.springframework.web.bind.annotation.RequestBody Map<String, Object> params){ // public AjaxResult newChat(@org.springframework.web.bind.annotation.RequestBody Map<String, Object> params){
//对用户问题的判断 // //对用户问题的判断
if (!params.containsKey("question") || StringUtils.isEmpty(params.get("question").toString())) { // if (!params.containsKey("question") || StringUtils.isEmpty(params.get("question").toString())) {
return AjaxResult.error("缺少问题"); // return AjaxResult.error("缺少问题");
} // }
if (!params.containsKey("userId") || StringUtils.isEmpty(params.get("userId").toString())) { // if (!params.containsKey("userId") || StringUtils.isEmpty(params.get("userId").toString())) {
return AjaxResult.error("缺少用户id"); // return AjaxResult.error("缺少用户id");
} // }
if (!params.containsKey("hasVoice") || ObjectUtils.isEmpty(Integer.valueOf(params.get("hasVoice").toString()))){ // if (!params.containsKey("hasVoice") || ObjectUtils.isEmpty(Integer.valueOf(params.get("hasVoice").toString()))){
return AjaxResult.error("缺少语音状态"); // return AjaxResult.error("缺少语音状态");
} // }
long userId = Long.parseLong(params.get("userId").toString()); // long userId = Long.parseLong(params.get("userId").toString());
// 是否有语音0-没有,1-有 // // 是否有语音0-没有,1-有
Integer hasVoice = Integer.valueOf(params.get("hasVoice").toString()); // Integer hasVoice = Integer.valueOf(params.get("hasVoice").toString());
//
MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId); // MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId);
if (memberUser == null) { // if (memberUser == null) {
return AjaxResult.error("用户信息异常!!!"); // return AjaxResult.error("用户信息异常!!!");
} // }
//
String question = params.get("question").toString(); // String question = params.get("question").toString();
//通过参数获取一个Message // //通过参数获取一个Message
Message message = new Message("user",question); // Message message = new Message("user",question);
// 创建存储用saveMessage // // 创建存储用saveMessage
SaveMessage saveMessage = new SaveMessage(); // SaveMessage saveMessage = new SaveMessage();
saveMessage.setRole("user"); // saveMessage.setRole("user");
saveMessage.setContent(question); // saveMessage.setContent(question);
saveMessage.setHasVoice(hasVoice); // saveMessage.setHasVoice(hasVoice);
if (hasVoice == 1){ // if (hasVoice == 1){
saveMessage.setVoiceUrl(params.get("voiceUrl").toString()); // saveMessage.setVoiceUrl(params.get("voiceUrl").toString());
} // }
//
com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject(); // com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
jsonObject.put("query", question); // jsonObject.put("query", question);
List<String> plugins = new ArrayList<>(); // List<String> plugins = new ArrayList<>();
plugins.add("uuid-zhishiku"); // plugins.add("uuid-zhishiku");
//plugins.add("uuid-weatherforecast"); // //plugins.add("uuid-weatherforecast");
//jsonObject.put("plugins", plugins); // //jsonObject.put("plugins", plugins);
//jsonObject.put("verbose", false); // //jsonObject.put("verbose", false);
//
//
// 创建存储类 // // 创建存储类
SaveChatRequestMessage saveChatRequestMessage = new SaveChatRequestMessage(); // SaveChatRequestMessage saveChatRequestMessage = new SaveChatRequestMessage();
ArrayList<Message> historyList = new ArrayList<>(); // ArrayList<Message> historyList = new ArrayList<>();
// 查询是否有记录 // // 查询是否有记录
if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){ // if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){
String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString(); // String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString();
saveChatRequestMessage = JSONUtil.toBean(json, SaveChatRequestMessage.class); // saveChatRequestMessage = JSONUtil.toBean(json, SaveChatRequestMessage.class);
// 记录信息复制到请求参数中 // // 记录信息复制到请求参数中
List<SaveMessage> saveMessageList = saveChatRequestMessage.getSaveMessageList(); // List<SaveMessage> saveMessageList = saveChatRequestMessage.getSaveMessageList();
//
if (!saveMessageList.isEmpty()){ // if (!saveMessageList.isEmpty()){
List<SaveMessage> shortList = new ArrayList<>(); // List<SaveMessage> shortList = new ArrayList<>();
int size = saveMessageList.size(); // int size = saveMessageList.size();
if ( size >= 2){ // if ( size >= 2){
shortList.add(saveMessageList.get(size - 2)); // shortList.add(saveMessageList.get(size - 2));
shortList.add(saveMessageList.get(size - 1)); // shortList.add(saveMessageList.get(size - 1));
for (SaveMessage saveMessageHistory : shortList) { // for (SaveMessage saveMessageHistory : shortList) {
Message m = BeanUtil.copyProperties(saveMessageHistory, Message.class); // Message m = BeanUtil.copyProperties(saveMessageHistory, Message.class);
historyList.add(m); // historyList.add(m);
} // }
} // }
//
} // }
} // }
//将新的问题添加到消息上下文 // //将新的问题添加到消息上下文
//jsonObject.put("history", historyList); // //jsonObject.put("history", historyList);
// 新信息添加保存 // // 新信息添加保存
saveChatRequestMessage.addSaveMessage(saveMessage); // saveChatRequestMessage.addSaveMessage(saveMessage);
//
String jsonStr = jsonObject.toJSONString(); // String jsonStr = jsonObject.toJSONString();
MediaType mediaType = MediaType.parse("application/json"); // MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, jsonStr); // RequestBody body = RequestBody.create(mediaType, jsonStr);
Request request = new Request.Builder() // Request request = new Request.Builder()
// .url("https://aip.baidubce.com/rpc/2.0/ai_custom/v2/wenxinworkshop/plugin/jfa2nhi1zap61qy7?access_token="+getQianFanAccessToken()) // // .url("https://aip.baidubce.com/rpc/2.0/ai_custom/v2/wenxinworkshop/plugin/jfa2nhi1zap61qy7?access_token="+getQianFanAccessToken())
.url("https://qianfan.baidubce.com/v2/chat/completions") // .url("https://qianfan.baidubce.com/v2/chat/completions")
.method("POST", body) // .method("POST", body)
.addHeader("Content-Type", "application/json") // .addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer " + getQianFanAccessToken()) // .addHeader("Authorization", "Bearer " + getQianFanAccessToken())
.build(); // .build();
try{ // try{
logger.info("千帆AccessToken:{}",getQianFanAccessToken()); // logger.info("千帆AccessToken:{}",getQianFanAccessToken());
Response response = client.newCall(request).execute(); // Response response = client.newCall(request).execute();
String responseJsonStr = response.body().string(); // String responseJsonStr = response.body().string();
//
com.alibaba.fastjson.JSONObject data = JSONUtil.toBean(responseJsonStr, com.alibaba.fastjson.JSONObject.class); // com.alibaba.fastjson.JSONObject data = JSONUtil.toBean(responseJsonStr, com.alibaba.fastjson.JSONObject.class);
System.out.println("返回的响应结果为:"+responseJsonStr); // System.out.println("返回的响应结果为:"+responseJsonStr);
System.out.println("data:"+data); // System.out.println("data:"+data);
System.out.println("result:"+data.getString("result")); // System.out.println("result:"+data.getString("result"));
System.out.println("response:"+response); // System.out.println("response:"+response);
String result = data.getString("result"); // String result = data.getString("result");
if (StringUtils.isNotBlank(result)){ // if (StringUtils.isNotBlank(result)){
String answer = result.replaceAll("\n", ""); // String answer = result.replaceAll("\n", "");
//
//int i = answer.indexOf("\n"); // //int i = answer.indexOf("\n");
Message assistant = new Message("assistant", answer); // Message assistant = new Message("assistant", answer);
//if (i> 0){ // //if (i> 0){
// assistant.setContent(answer.substring(0,i)); // // assistant.setContent(answer.substring(0,i));
//} // //}
//
//
// 存储信息 // // 存储信息
SaveMessage saveAnswer = BeanUtil.copyProperties(assistant, SaveMessage.class); // SaveMessage saveAnswer = BeanUtil.copyProperties(assistant, SaveMessage.class);
saveAnswer.setHasVoice(hasVoice); // saveAnswer.setHasVoice(hasVoice);
//
saveChatRequestMessage.addSaveMessage(saveAnswer); // saveChatRequestMessage.addSaveMessage(saveAnswer);
//
//redis 存储 // //redis 存储
if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){ // if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){
Long expire = redisTemplate.getExpire("ChatWith" + memberUser.getId()); // Long expire = redisTemplate.getExpire("ChatWith" + memberUser.getId());
redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(saveChatRequestMessage), 30, TimeUnit.DAYS); // redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(saveChatRequestMessage), 30, TimeUnit.DAYS);
}else{ // }else{
redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(saveChatRequestMessage), 30, TimeUnit.DAYS); // redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(saveChatRequestMessage), 30, TimeUnit.DAYS);
} // }
logger.info("存入redis:" +redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString()); // logger.info("存入redis:" +redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString());
List<SaveMessage> newChat = new ArrayList<>(); // List<SaveMessage> newChat = new ArrayList<>();
newChat.add(saveMessage); // newChat.add(saveMessage);
newChat.add(saveAnswer); // newChat.add(saveAnswer);
//
return AjaxResult.success(newChat); // return AjaxResult.success(newChat);
}else{ // }else{
logger.error("对话返回结果为空"); // logger.error("对话返回结果为空");
return AjaxResult.error("对话失败!"); // return AjaxResult.error("对话失败!");
} // }
//
}catch (Exception e){ // }catch (Exception e){
e.printStackTrace(); // e.printStackTrace();
return AjaxResult.error("对话失败!"); // return AjaxResult.error("对话失败!");
} // }
//
} // }
//
} // }
package com.ruoyi.web.controller.api;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.mall.domain.Bo.SaveChatRequestMessage;
import com.ruoyi.mall.domain.Bo.SaveMessage;
import com.ruoyi.mall.domain.Chat.*;
import com.ruoyi.mall.domain.MallMemberUser;
import com.ruoyi.mall.service.IMallMemberUserService;
import okhttp3.RequestBody;
import okhttp3.*;
import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* @ClassName 智能对话接口
* @Description 智能对话接口
* @Author LHY
* @Date 2023/10/18
* @Version 1.0
**/
@RestController
@RequestMapping("/api/chat")
public class ApiChatNewController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Resource
private RedisTemplate redisTemplate;
@Resource
private IMallMemberUserService mallMemberUserService;
@Value("${baidu.appId}")
private String APP_ID;
@Value("${baidu.appKey}")
private String APP_KEY;
// 读取超时为60s
private static final long READ_TIMEOUT = 60000;
// 写入超时为60s
private static final long WRITE_TIMEOUT = 60000;
// 连接超时为60s
private static final long CONNECT_TIMEOUT = 60000;
private static final long CALL_TIMEOUT = 60000;
private static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder()
// 设置调用超时时间
.callTimeout(CALL_TIMEOUT, TimeUnit.MILLISECONDS)
// 设置读取超时时间
.readTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS)
// 设置写超时时间
.writeTimeout(WRITE_TIMEOUT, TimeUnit.MILLISECONDS)
// 设置连接超时时间
.connectTimeout(CONNECT_TIMEOUT, TimeUnit.MILLISECONDS)
.build();
private static final ObjectMapper objectMapper = new ObjectMapper();
// 本次对话ID
private String conversation_id;
/**对话历史-近到远—分页
*
* @param userId 当前对话用户id
* @return
*/
@GetMapping("/getChatHistory")
public AjaxResult getChatHistory(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
@NotNull(message = "Chat.getChatHistory.userId.isNull") Long userId){
try {
MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId);
if (memberUser == null) {
return AjaxResult.error("用户信息异常!!!");
}
SaveChatRequestMessage requestBody = new SaveChatRequestMessage();
List<SaveMessage> history = new ArrayList<>();
//有历史消息
if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){
String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString();
System.out.println("json:"+json);
requestBody = JSONUtil.toBean(json, SaveChatRequestMessage.class);
if(null != requestBody.getSaveMessageList() && requestBody.getSaveMessageList().size()>0){
history = requestBody.getSaveMessageList();
Collections.reverse(history);
}
}
List<SaveMessage> pageList = history.stream().sorted().skip((pageNum - 1) * pageSize)
.limit(pageSize)
.collect(Collectors.toList());
PageInfo<SaveMessage> pageInfo = new PageInfo<SaveMessage>(pageList);
//获取PageInfo其他参数
pageInfo.setTotal(history.size());
int endRow = pageInfo.getEndRow() == 0 ? 0 : (int)((pageNum - 1) * pageSize + pageInfo.getEndRow() + 1);
pageInfo.setEndRow(endRow);
boolean hasNextPage = history.size() <= pageSize * pageNum ? false : true;
pageInfo.setHasNextPage(hasNextPage);
boolean hasPreviousPage = pageNum == 1 ? false : true;
pageInfo.setHasPreviousPage(hasPreviousPage);
pageInfo.setIsFirstPage(!hasPreviousPage);
boolean isLastPage = (history.size() > pageSize * (pageNum - 1) && history.size() <= pageSize * pageNum) ? true : false;
pageInfo.setIsLastPage(isLastPage);
int pages = history.size() % pageSize == 0 ? history.size() / pageSize : (history.size() / pageSize) + 1;
pageInfo.setNavigateLastPage(pages);
int[] navigatePageNums = new int[pages];
for (int i = 1; i < pages; i++) {
navigatePageNums[i - 1] = i;
}
pageInfo.setNavigatepageNums(navigatePageNums);
int nextPage = pageNum < pages ? pageNum + 1 : 0;
pageInfo.setNextPage(nextPage);
pageInfo.setPageNum(pageNum);
pageInfo.setPageSize(pageSize);
pageInfo.setPages(pages);
pageInfo.setPrePage(pageNum - 1);
pageInfo.setSize(pageInfo.getList().size());
int starRow = history.size() < pageSize * pageNum ? 1 + pageSize * (pageNum - 1) : 0;
pageInfo.setStartRow(starRow);
return AjaxResult.success().put("data", pageInfo);
}catch (Exception e){
return AjaxResult.error("获取对话历史异常!");
}
}
/**
* 调用知识库
*/
@PostMapping("/chatNew")
@org.springframework.web.bind.annotation.ResponseBody
public AjaxResult newChat(@org.springframework.web.bind.annotation.RequestBody Map<String, Object> params){
//对用户问题的判断
if (!params.containsKey("question") || StringUtils.isEmpty(params.get("question").toString())) {
return AjaxResult.error("缺少问题");
}
if (!params.containsKey("userId") || StringUtils.isEmpty(params.get("userId").toString())) {
return AjaxResult.error("缺少用户id");
}
if (!params.containsKey("hasVoice") || ObjectUtils.isEmpty(Integer.valueOf(params.get("hasVoice").toString()))){
return AjaxResult.error("缺少语音状态");
}
long userId = Long.parseLong(params.get("userId").toString());
// 是否有语音0-没有,1-有
Integer hasVoice = Integer.valueOf(params.get("hasVoice").toString());
MallMemberUser memberUser = mallMemberUserService.selectMallMemberUserById(userId);
if (memberUser == null) {
return AjaxResult.error("用户信息异常!!!");
}
String question = params.get("question").toString();
// 创建存储用saveMessage
SaveMessage saveMessage = new SaveMessage();
saveMessage.setRole("user");
saveMessage.setContent(question);
saveMessage.setHasVoice(hasVoice);
if (hasVoice == 1){
saveMessage.setVoiceUrl(params.get("voiceUrl").toString());
}
com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
jsonObject.put("query", question);
List<String> plugins = new ArrayList<>();
plugins.add("uuid-zhishiku");
//plugins.add("uuid-weatherforecast");
//jsonObject.put("plugins", plugins);
//jsonObject.put("verbose", false);
// 创建存储类
SaveChatRequestMessage saveChatRequestMessage = new SaveChatRequestMessage();
ArrayList<Message> historyList = new ArrayList<>();
// 查询是否有记录
if(redisTemplate.hasKey("ChatWith" + memberUser.getId())){
String json = redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString();
saveChatRequestMessage = JSONUtil.toBean(json, SaveChatRequestMessage.class);
// 记录信息复制到请求参数中
List<SaveMessage> saveMessageList = saveChatRequestMessage.getSaveMessageList();
if (!saveMessageList.isEmpty()){
List<SaveMessage> shortList = new ArrayList<>();
int size = saveMessageList.size();
if ( size >= 2){
shortList.add(saveMessageList.get(size - 2));
shortList.add(saveMessageList.get(size - 1));
for (SaveMessage saveMessageHistory : shortList) {
Message m = BeanUtil.copyProperties(saveMessageHistory, Message.class);
historyList.add(m);
}
}
}
}
//将新的问题添加到消息上下文
jsonObject.put("history", historyList);
// 新信息添加保存
saveChatRequestMessage.addSaveMessage(saveMessage);
try {
BaiduAppResponse qaq = qaq(question,memberUser);
if (StringUtils.isNotBlank(qaq.getAnswer())) {
Message assistant = new Message("assistant", qaq.getAnswer());
// // 存储信息
SaveMessage saveAnswer = BeanUtil.copyProperties(assistant, SaveMessage.class);
saveAnswer.setHasVoice(hasVoice);
saveChatRequestMessage.addSaveMessage(saveAnswer);
// redis 存储
if (redisTemplate.hasKey("ChatWith" + memberUser.getId())) {
redisTemplate.getExpire("ChatWith" + memberUser.getId());
redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(saveChatRequestMessage), 30, TimeUnit.DAYS);
} else {
redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).set(JSONUtil.toJsonStr(saveChatRequestMessage), 30, TimeUnit.DAYS);
}
logger.info("存入redis:" + redisTemplate.boundValueOps("ChatWith" + memberUser.getId()).get().toString());
List<SaveMessage> newChat = new ArrayList<>();
newChat.add(saveMessage);
newChat.add(saveAnswer);
return AjaxResult.success(newChat);
} else {
logger.error("对话返回结果为空");
return AjaxResult.error("对话失败!");
}
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.error("对话失败!");
}
}
/**
* 提问且获取消息
*/
public BaiduAppResponse qaq(String question,MallMemberUser memberUser) throws Exception {
// 没有创建回话则创建。
if (conversation_id == null || "".equals(conversation_id)) {
createConversation(memberUser.getId());
}
// 提问
logger.info("提问千帆App:" + question);
MediaType mediaType = MediaType.parse("application/json");
// 消息体
String json = objectMapper.writeValueAsString(new BaiduAppRequest(APP_ID, question, conversation_id));
RequestBody body = RequestBody.create(mediaType, json);
// 请求
Request request = new Request.Builder()
.url("https://qianfan.baidubce.com/v2/app/conversation/runs")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("X-Appbuilder-Authorization", "Bearer " + APP_KEY)
.build();
Response response = HTTP_CLIENT.newCall(request).execute();
// 获取消息
String res = response.body().string();
logger.info("HTTP请求千帆App回复:" + res);
BaiduAppResponse baiduAppResponse = objectMapper.readValue(res, BaiduAppResponse.class);
logger.info("千帆App回复对象:" + JSONUtil.toJsonStr(baiduAppResponse));
logger.info("千帆App回复:" + baiduAppResponse.getAnswer());
return baiduAppResponse;
}
/**
* 创建和百度千帆AppBuilder的对话
*/
private void createConversation(Long userId) throws IOException {
Object object = redisTemplate.boundValueOps("conversation_id_" + userId).get();
if (ObjectUtils.isNotEmpty(object)){
conversation_id = object.toString();
}else {
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"app_id\":\"" + APP_ID + "\"}");
Request request = new Request.Builder()
.url("https://qianfan.baidubce.com/v2/app/conversation")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("X-Appbuilder-Authorization", "Bearer " + APP_KEY)
.build();
Response response = HTTP_CLIENT.newCall(request).execute();
String res = response.body().string();
logger.info("百度千帆AppBuilder 创建对话响应:" + res);
conversation_id = objectMapper.readTree(res).get("conversation_id").asText();
}
redisTemplate.boundValueOps("conversation_id_" + userId).set(conversation_id, 1, TimeUnit.HOURS);
}
}
...@@ -6,30 +6,22 @@ import com.github.pagehelper.PageHelper; ...@@ -6,30 +6,22 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.mall.domain.*;
import com.ruoyi.mall.domain.Bo.CheckOutReportBo; import com.ruoyi.mall.domain.Bo.CheckOutReportBo;
import com.ruoyi.mall.domain.Bo.CheckingOutParamBo; import com.ruoyi.mall.domain.Bo.CheckingOutParamBo;
import com.ruoyi.mall.domain.MallMemberUser;
import com.ruoyi.mall.domain.MemberReportIntelligence;
import com.ruoyi.mall.domain.ReportDraft;
import com.ruoyi.mall.domain.ReportIntelligence;
import com.ruoyi.mall.domain.Vo.*; import com.ruoyi.mall.domain.Vo.*;
import com.ruoyi.mall.mapper.MallAcceptPlanMapper;
import com.ruoyi.mall.mapper.MallAcceptRateSettingMapper;
import com.ruoyi.mall.mapper.MallMemberUserMapper; import com.ruoyi.mall.mapper.MallMemberUserMapper;
import com.ruoyi.mall.mapper.MallSchoolTagMapper;
import com.ruoyi.mall.service.*; import com.ruoyi.mall.service.*;
import com.ruoyi.mall.service.impl.MallCountMethodServiceImpl;
import com.sun.org.apache.xpath.internal.operations.Bool;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.springframework.security.core.parameters.P;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/**志愿填报 自主选择*/ /**志愿填报 自主选择*/
...@@ -136,7 +128,7 @@ public class ApiCheckingOutController { ...@@ -136,7 +128,7 @@ public class ApiCheckingOutController {
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
mallMemberUserService.updateRate(mallMemberUser.getId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore()); mallMemberUserService.updateRate(mallMemberUser.getId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore(), mallMemberUser.getSubjectType());
} }
}).start(); }).start();
} }
......
...@@ -506,8 +506,8 @@ public class ApiMemberController { ...@@ -506,8 +506,8 @@ public class ApiMemberController {
if (params.containsKey("userId") && StringUtils.isNotBlank(params.get("userId").toString())) { if (params.containsKey("userId") && StringUtils.isNotBlank(params.get("userId").toString())) {
long userId = Long.parseLong(params.get("userId").toString()); long userId = Long.parseLong(params.get("userId").toString());
MallMemberUser mallMemberUser = memberUserService.selectMallMemberUserById(userId); MallMemberUser mallMemberUser = memberUserService.selectMallMemberUserById(userId);
if (mallMemberUser != null && mallMemberUser.getIndexUserId() != 0 && mallMemberUser.getIndexUserId() != null) { if (mallMemberUser != null && (mallMemberUser.getIntroUser() != null && mallMemberUser.getIntroUser() != 0) || (mallMemberUser.getIndexUserId() != null && mallMemberUser.getIndexUserId() > 0)) {
MallMemberUser topUser = memberUserService.selectMallMemberUserById(mallMemberUser.getIndexUserId()); MallMemberUser topUser = memberUserService.selectMallMemberUserById(mallMemberUser.getIntroUser() != null ? mallMemberUser.getIntroUser() : mallMemberUser.getIndexUserId());
if (topUser != null && topUser.getIndexPrice().compareTo(new BigDecimal(0)) > 0) { if (topUser != null && topUser.getIndexPrice().compareTo(new BigDecimal(0)) > 0) {
userPrice = String.valueOf(topUser.getIndexPrice()); userPrice = String.valueOf(topUser.getIndexPrice());
} }
......
...@@ -7,9 +7,9 @@ spring: ...@@ -7,9 +7,9 @@ spring:
# 主库数据源 # 主库数据源
master: master:
# 本地数据源 # 本地数据源
# url: jdbc:mysql://rm-hp3340490n5mw72tcto.mysql.huhehaote.rds.aliyuncs.com:3306/yikaozhiyuan_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true # url: jdbc:mysql://localhost:3306/yikaozhiyuan_20250623?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
# username: yikaozhiyuan # username: root
# password: KxappNYy7dQUzuterEncvBt@Pf # password: 123456
# 正式数据源 # 正式数据源
url: jdbc:mysql://bj-cynosdbmysql-grp-oppabofo.sql.tencentcdb.com:29687/yikaozhiyuan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true url: jdbc:mysql://bj-cynosdbmysql-grp-oppabofo.sql.tencentcdb.com:29687/yikaozhiyuan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
username: root username: root
......
...@@ -142,3 +142,7 @@ qiNiu: ...@@ -142,3 +142,7 @@ qiNiu:
secretKey: tWJjsaYPBBACuyw8CfaF9h2BRUziuje_zwrz4GyE secretKey: tWJjsaYPBBACuyw8CfaF9h2BRUziuje_zwrz4GyE
bucketName: xiaoniu666666 bucketName: xiaoniu666666
baseUrl: https://image.xnszz.com/ baseUrl: https://image.xnszz.com/
baidu:
appId: 3c3927bd-2722-41eb-8363-7539177f4914
appKey: bce-v3/ALTAK-ZqT2bHLCdP4vVlnMk0d0s/67e7275c383eb772c85bffb939158f19e112f49f
\ No newline at end of file
...@@ -52,7 +52,7 @@ public class ImgUpload { ...@@ -52,7 +52,7 @@ public class ImgUpload {
if (StringUtils.isBlank(path)) { if (StringUtils.isBlank(path)) {
path = "IMG"; path = "IMG";
} }
return auth.uploadToken(bucketname, null, 3600, new StringMap().put("saveKey", path + "$(etag)$(ext)")); return auth.uploadToken(bucketname, null, 3600, new StringMap().put("saveKey", "$(etag)$(ext)" + path));
} }
public String upload(byte[] data, String fileType) throws IOException { public String upload(byte[] data, String fileType) throws IOException {
......
...@@ -178,35 +178,35 @@ public class RandomUtil extends Random { ...@@ -178,35 +178,35 @@ public class RandomUtil extends Random {
super(seed); super(seed);
} }
public int[] nextInt(int n, int size) { // public int[] nextInt(int n, int size) {
if (size > n) { // if (size > n) {
size = n; // size = n;
} // }
//
Set set = new LinkedHashSet(); // Set set = new LinkedHashSet();
//
for (int i = 0; i < size; i++) { // for (int i = 0; i < size; i++) {
while (true) { // while (true) {
Integer value = new Integer(nextInt(n)); // Integer value = new Integer(nextInt(n));
//
if (!set.contains(value)) { // if (!set.contains(value)) {
set.add(value); // set.add(value);
//
break; // break;
} // }
} // }
} // }
//
int[] array = new int[set.size()]; // int[] array = new int[set.size()];
//
Iterator itr = set.iterator(); // Iterator itr = set.iterator();
//
for (int i = 0; i < array.length; i++) { // for (int i = 0; i < array.length; i++) {
array[i] = ((Integer)itr.next()).intValue(); // array[i] = (Integer) itr.next();
} // }
//
return array; // return array;
} // }
public void randomize(char[] array) { public void randomize(char[] array) {
int length = array.length; int length = array.length;
......
package com.ruoyi.common.weixin.utils; package com.ruoyi.common.weixin.utils;
import cn.hutool.core.util.IdUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.redis.RedisCache;
...@@ -13,7 +14,6 @@ import org.slf4j.LoggerFactory; ...@@ -13,7 +14,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.BufferedInputStream; import java.io.BufferedInputStream;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
...@@ -140,13 +140,13 @@ public class WeiXinUtils { ...@@ -140,13 +140,13 @@ public class WeiXinUtils {
* @return 图片链接 * @return 图片链接
*/ */
public String getQRCode(Long memberUserId, String key){ public String getQRCode(Long memberUserId, String key){
String qrCodeUrl = ""; String resultUrl = "";
try { try {
//获取token //获取token
String accessToken = this.getAccessToken(); String accessToken = this.getAccessToken();
String codeUrl = "https://api.weixin.qq.com/wxa/getwxacode?access_token="+ accessToken; String codeUrl = "https://api.weixin.qq.com/wxa/getwxacode?access_token="+ accessToken;
String path = weiXinConfig.getWxPath()+memberUserId;
//post参数 //post参数
String path = weiXinConfig.getWxPath()+memberUserId;
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("path", path); jsonObject.put("path", path);
Map<String, Object> lineColor = new HashMap<>(); Map<String, Object> lineColor = new HashMap<>();
...@@ -172,14 +172,54 @@ public class WeiXinUtils { ...@@ -172,14 +172,54 @@ public class WeiXinUtils {
//获取数据 //获取数据
BufferedInputStream bis = new BufferedInputStream(httpUrlConnection.getInputStream()); BufferedInputStream bis = new BufferedInputStream(httpUrlConnection.getInputStream());
//文件上传,返回小程序码url //文件上传,返回小程序码url
qrCodeUrl = new ImgUpload().streamUpload(bis, key); resultUrl = new ImgUpload().streamUpload(bis, IdUtil.getSnowflakeNextIdStr()+"_"+key);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return qrCodeUrl; return resultUrl;
} }
// public String getQRCode(Long memberUserId, String key){
// String qrCodeUrl = "";
// try {
// //获取token
// String accessToken = this.getAccessToken();
// String codeUrl = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+ accessToken;
// String path = weiXinConfig.getWxPath()+memberUserId;
// //post参数
// JSONObject jsonObject = new JSONObject();
// jsonObject.put("path", path);
// Map<String, Object> lineColor = new HashMap<>();
// lineColor.put("r", 4);
// lineColor.put("g", 157);
// lineColor.put("b", 150);
// jsonObject.put("line_color", lineColor);
// String env_version = "release";// 正式版为 "release",体验版为 "trial",开发版为 "develop"
// jsonObject.put("env_version", env_version);
// String params = jsonObject.toString();
//
// URL url = new URL(codeUrl);
// HttpURLConnection httpUrlConnection = (HttpURLConnection) url.openConnection();
// // 提交模式
// httpUrlConnection.setRequestMethod("POST");
// // 发送POST请求必须设置如下两行
// httpUrlConnection.setDoOutput(true);
// httpUrlConnection.setDoInput(true);
// // 获取URLConnection对象对应的输出流
// PrintWriter printWriter = new PrintWriter(httpUrlConnection.getOutputStream());
// printWriter.write(params);
// printWriter.flush();
// //获取数据
// BufferedInputStream bis = new BufferedInputStream(httpUrlConnection.getInputStream());
// //文件上传,返回小程序码url
// qrCodeUrl = new ImgUpload().streamUpload(bis, key);
//
// } catch (Exception e) {
// e.printStackTrace();
// }
// return qrCodeUrl;
// }
/** /**
* 获取不限制的小程序码 * 获取不限制的小程序码
* *
......
...@@ -22,7 +22,13 @@ ...@@ -22,7 +22,13 @@
<groupId>com.ruoyi</groupId> <groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId> <artifactId>ruoyi-common</artifactId>
</dependency> </dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
</dependencies> </dependencies>
</project> </project>
package com.ruoyi.mall.domain.Bo;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.math.BigDecimal;
import java.util.Arrays;
/**
* 学校对象 mall_school
*
* @author lsm
* @date 2023-10-18
*/
public class MallSchoolExcelBo
{
private static final long serialVersionUID = 1L;
@Excel(name = "批次")
private String batchName;
@Excel(name = "院校代码")
private String schoolNumber;
@Excel(name = "院校名称")
private String schoolName;
@Excel(name = "专业")
private String majorName;
@Excel(name = "一级专业分类")
private String majorName1;
@Excel(name = "二级专业分类")
private String majorName2;
@Excel(name = "招生计划人数")
private String acceptNum;
@Excel(name = "录取原则")
private String ruleStr;
@Excel(name = "参考分")
private String reference;
@Excel(name = "录取最低分")
private String acceptLowest;
@Excel(name = "录取前提")
private String acceptPremise;
@Excel(name = "年份")
private String acceptYear;
@Excel(name = "文化分数线")
private String cultureLowest;
@Excel(name = "联考分数线")
private String majorLowest;
@Excel(name = "学科",readConverterExp = "0=文科,1=理科")
private String subjectType;
@Excel(name = "学费")
private String schoolPrice;
public String getBatchName() {
return batchName;
}
public void setBatchName(String batchName) {
this.batchName = batchName;
}
public String getSchoolNumber() {
return schoolNumber;
}
public void setSchoolNumber(String schoolNumber) {
this.schoolNumber = schoolNumber;
}
public String getSchoolName() {
return schoolName;
}
public void setSchoolName(String schoolName) {
this.schoolName = schoolName;
}
public String getMajorName() {
return majorName;
}
public void setMajorName(String majorName) {
this.majorName = majorName;
}
public String getMajorName1() {
return majorName1;
}
public void setMajorName1(String majorName1) {
this.majorName1 = majorName1;
}
public String getMajorName2() {
return majorName2;
}
public void setMajorName2(String majorName2) {
this.majorName2 = majorName2;
}
public String getAcceptNum() {
return acceptNum;
}
public void setAcceptNum(String acceptNum) {
this.acceptNum = acceptNum;
}
public String getRuleStr() {
return ruleStr;
}
public void setRuleStr(String ruleStr) {
this.ruleStr = ruleStr;
}
public String getReference() {
return reference;
}
public void setReference(String reference) {
this.reference = reference;
}
public String getAcceptLowest() {
return acceptLowest;
}
public void setAcceptLowest(String acceptLowest) {
this.acceptLowest = acceptLowest;
}
public String getAcceptPremise() {
return acceptPremise;
}
public void setAcceptPremise(String acceptPremise) {
this.acceptPremise = acceptPremise;
}
public String getAcceptYear() {
return acceptYear;
}
public void setAcceptYear(String acceptYear) {
this.acceptYear = acceptYear;
}
public String getCultureLowest() {
return cultureLowest;
}
public void setCultureLowest(String cultureLowest) {
this.cultureLowest = cultureLowest;
}
public String getMajorLowest() {
return majorLowest;
}
public void setMajorLowest(String majorLowest) {
this.majorLowest = majorLowest;
}
public String getSubjectType() {
return subjectType;
}
public void setSubjectType(String subjectType) {
this.subjectType = subjectType;
}
public String getSchoolPrice() {
return schoolPrice;
}
public void setSchoolPrice(String schoolPrice) {
this.schoolPrice = schoolPrice;
}
@Override
public String toString() {
return "MallSchoolExcelBo{" +
"batchName='" + batchName + '\'' +
", schoolNumber='" + schoolNumber + '\'' +
", schoolName='" + schoolName + '\'' +
", majorName='" + majorName + '\'' +
", majorName1='" + majorName1 + '\'' +
", majorName2='" + majorName2 + '\'' +
", acceptNum='" + acceptNum + '\'' +
", ruleStr='" + ruleStr + '\'' +
", reference='" + reference + '\'' +
", acceptLowest='" + acceptLowest + '\'' +
", acceptPremise='" + acceptPremise + '\'' +
", acceptYear='" + acceptYear + '\'' +
", cultureLowest='" + cultureLowest + '\'' +
", majorLowest='" + majorLowest + '\'' +
", subjectType='" + subjectType + '\'' +
", schoolPrice='" + schoolPrice + '\'' +
'}';
}
}
package com.ruoyi.mall.domain.Bo; package com.ruoyi.mall.domain.Bo;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
import sun.awt.image.PixelConverter;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
......
...@@ -21,11 +21,9 @@ public class SchoolMajorLinkBO { ...@@ -21,11 +21,9 @@ public class SchoolMajorLinkBO {
@Excel(name = "专业名称") @Excel(name = "专业名称")
private String majorName; private String majorName;
@Excel(name = "批次")
@Excel(name="批次")
private String batchName; private String batchName;
@Excel(name = "专业一级分类") @Excel(name = "专业一级分类")
private String parentMajorClass; private String parentMajorClass;
...@@ -40,14 +38,6 @@ public class SchoolMajorLinkBO { ...@@ -40,14 +38,6 @@ public class SchoolMajorLinkBO {
this.linkId = linkId; this.linkId = linkId;
} }
public String getBatchName() {
return batchName;
}
public void setBatchName(String batchName) {
this.batchName = batchName;
}
public String getSchoolName() { public String getSchoolName() {
return schoolName; return schoolName;
} }
...@@ -64,6 +54,14 @@ public class SchoolMajorLinkBO { ...@@ -64,6 +54,14 @@ public class SchoolMajorLinkBO {
this.majorName = majorName; this.majorName = majorName;
} }
public String getBatchName() {
return batchName;
}
public void setBatchName(String batchName) {
this.batchName = batchName;
}
public String getParentMajorClass() { public String getParentMajorClass() {
return parentMajorClass; return parentMajorClass;
} }
......
...@@ -30,9 +30,15 @@ public class ZhuankeBO implements Serializable { ...@@ -30,9 +30,15 @@ public class ZhuankeBO implements Serializable {
@Excel(name = "录取原则") @Excel(name = "录取原则")
private String ruleStr; private String ruleStr;
@Excel(name = "23年录取最低分") @Excel(name="参考分")
private BigDecimal reference;
@Excel(name = "录取最低分")
private BigDecimal acceptLowest; private BigDecimal acceptLowest;
@Excel(name = "年份")
private String acceptYear;
@Excel(name = "学科") @Excel(name = "学科")
private String subjectType; private String subjectType;
...@@ -88,12 +94,12 @@ public class ZhuankeBO implements Serializable { ...@@ -88,12 +94,12 @@ public class ZhuankeBO implements Serializable {
this.ruleStr = ruleStr; this.ruleStr = ruleStr;
} }
public String getSubjectType() { public BigDecimal getReference() {
return subjectType; return reference;
} }
public void setSubjectType(String subjectType) { public void setReference(BigDecimal reference) {
this.subjectType = subjectType; this.reference = reference;
} }
public BigDecimal getAcceptLowest() { public BigDecimal getAcceptLowest() {
...@@ -104,6 +110,22 @@ public class ZhuankeBO implements Serializable { ...@@ -104,6 +110,22 @@ public class ZhuankeBO implements Serializable {
this.acceptLowest = acceptLowest; this.acceptLowest = acceptLowest;
} }
public String getAcceptYear() {
return acceptYear;
}
public void setAcceptYear(String acceptYear) {
this.acceptYear = acceptYear;
}
public String getSubjectType() {
return subjectType;
}
public void setSubjectType(String subjectType) {
this.subjectType = subjectType;
}
public BigDecimal getPrice() { public BigDecimal getPrice() {
return price; return price;
} }
......
package com.ruoyi.mall.domain.Chat;
import lombok.Data;
/**
* 请求体 用于请求百度千帆
*/
public class BaiduAppRequest {
private String app_id;
private String query;
private boolean stream;
private String conversation_id;
public BaiduAppRequest(String app_id, String query, String conversation_id) {
this.app_id = app_id;
this.query = query;
this.conversation_id = conversation_id;
}
public String getApp_id() {
return app_id;
}
public void setApp_id(String app_id) {
this.app_id = app_id;
}
public String getQuery() {
return query;
}
public void setQuery(String query) {
this.query = query;
}
public boolean isStream() {
return stream;
}
public void setStream(boolean stream) {
this.stream = stream;
}
public String getConversation_id() {
return conversation_id;
}
public void setConversation_id(String conversation_id) {
this.conversation_id = conversation_id;
}
@Override
public String toString() {
return "BaiduAppRequest{" +
"app_id='" + app_id + '\'' +
", query='" + query + '\'' +
", stream=" + stream +
", conversation_id='" + conversation_id + '\'' +
'}';
}
}
package com.ruoyi.mall.domain.Chat;
import lombok.Data;
import java.util.List;
/**
* 响应体 接收消息用
*/
public class BaiduAppResponse {
private String request_id;
private String date;
private String answer;
private String conversation_id;
private String message_id;
private Boolean is_completion;
private List<Object> content;
public String getRequest_id() {
return request_id;
}
public void setRequest_id(String request_id) {
this.request_id = request_id;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
public String getConversation_id() {
return conversation_id;
}
public void setConversation_id(String conversation_id) {
this.conversation_id = conversation_id;
}
public String getMessage_id() {
return message_id;
}
public void setMessage_id(String message_id) {
this.message_id = message_id;
}
public Boolean getIs_completion() {
return is_completion;
}
public void setIs_completion(Boolean is_completion) {
this.is_completion = is_completion;
}
public List<Object> getContent() {
return content;
}
public void setContent(List<Object> content) {
this.content = content;
}
@Override
public String toString() {
return "BaiduAppResponse{" +
"request_id='" + request_id + '\'' +
", date='" + date + '\'' +
", answer='" + answer + '\'' +
", conversation_id='" + conversation_id + '\'' +
", message_id='" + message_id + '\'' +
", is_completion=" + is_completion +
", content=" + content +
'}';
}
}
...@@ -21,7 +21,7 @@ public class MallSchool extends BaseEntity ...@@ -21,7 +21,7 @@ public class MallSchool extends BaseEntity
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 学校主键ID */ /** 学校主键ID */
@Excel(name = "学校主键ID") // @Excel(name = "学校主键ID")
private Long schoolId; private Long schoolId;
/** 学校名 */ /** 学校名 */
...@@ -47,6 +47,13 @@ public class MallSchool extends BaseEntity ...@@ -47,6 +47,13 @@ public class MallSchool extends BaseEntity
@Excel(name = "学校编号") @Excel(name = "学校编号")
private String schoolNumber; private String schoolNumber;
/** 办学层次id */
private Long configLevelId;
/** 办学层次 */
@Excel(name = "办学层次")
private String configLevelName;
/** 学校类型ID */ /** 学校类型ID */
// @Excel(name = "学校类型ID") // @Excel(name = "学校类型ID")
private Long configTypeId; private Long configTypeId;
...@@ -56,7 +63,7 @@ public class MallSchool extends BaseEntity ...@@ -56,7 +63,7 @@ public class MallSchool extends BaseEntity
private String configTypeName; private String configTypeName;
/** 办学机构:0-公办,1-民办,3-中外合作办学,4其他 */ /** 办学机构:0-公办,1-民办,3-中外合作办学,4其他 */
// @Excel(name = "办学机构:0-公办,1-民办,3-中外合作办学,4其他") @Excel(name = "办学机构", readConverterExp = "0=公办,1=民办,3=中外合作办学,4=其他")
private String schoolInstitution; private String schoolInstitution;
/** 主管部门(教育部、各地市) */ /** 主管部门(教育部、各地市) */
...@@ -186,11 +193,6 @@ public class MallSchool extends BaseEntity ...@@ -186,11 +193,6 @@ public class MallSchool extends BaseEntity
/** 批次id数组 */ /** 批次id数组 */
private Long[] batchList; private Long[] batchList;
/** 办学层次id */
private Long configLevelId;
/** 办学层次 */
private String configLevelName;
/** 推荐度id */ /** 推荐度id */
private Long suggestId; private Long suggestId;
......
...@@ -13,6 +13,9 @@ public class SchoolMajorAcceptRecordVO implements Serializable { ...@@ -13,6 +13,9 @@ public class SchoolMajorAcceptRecordVO implements Serializable {
/** 专业录取数据id */ /** 专业录取数据id */
private Long schoolAcceptId; private Long schoolAcceptId;
/** 专业代码 */
private String majorCode;
/** 专业名称 */ /** 专业名称 */
private String majorName; private String majorName;
...@@ -49,54 +52,6 @@ public class SchoolMajorAcceptRecordVO implements Serializable { ...@@ -49,54 +52,6 @@ public class SchoolMajorAcceptRecordVO implements Serializable {
/** 录取率 */ /** 录取率 */
private String acceptRate; private String acceptRate;
public String getAcceptRate() {
return acceptRate;
}
public void setAcceptRate(String acceptRate) {
this.acceptRate = acceptRate;
}
public Long getLinkId() {
return linkId;
}
public void setLinkId(Long linkId) {
this.linkId = linkId;
}
public Long getSchoolId() {
return schoolId;
}
public void setSchoolId(Long schoolId) {
this.schoolId = schoolId;
}
public BigDecimal getReference() {
return reference;
}
public void setReference(BigDecimal reference) {
this.reference = reference;
}
public Integer getIsReference() {
return isReference;
}
public void setIsReference(Integer isReference) {
this.isReference = isReference;
}
public String getMajorGroup() {
return majorGroup;
}
public void setMajorGroup(String majorGroup) {
this.majorGroup = majorGroup;
}
public Long getSchoolAcceptId() { public Long getSchoolAcceptId() {
return schoolAcceptId; return schoolAcceptId;
} }
...@@ -105,6 +60,14 @@ public class SchoolMajorAcceptRecordVO implements Serializable { ...@@ -105,6 +60,14 @@ public class SchoolMajorAcceptRecordVO implements Serializable {
this.schoolAcceptId = schoolAcceptId; this.schoolAcceptId = schoolAcceptId;
} }
public String getMajorCode() {
return majorCode;
}
public void setMajorCode(String majorCode) {
this.majorCode = majorCode;
}
public String getMajorName() { public String getMajorName() {
return majorName; return majorName;
} }
...@@ -153,16 +116,71 @@ public class SchoolMajorAcceptRecordVO implements Serializable { ...@@ -153,16 +116,71 @@ public class SchoolMajorAcceptRecordVO implements Serializable {
this.acceptRuleStr = acceptRuleStr; this.acceptRuleStr = acceptRuleStr;
} }
public String getMajorGroup() {
return majorGroup;
}
public void setMajorGroup(String majorGroup) {
this.majorGroup = majorGroup;
}
public BigDecimal getReference() {
return reference;
}
public void setReference(BigDecimal reference) {
this.reference = reference;
}
public Integer getIsReference() {
return isReference;
}
public void setIsReference(Integer isReference) {
this.isReference = isReference;
}
public Long getSchoolId() {
return schoolId;
}
public void setSchoolId(Long schoolId) {
this.schoolId = schoolId;
}
public Long getLinkId() {
return linkId;
}
public void setLinkId(Long linkId) {
this.linkId = linkId;
}
public String getAcceptRate() {
return acceptRate;
}
public void setAcceptRate(String acceptRate) {
this.acceptRate = acceptRate;
}
@Override @Override
public String toString() { public String toString() {
return "SchoolMajorAcceptRecordVO{" + return "SchoolMajorAcceptRecordVO{" +
"schoolAcceptId=" + schoolAcceptId + "schoolAcceptId=" + schoolAcceptId +
", majorCode='" + majorCode + '\'' +
", majorName='" + majorName + '\'' + ", majorName='" + majorName + '\'' +
", acceptNum=" + acceptNum + ", acceptNum=" + acceptNum +
", acceptLowest=" + acceptLowest + ", acceptLowest=" + acceptLowest +
", acceptYear='" + acceptYear + '\'' + ", acceptYear='" + acceptYear + '\'' +
", acceptRuleId=" + acceptRuleId + ", acceptRuleId=" + acceptRuleId +
", acceptRuleStr='" + acceptRuleStr + '\'' + ", acceptRuleStr='" + acceptRuleStr + '\'' +
", majorGroup='" + majorGroup + '\'' +
", reference=" + reference +
", isReference=" + isReference +
", schoolId=" + schoolId +
", linkId=" + linkId +
", acceptRate='" + acceptRate + '\'' +
'}'; '}';
} }
} }
...@@ -48,7 +48,7 @@ public interface MallAcceptPlanMapper ...@@ -48,7 +48,7 @@ public interface MallAcceptPlanMapper
public String selectMaxYear(); public String selectMaxYear();
public MallAcceptPlan selectPlan(@Param("schoolId")Long schoolId, public List<MallAcceptPlan> selectPlan(@Param("schoolId")Long schoolId,
@Param("batchId")Long batchId, @Param("batchId")Long batchId,
@Param("planYear")String planYear, @Param("planYear")String planYear,
@Param("subjectType")Integer subjectType, @Param("subjectType")Integer subjectType,
...@@ -159,4 +159,5 @@ public interface MallAcceptPlanMapper ...@@ -159,4 +159,5 @@ public interface MallAcceptPlanMapper
* @return * @return
*/ */
public int batchUpdate(@Param("list")List<MallAcceptPlan> list); public int batchUpdate(@Param("list")List<MallAcceptPlan> list);
public int insertByList(@Param("list")List<MallAcceptPlan> list);
} }
...@@ -30,6 +30,13 @@ public interface MallAcceptRuleMapper ...@@ -30,6 +30,13 @@ public interface MallAcceptRuleMapper
*/ */
public MallAcceptRule selectMallAcceptRuleByAcceptRuleStr(@Param("ruleStr")String ruleStr); public MallAcceptRule selectMallAcceptRuleByAcceptRuleStr(@Param("ruleStr")String ruleStr);
/**
* 录取字符串查询
* @param ruleStr 字符串
* @return
*/
public List<MallAcceptRule> selectMallAcceptRuleByAcceptRuleStr2(@Param("ruleStr")String ruleStr);
/** /**
* 录取原则 * 录取原则
* @return * @return
......
...@@ -32,7 +32,7 @@ public interface MallSchoolAcceptMapper ...@@ -32,7 +32,7 @@ public interface MallSchoolAcceptMapper
* @return * @return
*/ */
public MallSchoolAccept selectBySchoolIdAndLinkId(@Param("schoolId")Long schoolId, public List<MallSchoolAccept> selectBySchoolIdAndLinkId(@Param("schoolId")Long schoolId,
@Param("batchId")Long batchId, @Param("batchId")Long batchId,
@Param("linkId")Long linkId, @Param("linkId")Long linkId,
@Param("acceptYear")String acceptYear, @Param("acceptYear")String acceptYear,
...@@ -77,6 +77,7 @@ public interface MallSchoolAcceptMapper ...@@ -77,6 +77,7 @@ public interface MallSchoolAcceptMapper
* @return 结果 * @return 结果
*/ */
public int deleteMallSchoolAcceptBySchoolAcceptIds(Long[] schoolAcceptIds); public int deleteMallSchoolAcceptBySchoolAcceptIds(Long[] schoolAcceptIds);
public int insertByList(List<MallSchoolAccept> schoolAcceptIds);
/** /**
* 专业查询近三年录取记录 * 专业查询近三年录取记录
......
...@@ -23,6 +23,7 @@ public interface MallSchoolLevelMapper ...@@ -23,6 +23,7 @@ public interface MallSchoolLevelMapper
public MallSchoolLevel selectMallSchoolLevelBySchoolId(@Param("schoolId") Long schoolId); public MallSchoolLevel selectMallSchoolLevelBySchoolId(@Param("schoolId") Long schoolId);
public List<MallSchoolLevel> selectMallSchoolLevelBySchoolIds(@Param("schoolId") List<Long> schoolIds);
/** /**
* 查询学校办学层次列表 * 查询学校办学层次列表
......
...@@ -160,6 +160,7 @@ public interface MallSchoolMapper ...@@ -160,6 +160,7 @@ public interface MallSchoolMapper
/**志愿自主选择 获取学校信息*/ /**志愿自主选择 获取学校信息*/
List<SchoolMajorVO> schoolListInfoForReport(@Param("sIds") List<Long> sIds); List<SchoolMajorVO> schoolListInfoForReport(@Param("sIds") List<Long> sIds);
public List<MallSchool> selectAllSchoolNames(@Param("schoolNames")List<String> schoolNames);
/** /**
* 志愿自主选择 ,分页查询 * 志愿自主选择 ,分页查询
...@@ -320,6 +321,7 @@ public interface MallSchoolMapper ...@@ -320,6 +321,7 @@ public interface MallSchoolMapper
*/ */
public List<Long> selectAllSchoolIds(@Param("batchId")Long batchId); public List<Long> selectAllSchoolIds(@Param("batchId")Long batchId);
/** /**
* 招生稳定学校 * 招生稳定学校
* @param batchId * @param batchId
......
...@@ -57,7 +57,7 @@ public interface IMallMemberUserService ...@@ -57,7 +57,7 @@ public interface IMallMemberUserService
public int deleteMallMemberUserByIds(Long[] ids); public int deleteMallMemberUserByIds(Long[] ids);
public void updateRate(Long userId, Integer cultureScore, Integer majorScore); public void updateRate(Long userId, Integer cultureScore, Integer majorScore, String subjectType);
/** /**
* 删除用户会员信息 * 删除用户会员信息
......
...@@ -4,6 +4,7 @@ import com.github.pagehelper.Page; ...@@ -4,6 +4,7 @@ import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.mall.domain.Bo.CheckingOutParamBo; import com.ruoyi.mall.domain.Bo.CheckingOutParamBo;
import com.ruoyi.mall.domain.Bo.MallSchoolExcelBo;
import com.ruoyi.mall.domain.Bo.MatchSchoolBO; import com.ruoyi.mall.domain.Bo.MatchSchoolBO;
import com.ruoyi.mall.domain.MallSchool; import com.ruoyi.mall.domain.MallSchool;
import com.ruoyi.mall.domain.MallSchoolBatchLink; import com.ruoyi.mall.domain.MallSchoolBatchLink;
...@@ -342,4 +343,6 @@ public interface IMallSchoolService ...@@ -342,4 +343,6 @@ public interface IMallSchoolService
*/ */
public MallSchool selectMallSchoolBySysUserId(Long sysUserId); public MallSchool selectMallSchoolBySysUserId(Long sysUserId);
String importTestSchoolRecord(List<MallSchoolExcelBo> list, boolean updateSupport);
} }
package com.ruoyi.mall.service.impl; package com.ruoyi.mall.service.impl;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.mall.domain.BusinessBulletin;
import com.ruoyi.mall.domain.Vo.BusinessBulletinResponse; import com.ruoyi.mall.domain.Vo.BusinessBulletinResponse;
import com.ruoyi.mall.domain.Vo.BusinessBulletinVo; import com.ruoyi.mall.domain.Vo.BusinessBulletinVo;
import jdk.nashorn.internal.ir.annotations.Reference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.mall.mapper.BusinessBulletinMapper; import com.ruoyi.mall.mapper.BusinessBulletinMapper;
import com.ruoyi.mall.domain.BusinessBulletin;
import com.ruoyi.mall.service.IBusinessBulletinService; import com.ruoyi.mall.service.IBusinessBulletinService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* 公告Service业务层处理 * 公告Service业务层处理
* *
* @author ruoyi * @author ruoyi
* @date 2023-10-25 * @date 2023-10-25
*/ */
@Service @Service
public class BusinessBulletinServiceImpl implements IBusinessBulletinService public class BusinessBulletinServiceImpl implements IBusinessBulletinService
{ {
@Resource @Resource
private BusinessBulletinMapper businessBulletinMapper; private BusinessBulletinMapper businessBulletinMapper;
...@@ -57,7 +53,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService ...@@ -57,7 +53,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService
} }
/** /**
* 查询公告 * 查询公告
* *
* @param bulletinId 公告主键 * @param bulletinId 公告主键
* @return 公告 * @return 公告
*/ */
...@@ -69,7 +65,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService ...@@ -69,7 +65,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService
/** /**
* 查询公告列表 * 查询公告列表
* *
* @param businessBulletin 公告 * @param businessBulletin 公告
* @return 公告 * @return 公告
*/ */
...@@ -81,7 +77,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService ...@@ -81,7 +77,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService
/** /**
* 新增公告 * 新增公告
* *
* @param businessBulletin 公告 * @param businessBulletin 公告
* @return 结果 * @return 结果
*/ */
...@@ -94,7 +90,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService ...@@ -94,7 +90,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService
/** /**
* 修改公告 * 修改公告
* *
* @param businessBulletin 公告 * @param businessBulletin 公告
* @return 结果 * @return 结果
*/ */
...@@ -107,7 +103,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService ...@@ -107,7 +103,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService
/** /**
* 批量删除公告 * 批量删除公告
* *
* @param bulletinIds 需要删除的公告主键 * @param bulletinIds 需要删除的公告主键
* @return 结果 * @return 结果
*/ */
...@@ -119,7 +115,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService ...@@ -119,7 +115,7 @@ public class BusinessBulletinServiceImpl implements IBusinessBulletinService
/** /**
* 删除公告信息 * 删除公告信息
* *
* @param bulletinId 公告主键 * @param bulletinId 公告主键
* @return 结果 * @return 结果
*/ */
......
...@@ -740,14 +740,32 @@ public class CheckingOutServiceImpl implements CheckingOutService { ...@@ -740,14 +740,32 @@ public class CheckingOutServiceImpl implements CheckingOutService {
r.put("rateType", -2); r.put("rateType", -2);
} }
}else{ }else{
// 本科 // 本科
mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(s.getSchoolId(), bo.getBatchId(), subjectType); mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(s.getSchoolId(), bo.getBatchId(), subjectType);
if(ObjectUtils.isNotEmpty(mallSchoolAccept)){ if(ObjectUtils.isNotEmpty(mallSchoolAccept)){
r = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore); r = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
}else{ }else {
r.put("acceptRate", 0); r.put("acceptRate", 0);
r.put("rateType", -2); r.put("rateType", -2);
} }
// boolean flag = false;
// // 选科:0-文科,1-理科
// if (subjectType.equals("0") && cultureScore >= 331 && majorScore >= 193) {
// flag = true;
// }else if (subjectType.equals("1") && cultureScore >= 328 && majorScore >= 193){
// flag = true;
// }
// 本科
// mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(s.getSchoolId(), bo.getBatchId(), subjectType);
// if(flag && ObjectUtils.isNotEmpty(mallSchoolAccept)){
// r = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
// }else {
// r.put("acceptRate", 0);
// r.put("rateType", -2);
// }
} }
......
package com.ruoyi.mall.service.impl; package com.ruoyi.mall.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.mall.domain.ContrastRecord;
import com.ruoyi.mall.domain.Vo.ContrastRecordVo; import com.ruoyi.mall.domain.Vo.ContrastRecordVo;
import com.ruoyi.mall.mapper.MallSchoolTagMapper;
import jdk.nashorn.internal.ir.annotations.Reference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.mall.mapper.ContrastRecordMapper; import com.ruoyi.mall.mapper.ContrastRecordMapper;
import com.ruoyi.mall.domain.ContrastRecord; import com.ruoyi.mall.mapper.MallSchoolTagMapper;
import com.ruoyi.mall.service.IContrastRecordService; import com.ruoyi.mall.service.IContrastRecordService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
/** /**
* 添加对比记录Service业务层处理 * 添加对比记录Service业务层处理
* *
* @author ruoyi * @author ruoyi
* @date 2023-10-27 * @date 2023-10-27
*/ */
@Service @Service
public class ContrastRecordServiceImpl implements IContrastRecordService public class ContrastRecordServiceImpl implements IContrastRecordService
{ {
@Resource @Resource
private ContrastRecordMapper contrastRecordMapper; private ContrastRecordMapper contrastRecordMapper;
...@@ -29,7 +27,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService ...@@ -29,7 +27,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService
private MallSchoolTagMapper mallSchoolTagMapper; private MallSchoolTagMapper mallSchoolTagMapper;
/** /**
* 查询添加对比记录 * 查询添加对比记录
* *
* @param recordId 添加对比记录主键 * @param recordId 添加对比记录主键
* @return 添加对比记录 * @return 添加对比记录
*/ */
...@@ -41,7 +39,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService ...@@ -41,7 +39,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService
/** /**
* 查询添加对比记录列表 * 查询添加对比记录列表
* *
* @param contrastRecord 添加对比记录 * @param contrastRecord 添加对比记录
* @return 添加对比记录 * @return 添加对比记录
*/ */
...@@ -72,7 +70,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService ...@@ -72,7 +70,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService
/** /**
* 新增添加对比记录 * 新增添加对比记录
* *
* @param contrastRecord 添加对比记录 * @param contrastRecord 添加对比记录
* @return 结果 * @return 结果
*/ */
...@@ -85,7 +83,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService ...@@ -85,7 +83,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService
/** /**
* 修改添加对比记录 * 修改添加对比记录
* *
* @param contrastRecord 添加对比记录 * @param contrastRecord 添加对比记录
* @return 结果 * @return 结果
*/ */
...@@ -98,7 +96,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService ...@@ -98,7 +96,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService
/** /**
* 批量删除添加对比记录 * 批量删除添加对比记录
* *
* @param recordIds 需要删除的添加对比记录主键 * @param recordIds 需要删除的添加对比记录主键
* @return 结果 * @return 结果
*/ */
...@@ -110,7 +108,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService ...@@ -110,7 +108,7 @@ public class ContrastRecordServiceImpl implements IContrastRecordService
/** /**
* 删除添加对比记录信息 * 删除添加对比记录信息
* *
* @param recordId 添加对比记录主键 * @param recordId 添加对比记录主键
* @return 结果 * @return 结果
*/ */
......
package com.ruoyi.mall.service.impl; package com.ruoyi.mall.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.mall.domain.*;
import com.ruoyi.mall.domain.Bo.CheckingOutParamBo; import com.ruoyi.mall.domain.Bo.CheckingOutParamBo;
import com.ruoyi.mall.domain.Bo.SchoolMajorLinkBO; import com.ruoyi.mall.domain.Bo.SchoolMajorLinkBO;
import com.ruoyi.mall.domain.*;
import com.ruoyi.mall.domain.Vo.MajorItemVo; import com.ruoyi.mall.domain.Vo.MajorItemVo;
import com.ruoyi.mall.mapper.*; import com.ruoyi.mall.mapper.*;
import jdk.nashorn.internal.ir.IfNode; import com.ruoyi.mall.service.IMallLinkMajorSchoolService;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.mall.service.IMallLinkMajorSchoolService;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.xml.bind.annotation.XmlRootElement; import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* 专业与学校关联Service业务层处理 * 专业与学校关联Service业务层处理
......
...@@ -141,7 +141,9 @@ public class MallMemberUserServiceImpl implements IMallMemberUserService ...@@ -141,7 +141,9 @@ public class MallMemberUserServiceImpl implements IMallMemberUserService
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int updateMallMemberUser(MallMemberUser mallMemberUser) public int updateMallMemberUser(MallMemberUser mallMemberUser)
{ {
if (StringUtils.isNotBlank(mallMemberUser.getSubjectType()) && ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())){ if (StringUtils.isNotBlank(mallMemberUser.getSubjectType())
&& null != mallMemberUser.getCultureScore()
&& null != mallMemberUser.getMajorScore()){
String newSubjectType = mallMemberUser.getSubjectType(); // 新学科 String newSubjectType = mallMemberUser.getSubjectType(); // 新学科
Integer newCultureScore = mallMemberUser.getCultureScore(); // 新文化分 Integer newCultureScore = mallMemberUser.getCultureScore(); // 新文化分
Integer newMajorScore = mallMemberUser.getMajorScore(); // 新专业分 Integer newMajorScore = mallMemberUser.getMajorScore(); // 新专业分
...@@ -161,7 +163,7 @@ public class MallMemberUserServiceImpl implements IMallMemberUserService ...@@ -161,7 +163,7 @@ public class MallMemberUserServiceImpl implements IMallMemberUserService
@Override @Override
public void run() { public void run() {
updateRate(mallMemberUser.getId(), newCultureScore, newMajorScore); updateRate(mallMemberUser.getId(), newCultureScore, newMajorScore, newSubjectType);
} }
}).start(); }).start();
} }
...@@ -174,7 +176,7 @@ public class MallMemberUserServiceImpl implements IMallMemberUserService ...@@ -174,7 +176,7 @@ public class MallMemberUserServiceImpl implements IMallMemberUserService
@Override @Override
public void updateRate(Long userId, Integer cultureScore, Integer majorScore) public void updateRate(Long userId, Integer cultureScore, Integer majorScore, String subjectType)
{ {
// 计算学生各种录取率下的成绩 // 计算学生各种录取率下的成绩
List<MallAcceptRule> rules = acceptRuleMapper.selectNewAcceptRule(); List<MallAcceptRule> rules = acceptRuleMapper.selectNewAcceptRule();
...@@ -1046,15 +1048,15 @@ public class MallMemberUserServiceImpl implements IMallMemberUserService ...@@ -1046,15 +1048,15 @@ public class MallMemberUserServiceImpl implements IMallMemberUserService
sysUser.setPassword(SecurityUtils.encryptPassword(password)); sysUser.setPassword(SecurityUtils.encryptPassword(password));
sysUserMapper.updateUser(sysUser); sysUserMapper.updateUser(sysUser);
} }
/**
if (StringUtils.isBlank(memberUser.getIndexCode())) { * 重新生成二维码
String qrCode = ""; */
// 小程序码 String qrCode = "";
Long schoolId = memberUser.getId(); // 小程序码
String key = schoolId + ".png"; Long userId = memberUser.getId();
qrCode = weiXinUtils.getSchoolQRCode(schoolId, key); String key = userId + ".png";
updateMemberUser.setIndexCode(qrCode); qrCode = weiXinUtils.getQRCode(userId, key);
} updateMemberUser.setIndexCode(qrCode);
mallMemberUserMapper.updateMallMemberUserInfo(updateMemberUser); mallMemberUserMapper.updateMallMemberUserInfo(updateMemberUser);
return AjaxResult.success(); return AjaxResult.success();
......
...@@ -804,10 +804,10 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -804,10 +804,10 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String importAcceptData(List<NewAcceptBO> list) { public String importAcceptData(List<NewAcceptBO> list) {
String afterYear = "2023"; // String afterYear = "2023";
// 重置去年数据为旧数据 // 重置去年数据为旧数据
mallSchoolAcceptMapper.resetAfterData(afterYear); // mallSchoolAcceptMapper.resetAfterData(afterYear);
mallSchoolAcceptMapper.resetAfterRecordData(afterYear); // mallSchoolAcceptMapper.resetAfterRecordData(afterYear);
// 删除24年录取记录 // 删除24年录取记录
mallSchoolAcceptRecordMapper.deleteRecord(); mallSchoolAcceptRecordMapper.deleteRecord();
...@@ -840,55 +840,54 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -840,55 +840,54 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
String ruleStr = replaceOther(newAcceptBO.getRuleStr()); // 录取原则 String ruleStr = replaceOther(newAcceptBO.getRuleStr()); // 录取原则
BigDecimal reference = newAcceptBO.getReference(); // 参考分 BigDecimal reference = newAcceptBO.getReference(); // 参考分
String acceptYear = "2024"; // 年份 String acceptYear = newAcceptBO.getAcceptYear(); // 年份
String subjectType = newAcceptBO.getSubjectType().contains("") ? "0" : "1"; // 学科 String subjectType = newAcceptBO.getSubjectType().contains("") ? "0" : "1"; // 学科
if (StringUtils.isBlank(batchName)){ if (StringUtils.isBlank(batchName)){
//return "第" + index + "行缺少批次名称"; //return "第" + index + "行缺少批次名称";
sb.append("第" + index + "行缺少批次名称;"); sb.append("第【" +index + "】行学校【"+schoolName+"】缺少批次名称;").append(System.lineSeparator());
errorDataBO.setMsg("第" + index + "行缺少批次名称"); errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】行缺少批次名称");
errorList.add(errorDataBO); errorList.add(errorDataBO);
continue; continue;
} }
if (StringUtils.isBlank(schoolName)){ if (StringUtils.isBlank(schoolName)){
//return "第" + index + "行缺少学校名称数据"; //return "第" + index + "行缺少学校名称数据";
sb.append("第" + index + "行缺少学校名称数据;"); sb.append("第【" +index + "】行学校【"+schoolName+"】缺少学校名称数据;").append(System.lineSeparator());
errorDataBO.setMsg("第" + index + "行缺少学校名称数据"); errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】行缺少学校名称数据");
errorList.add(errorDataBO); errorList.add(errorDataBO);
continue; continue;
} }
if (StringUtils.isBlank(majorNameStr)){ if (StringUtils.isBlank(majorNameStr)){
//return "第" + index + "行缺少专业名称"; //return "第" + index + "行缺少专业名称";
sb.append("第" + index + "行缺少专业名称"); sb.append("第【" +index + "】行学校【"+schoolName+"】缺少专业名称").append(System.lineSeparator());
errorDataBO.setMsg("第" + index + "行缺少专业名称"); errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】行缺少专业名称");
errorList.add(errorDataBO); errorList.add(errorDataBO);
continue; continue;
} }
if (StringUtils.isBlank(ruleStr)){ if (StringUtils.isBlank(ruleStr)){
//return "第" + index + "行缺少录取原则"; //return "第" + index + "行缺少录取原则";
sb.append("第" + index + "行缺少录取原则;"); sb.append("第【" +index + "】行学校【"+schoolName+"】缺少录取原则;").append(System.lineSeparator());
errorDataBO.setMsg("第" + index + "行缺少录取原则"); errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】行缺少录取原则");
errorList.add(errorDataBO);
continue;
}
if (ObjectUtils.isEmpty(reference)){
//return "第" + index + "行缺少参考分";
sb.append("第" + index + "行缺少参考分;");
errorDataBO.setMsg("第" + index + "行缺少参考分");
errorList.add(errorDataBO); errorList.add(errorDataBO);
continue; continue;
} }
// if (ObjectUtils.isEmpty(reference)){
// sb.append("第【" +index + "】行学校【"+schoolName+"】缺少参考分;").append(System.lineSeparator());
// errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】行缺少参考分");
// errorList.add(errorDataBO);
// continue;
// }
if (StringUtils.isBlank(acceptYear)){ if (StringUtils.isBlank(acceptYear)){
sb.append("第" + index + "行缺少年份;"); sb.append("第【" +index + "】行学校【"+schoolName+"】缺少年份;").append(System.lineSeparator());
errorDataBO.setMsg("第" + index + "行缺少年份;"); errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】行缺少年份;");
errorList.add(errorDataBO); errorList.add(errorDataBO);
continue; continue;
} }
if (StringUtils.isBlank(subjectType)){ if (StringUtils.isBlank(subjectType)){
sb.append("第" + index + "行缺少学科分类;") ; sb.append("第【" +index + "】行学校【"+schoolName+"】缺少学科分类;").append(System.lineSeparator());
errorDataBO.setMsg("第" + index + "行缺少学科分类;"); errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】行缺少学科分类;");
errorList.add(errorDataBO); errorList.add(errorDataBO);
continue; continue;
} }
...@@ -906,10 +905,10 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -906,10 +905,10 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
//return "第" + index + "行批次不存在,请先添加批次或批次名称不正确"; //return "第" + index + "行批次不存在,请先添加批次或批次名称不正确";
} }
// 查询学校 // 查询学校
List<MallSchool> collect = schoolList.stream().filter(item -> item.getSchoolName().equals(replaceOther(newAcceptBO.getSchoolName()))).collect(Collectors.toList()); List<MallSchool> collect = schoolList.stream().filter(item -> replaceOther(item.getSchoolName()).equals(schoolName)).collect(Collectors.toList());
if (ObjectUtils.isEmpty(collect)){ if (ObjectUtils.isEmpty(collect)){
sb.append("第" + index + "学校不存在或学校名称错误:"+ schoolName + ";"); sb.append("第【" +index + "】行学校【"+schoolName+"】不存在或学校名称错误").append(System.lineSeparator());
errorDataBO.setMsg("第" + index + "学校不存在或学校名称错误:"); errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】不存在或学校名称错误:");
errorList.add(errorDataBO); errorList.add(errorDataBO);
continue; continue;
//return "第" + index + "学校不存在或学校名称错误:"+ schoolName; //return "第" + index + "学校不存在或学校名称错误:"+ schoolName;
...@@ -928,8 +927,8 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -928,8 +927,8 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
BigDecimal cultureLowest = BigDecimal.ZERO ; // 文化分数线 BigDecimal cultureLowest = BigDecimal.ZERO ; // 文化分数线
if (ObjectUtils.isEmpty(newAcceptBO.getCultureLowest())){ if (ObjectUtils.isEmpty(newAcceptBO.getCultureLowest())){
sb.append("第" +index + "行缺少文化分数线;"); sb.append("第【" +index + "】行学校【"+schoolName+"】缺少文化分数线;").append(System.lineSeparator());
errorDataBO.setMsg("第" +index + "缺少文化分数线"); errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】缺少文化分数线");
errorList.add(errorDataBO); errorList.add(errorDataBO);
continue; continue;
//return "缺少文化分数线" + index; //return "缺少文化分数线" + index;
...@@ -940,8 +939,8 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -940,8 +939,8 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
BigDecimal majorLowest = new BigDecimal("0") ; // 专业分数线 BigDecimal majorLowest = new BigDecimal("0") ; // 专业分数线
if (ObjectUtils.isEmpty(newAcceptBO.getMajorLowest())){ if (ObjectUtils.isEmpty(newAcceptBO.getMajorLowest())){
//majorLowest = new BigDecimal("216"); //majorLowest = new BigDecimal("216");
sb.append("第" +index + "行缺少联考分数线;"); sb.append("第【" +index + "】行学校【"+schoolName+"】缺少联考分数线;").append(System.lineSeparator());
errorDataBO.setMsg("第" +index + "缺少联考分数线"); errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】缺少联考分数线");
errorList.add(errorDataBO); errorList.add(errorDataBO);
continue; continue;
//return "缺少文化分数线" + index; //return "缺少文化分数线" + index;
...@@ -981,8 +980,8 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -981,8 +980,8 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
// twoIds.append(collect2.get(0).getMajorId()).append(","); // twoIds.append(collect2.get(0).getMajorId()).append(",");
//} //}
if (ObjectUtils.isEmpty(linkMajorSchool)){ if (ObjectUtils.isEmpty(linkMajorSchool)){
sb.append("第" + index + "专业未录入;"); sb.append("第【" +index + "】行学校【"+schoolName+"】【"+majorNameStr+"】专业未录入;").append(System.lineSeparator());
errorDataBO.setMsg("第" +index + "专业未录入或名称错误"); errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】专业未录入或名称错误");
errorList.add(errorDataBO); errorList.add(errorDataBO);
continue; continue;
//return "专业未录入" + index + "-" + schoolName + "-" + majorNameStr; //return "专业未录入" + index + "-" + schoolName + "-" + majorNameStr;
...@@ -1009,20 +1008,20 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1009,20 +1008,20 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
} }
// 查询录取原则 // 查询录取原则
MallAcceptRule acceptRule = mallAcceptRuleMapper.selectMallAcceptRuleByAcceptRuleStr(ruleStr); List<MallAcceptRule> acceptRule = mallAcceptRuleMapper.selectMallAcceptRuleByAcceptRuleStr2(ruleStr);
Long acceptRuleId = 0L; Long acceptRuleId = 0L;
if (ObjectUtils.isEmpty(acceptRule)){ if (acceptRule.isEmpty()){
sb.append("第" + index + "录取原则不存在或录入错误;"); sb.append("第【" +index + "】行学校【"+schoolName+"】录取原则【"+ruleStr+"】不存在或录入错误;").append(System.lineSeparator());
errorDataBO.setMsg("第" +index + "录取原则不存在或录入错误"); errorDataBO.setMsg("第" +index + "行学校【"+schoolName+"】录取原则不存在或录入错误");
errorList.add(errorDataBO); errorList.add(errorDataBO);
continue; continue;
}else{ }else{
acceptRuleId = acceptRule.getAcceptRuleId(); acceptRuleId = acceptRule.get(0).getAcceptRuleId();
} }
// 查询是否已导入数据 // 查询是否已导入数据
MallSchoolAccept schoolAccept = mallSchoolAcceptMapper.selectBySchoolIdAndLinkId(school.getSchoolId(), mallBatch.getBatchId(), linkId, acceptYear, subjectType); List<MallSchoolAccept> schoolAcceptList = mallSchoolAcceptMapper.selectBySchoolIdAndLinkId(school.getSchoolId(), mallBatch.getBatchId(), linkId, acceptYear, subjectType);
if (ObjectUtils.isEmpty(schoolAccept)){ if (schoolAcceptList.isEmpty()){
// 生成新专业录取数据 // 生成新专业录取数据
MallSchoolAccept mallSchoolAccept = new MallSchoolAccept(); MallSchoolAccept mallSchoolAccept = new MallSchoolAccept();
mallSchoolAccept.setSchoolId(school.getSchoolId()); mallSchoolAccept.setSchoolId(school.getSchoolId());
...@@ -1049,7 +1048,7 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1049,7 +1048,7 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
mallAcceptPlan.setBatchId(mallBatch.getBatchId()); mallAcceptPlan.setBatchId(mallBatch.getBatchId());
mallAcceptPlan.setLinkId(linkId); mallAcceptPlan.setLinkId(linkId);
mallAcceptPlan.setPlanYear(acceptYear); mallAcceptPlan.setPlanYear(acceptYear);
mallAcceptPlan.setSubjectType(subjectType.equals("0") ? 0 : 1); mallAcceptPlan.setSubjectType(Integer.valueOf(subjectType));
mallAcceptPlan.setAcceptNum(acceptNum); mallAcceptPlan.setAcceptNum(acceptNum);
mallAcceptPlan.setSchoolPrice(schoolPrice); mallAcceptPlan.setSchoolPrice(schoolPrice);
mallAcceptPlan.setAcceptRuleId(acceptRuleId); mallAcceptPlan.setAcceptRuleId(acceptRuleId);
...@@ -1076,6 +1075,7 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1076,6 +1075,7 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
}else{ }else{
b++; b++;
// 修改数据 // 修改数据
MallSchoolAccept schoolAccept = schoolAcceptList.get(0);
// 生成新专业录取数据 // 生成新专业录取数据
schoolAccept.setAcceptNum(acceptNum); schoolAccept.setAcceptNum(acceptNum);
schoolAccept.setAcceptLowest(acceptLowest); schoolAccept.setAcceptLowest(acceptLowest);
...@@ -1086,9 +1086,9 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1086,9 +1086,9 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
mallSchoolAcceptMapper.updateMallSchoolAccept(schoolAccept); mallSchoolAcceptMapper.updateMallSchoolAccept(schoolAccept);
// 修改招生计划 // 修改招生计划
MallAcceptPlan plan = mallAcceptPlanMapper.selectPlan(school.getSchoolId(), mallBatch.getBatchId(), acceptYear, Integer.valueOf(subjectType), linkId); List<MallAcceptPlan> mallAcceptPlanList = mallAcceptPlanMapper.selectPlan(school.getSchoolId(), mallBatch.getBatchId(), acceptYear, Integer.valueOf(subjectType), linkId);
if (ObjectUtils.isNotEmpty(plan)){ if (!mallAcceptPlanList.isEmpty()){
MallAcceptPlan plan = mallAcceptPlanList.get(0);
plan.setAcceptNum(acceptNum); plan.setAcceptNum(acceptNum);
plan.setSchoolPrice(schoolPrice); plan.setSchoolPrice(schoolPrice);
plan.setAcceptRuleId(acceptRuleId); plan.setAcceptRuleId(acceptRuleId);
...@@ -1112,7 +1112,6 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1112,7 +1112,6 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
record.setCreateAt(DateUtils.getTime()); record.setCreateAt(DateUtils.getTime());
record.setDelFlag("0"); record.setDelFlag("0");
mallSchoolAcceptRecordMapper.insertMallSchoolAcceptRecord(record); mallSchoolAcceptRecordMapper.insertMallSchoolAcceptRecord(record);
} }
successNum++; successNum++;
...@@ -1169,18 +1168,18 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1169,18 +1168,18 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
//要插入数据库的 院校录取数据 //要插入数据库的 院校录取数据
//List<MallSchoolAcceptRecord> schoolAcceptRecordList = new ArrayList<>(); //List<MallSchoolAcceptRecord> schoolAcceptRecordList = new ArrayList<>();
List<MallSchool> schoolList = mallSchoolMapper.selectMallSchoolList(null);
for (ZhuankeBO zhuankeBO : list) { for (ZhuankeBO zhuankeBO : list) {
int index = list.indexOf(zhuankeBO) + 2; int index = list.indexOf(zhuankeBO) + 2;
try{ try{
String batchName = "专科"; String batchName = replaceOther(zhuankeBO.getBatchName());
String schoolNumber = replaceOther(zhuankeBO.getSchoolNumber()); // 代码 去空格回车等 String schoolNumber = replaceOther(zhuankeBO.getSchoolNumber()); // 代码 去空格回车等
String schoolName = replaceOther(zhuankeBO.getSchoolName()); // 学校名称 String schoolName = replaceOther(zhuankeBO.getSchoolName()); // 学校名称
String majorName = replaceOther(zhuankeBO.getMajorName()); // 专业名 String majorName = replaceOther(zhuankeBO.getMajorName()); // 专业名
String ruleStr = "文化*0.067+联考*0.1667"; // 录取原则 String ruleStr = replaceOther(zhuankeBO.getRuleStr()); // 录取原则
String acceptYear = "2024"; // 年份 String acceptYear = zhuankeBO.getAcceptYear(); // 年份
String subjectType = replaceOther(zhuankeBO.getSubjectType()).contains("") ? "0" : "1"; // 学科 String subjectType = replaceOther(zhuankeBO.getSubjectType()).contains("") ? "0" : "1"; // 学科
if (StringUtils.isBlank(batchName)){ if (StringUtils.isBlank(batchName)){
return "第" + index + "行缺少批次名称"; return "第" + index + "行缺少批次名称";
...@@ -1214,42 +1213,44 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1214,42 +1213,44 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
return "第" + index + "行批次不存在,请先添加批次或批次名称不正确"; return "第" + index + "行批次不存在,请先添加批次或批次名称不正确";
} }
// 查询学校 // 查询学校
List<MallSchool> collect = schoolList.stream().filter(item -> replaceOther(item.getSchoolName()).equals(schoolName)).collect(Collectors.toList());
MallSchool mallSchool = mallSchoolMapper.selectMallSchoolBySchoolName(schoolName); // if (ObjectUtils.isEmpty(collect)){
if (ObjectUtils.isEmpty(mallSchool)){ // sb.append("第【").append(index).append("】行学校【").append(schoolName).append("】不存在或学校名称错误").append(System.lineSeparator());
MallSchool newSchool = new MallSchool(); // continue;
newSchool.setSchoolName(schoolName); // }
newSchool.setSchoolNumber(schoolNumber); if (ObjectUtils.isNotEmpty(collect)){
newSchool.setDelFlag("0"); // 已有学校
int i = mallSchoolMapper.insertMallSchool(newSchool); schoolId = collect.get(0).getSchoolId();
schoolId = newSchool.getSchoolId(); // 查询是否有专科批次
MallSchoolBatchLink schoolBatchLink = mallSchoolBatchLinkMapper.selectSchoolBatchLinkBySchoolIdAndBatchId(schoolId, 4L);
if (ObjectUtils.isEmpty(schoolBatchLink)){
// 批次关联 // 批次关联
MallSchoolBatchLink batchLink = new MallSchoolBatchLink(); MallSchoolBatchLink batchLink = new MallSchoolBatchLink();
batchLink.setSchoolId(schoolId); batchLink.setSchoolId(schoolId);
batchLink.setBatchId(4L); batchLink.setBatchId(4L);
batchLink.setBatchName("专科"); batchLink.setBatchName(batchName);
batchLink.setCreateAt(DateUtils.getTime()); batchLink.setCreateAt(DateUtils.getTime());
batchLink.setDelFlag("0"); batchLink.setDelFlag("0");
mallSchoolBatchLinkMapper.insertMallSchoolBatchLink(batchLink); mallSchoolBatchLinkMapper.insertMallSchoolBatchLink(batchLink);
}else{
// 已有学校
schoolId = mallSchool.getSchoolId();
// 查询是否有专科批次
MallSchoolBatchLink schoolBatchLink = mallSchoolBatchLinkMapper.selectSchoolBatchLinkBySchoolIdAndBatchId(schoolId, 4L);
if (ObjectUtils.isEmpty(schoolBatchLink)){
// 批次关联
MallSchoolBatchLink batchLink = new MallSchoolBatchLink();
batchLink.setSchoolId(schoolId);
batchLink.setBatchId(4L);
batchLink.setBatchName("专科");
batchLink.setCreateAt(DateUtils.getTime());
batchLink.setDelFlag("0");
mallSchoolBatchLinkMapper.insertMallSchoolBatchLink(batchLink);
}
} }
}else {
MallSchool newSchool = new MallSchool();
newSchool.setSchoolName(schoolName);
newSchool.setSchoolNumber(schoolNumber);
newSchool.setDelFlag("0");
int i = mallSchoolMapper.insertMallSchool(newSchool);
schoolId = newSchool.getSchoolId();
schoolList.add(newSchool);
// 批次关联
MallSchoolBatchLink batchLink = new MallSchoolBatchLink();
batchLink.setSchoolId(schoolId);
batchLink.setBatchId(4L);
batchLink.setBatchName(batchName);
batchLink.setCreateAt(DateUtils.getTime());
batchLink.setDelFlag("0");
mallSchoolBatchLinkMapper.insertMallSchoolBatchLink(batchLink);
}
BigDecimal acceptLowest = zhuankeBO.getAcceptLowest(); // 最低分 BigDecimal acceptLowest = zhuankeBO.getAcceptLowest(); // 最低分
...@@ -1260,7 +1261,6 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1260,7 +1261,6 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
Long linkId = 0L; Long linkId = 0L;
if (ObjectUtils.isEmpty(linkMajorSchool)){ if (ObjectUtils.isEmpty(linkMajorSchool)){
// 专业不存在新增 // 专业不存在新增
MallLinkMajorSchool newLink = new MallLinkMajorSchool(); MallLinkMajorSchool newLink = new MallLinkMajorSchool();
newLink.setSchoolId(schoolId); newLink.setSchoolId(schoolId);
...@@ -1277,10 +1277,9 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1277,10 +1277,9 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
// 查询录取原则 // 查询录取原则
MallAcceptRule acceptRule = mallAcceptRuleMapper.selectRuleStr(ruleStr); MallAcceptRule acceptRule = mallAcceptRuleMapper.selectRuleStr(ruleStr);
// 查询是否已导入数据 // 查询是否已导入数据
MallSchoolAccept schoolAccept = mallSchoolAcceptMapper.selectBySchoolIdAndLinkId(schoolId, 4L, linkId, acceptYear, subjectType); List<MallSchoolAccept> schoolAcceptList = mallSchoolAcceptMapper.selectBySchoolIdAndLinkId(schoolId, 4L, linkId, acceptYear, subjectType);
if (ObjectUtils.isEmpty(schoolAccept)){ if (schoolAcceptList.isEmpty()){
// 生成新专业录取数据 // 生成新专业录取数据
MallSchoolAccept mallSchoolAccept = new MallSchoolAccept(); MallSchoolAccept mallSchoolAccept = new MallSchoolAccept();
mallSchoolAccept.setSchoolId(schoolId); mallSchoolAccept.setSchoolId(schoolId);
...@@ -1544,6 +1543,7 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1544,6 +1543,7 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
List<MallLinkMajorSchool> updateLinkList = new ArrayList<>(); List<MallLinkMajorSchool> updateLinkList = new ArrayList<>();
List<MallLinkMajorSchool> insertLinkList = new ArrayList<>(); List<MallLinkMajorSchool> insertLinkList = new ArrayList<>();
List<MallSchool> schoolList = mallSchoolMapper.selectMallSchoolList(null);
// 学校批次关联 // 学校批次关联
List<MallSchoolBatchLink> insertSchoolBatchList = new ArrayList<>(); List<MallSchoolBatchLink> insertSchoolBatchList = new ArrayList<>();
...@@ -1556,7 +1556,7 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1556,7 +1556,7 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
message = "数据不全,对应行数:" + (list.indexOf(bo) + 1); message = "数据不全,对应行数:" + (list.indexOf(bo) + 1);
return message; return message;
} }
bo.setBatchName("本科"); // bo.setBatchName("本科");
String schoolName = bo.getSchoolName().replaceAll("\\s*",""); String schoolName = bo.getSchoolName().replaceAll("\\s*","");
String batchName = bo.getBatchName().replaceAll("\\s*",""); String batchName = bo.getBatchName().replaceAll("\\s*","");
String majorName = bo.getMajorName().replaceAll("\\s*",""); String majorName = bo.getMajorName().replaceAll("\\s*","");
...@@ -1564,10 +1564,10 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1564,10 +1564,10 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
String majorClass = bo.getMajorClass().replaceAll("\\s*","").replaceAll(",", ",").replaceAll("、", ","); String majorClass = bo.getMajorClass().replaceAll("\\s*","").replaceAll(",", ",").replaceAll("、", ",");
// 查询学校 // 查询学校
List<MallSchool> mallSchoolList = schoolList.stream().filter(item -> replaceOther(item.getSchoolName()).equals(schoolName)).collect(Collectors.toList());
MallSchool mallSchool = mallSchoolMapper.selectMallSchoolBySchoolName(schoolName); if (ObjectUtils.isEmpty(mallSchoolList)){
if (ObjectUtils.isEmpty(mallSchool)){ // return "学校信息不存在【"+schoolName+"】,行数: " + (list.indexOf(bo) + 1);
return "学校信息不存在,行数: " + (list.indexOf(bo) + 1); continue;
} }
// 对应批次 // 对应批次
List<BatchVO> batchCollect = batchList.stream().filter(item -> item.getBatchName().equals(batchName)).collect(Collectors.toList()); List<BatchVO> batchCollect = batchList.stream().filter(item -> item.getBatchName().equals(batchName)).collect(Collectors.toList());
...@@ -1580,72 +1580,86 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService { ...@@ -1580,72 +1580,86 @@ public class MallSchoolAcceptServiceImpl implements IMallSchoolAcceptService {
String[] split = majorClass.split(","); String[] split = majorClass.split(",");
StringBuilder twoClassIds = new StringBuilder(); StringBuilder twoClassIds = new StringBuilder();
for (String s : split) { // for (String s : split) {
List<MallMajorClass> collect2 = classList.stream().filter(item -> item.getMajorName().equals(s) && !item.getParentId().equals(0L)).collect(Collectors.toList()); // List<MallMajorClass> collect2 = classList.stream().filter(item -> item.getMajorName().equals(s) && !item.getParentId().equals(0L)).collect(Collectors.toList());
if (collect2.isEmpty()){ // if (collect2.isEmpty()){
message = "未查询到二级专业分类:" + s + ",对应行数: " + (list.indexOf(bo) + 1); // message = "未查询到二级专业分类:" + s + ",对应行数: " + (list.indexOf(bo) + 1);
return message; // return message;
} // }
twoClassIds.append(collect2.get(0).getMajorId()).append(","); // twoClassIds.append(collect2.get(0).getMajorId()).append(",");
} // }
if (oldList.stream().noneMatch(item -> item.getSchoolName().equals(schoolName) && item.getMajorName().equals(majorName))) {
if (ObjectUtils.isNotEmpty(bo.getLinkId())){
// 已有专业关联
List<MallLinkMajorSchool> collect = oldList.stream().filter(item -> item.getLinkId().equals(bo.getLinkId())).collect(Collectors.toList());
MallLinkMajorSchool oldLink = collect.get(0);
oldLink.setMajorName(majorName); // 专业名称(可能更新)
//oldLink.setParentMajorId(collect1.get(0).getMajorId());// 一级分类id
oldLink.setMajorId(twoClassIds.toString()); // 二级分类id
oldLink.setUpdateAt(DateUtils.getTime());
oldLink.setTwoClassName(majorClass);
updateLinkList.add(oldLink);
}else{
// 新增专业 // 新增专业
MallLinkMajorSchool newLink = new MallLinkMajorSchool(); MallLinkMajorSchool newLink = new MallLinkMajorSchool();
// 查询学校id // 查询学校id
newLink.setSchoolId(mallSchoolList.get(0).getSchoolId());
newLink.setSchoolId(mallSchool.getSchoolId());
newLink.setSchoolName(schoolName); newLink.setSchoolName(schoolName);
newLink.setMajorName(majorName); newLink.setMajorName(majorName);
//newLink.setParentMajorId(collect1.get(0).getMajorId()); // 一级分类 //newLink.setParentMajorId(collect1.get(0).getMajorId()); // 一级分类
newLink.setMajorId(twoClassIds.toString()); //二级分类 // newLink.setMajorId(twoClassIds.toString()); //二级分类
newLink.setType("2"); newLink.setType("2");
newLink.setCreateAt(DateUtils.getTime()); newLink.setCreateAt(DateUtils.getTime());
newLink.setTwoClassName(majorClass); newLink.setTwoClassName(majorClass);
insertLinkList.add(newLink); mallLinkMajorSchoolMapper.insertMallLinkMajorSchool(newLink);
oldList.add(newLink);
} }
// if (ObjectUtils.isNotEmpty(bo.getLinkId())){
//
// // 已有专业关联
// List<MallLinkMajorSchool> collect = oldList.stream().filter(item -> item.getLinkId().equals(bo.getLinkId())).collect(Collectors.toList());
//
// MallLinkMajorSchool oldLink = collect.get(0);
// oldLink.setMajorName(majorName); // 专业名称(可能更新)
// //oldLink.setParentMajorId(collect1.get(0).getMajorId());// 一级分类id
//// oldLink.setMajorId(twoClassIds.toString()); // 二级分类id
// oldLink.setUpdateAt(DateUtils.getTime());
// oldLink.setTwoClassName(majorClass);
// updateLinkList.add(oldLink);
// }else{
// // 新增专业
// MallLinkMajorSchool newLink = new MallLinkMajorSchool();
// // 查询学校id
//
// newLink.setSchoolId(mallSchoolList.get(0).getSchoolId());
// newLink.setSchoolName(schoolName);
// newLink.setMajorName(majorName);
// //newLink.setParentMajorId(collect1.get(0).getMajorId()); // 一级分类
//// newLink.setMajorId(twoClassIds.toString()); //二级分类
// newLink.setType("2");
// newLink.setCreateAt(DateUtils.getTime());
// newLink.setTwoClassName(majorClass);
// insertLinkList.add(newLink);
// }
// 学校批次关联 // 学校批次关联
MallSchoolBatchLink schoolBatchLink = mallSchoolBatchLinkMapper.selectSchoolBatchLinkBySchoolIdAndBatchId(mallSchool.getSchoolId(), batchCollect.get(0).getBatchId()); MallSchoolBatchLink schoolBatchLink = mallSchoolBatchLinkMapper.selectSchoolBatchLinkBySchoolIdAndBatchId(mallSchoolList.get(0).getSchoolId(), batchCollect.get(0).getBatchId());
if (ObjectUtils.isEmpty(schoolBatchLink)){ if (ObjectUtils.isEmpty(schoolBatchLink)){
List<MallSchoolBatchLink> collect = insertSchoolBatchList.stream().filter(item -> item.getSchoolId().equals(mallSchool.getSchoolId()) && item.getBatchId().equals(batchCollect.get(0).getBatchId())).collect(Collectors.toList()); List<MallSchoolBatchLink> collect = insertSchoolBatchList.stream().filter(item -> item.getSchoolId().equals(mallSchoolList.get(0).getSchoolId()) && item.getBatchId().equals(batchCollect.get(0).getBatchId())).collect(Collectors.toList());
if (collect.isEmpty()){ if (collect.isEmpty()){
// 未加入集合,新增 // 未加入集合,新增
MallSchoolBatchLink newSchoolBatchLink = new MallSchoolBatchLink(); MallSchoolBatchLink newSchoolBatchLink = new MallSchoolBatchLink();
newSchoolBatchLink.setSchoolId(mallSchool.getSchoolId()); newSchoolBatchLink.setSchoolId(mallSchoolList.get(0).getSchoolId());
newSchoolBatchLink.setBatchId(batchCollect.get(0).getBatchId()); newSchoolBatchLink.setBatchId(batchCollect.get(0).getBatchId());
newSchoolBatchLink.setBatchName(batchCollect.get(0).getBatchName()); newSchoolBatchLink.setBatchName(batchCollect.get(0).getBatchName());
newSchoolBatchLink.setCreateAt(DateUtils.getTime()); newSchoolBatchLink.setCreateAt(DateUtils.getTime());
newSchoolBatchLink.setDelFlag("0"); newSchoolBatchLink.setDelFlag("0");
mallSchoolBatchLinkMapper.insertMallSchoolBatchLink(newSchoolBatchLink);
insertSchoolBatchList.add(newSchoolBatchLink); // insertSchoolBatchList.add(newSchoolBatchLink);
} }
} }
} }
// 批量新增或修改 // 批量新增或修改
if (!insertSchoolBatchList.isEmpty()){ // if (!insertSchoolBatchList.isEmpty()){
mallSchoolBatchLinkMapper.batchInsert(insertSchoolBatchList); // mallSchoolBatchLinkMapper.batchInsert(insertSchoolBatchList);
} // }
//
if (!insertLinkList.isEmpty()){ // if (!insertLinkList.isEmpty()){
mallLinkMajorSchoolMapper.batchInsert(insertLinkList); // mallLinkMajorSchoolMapper.batchInsert(insertLinkList);
} // }
if (!updateLinkList.isEmpty()){ // if (!updateLinkList.isEmpty()){
mallLinkMajorSchoolMapper.batchUpdate(updateLinkList); // mallLinkMajorSchoolMapper.batchUpdate(updateLinkList);
} // }
return "success"; return "success";
......
package com.ruoyi.mall.service.impl; package com.ruoyi.mall.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.ListUtil;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
...@@ -13,6 +15,7 @@ import com.ruoyi.common.utils.StringUtils; ...@@ -13,6 +15,7 @@ import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.weixin.utils.WeiXinUtils; import com.ruoyi.common.weixin.utils.WeiXinUtils;
import com.ruoyi.mall.domain.*; import com.ruoyi.mall.domain.*;
import com.ruoyi.mall.domain.Bo.CheckingOutParamBo; import com.ruoyi.mall.domain.Bo.CheckingOutParamBo;
import com.ruoyi.mall.domain.Bo.MallSchoolExcelBo;
import com.ruoyi.mall.domain.Bo.MatchSchoolBO; import com.ruoyi.mall.domain.Bo.MatchSchoolBO;
import com.ruoyi.mall.domain.Vo.*; import com.ruoyi.mall.domain.Vo.*;
import com.ruoyi.mall.mapper.*; import com.ruoyi.mall.mapper.*;
...@@ -28,6 +31,8 @@ import com.ruoyi.system.mapper.SysUserMapper; ...@@ -28,6 +31,8 @@ import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.mapper.SysUserRoleMapper;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.parameters.P; import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -48,93 +53,65 @@ import java.util.stream.Stream; ...@@ -48,93 +53,65 @@ import java.util.stream.Stream;
*/ */
@Service @Service
public class MallSchoolServiceImpl implements IMallSchoolService { public class MallSchoolServiceImpl implements IMallSchoolService {
private static final Logger log = LoggerFactory.getLogger(MallSchoolServiceImpl.class);
@Resource @Resource
private MallSchoolMapper mallSchoolMapper; private MallSchoolMapper mallSchoolMapper;
@Resource @Resource
private MallFacultyInfoMapper mallFacultyInfoMapper; private MallFacultyInfoMapper mallFacultyInfoMapper;
@Resource @Resource
private MallMajorClassMapper mallMajorClassMapper; private MallMajorClassMapper mallMajorClassMapper;
@Resource @Resource
private MallSchoolIntroduceMapper mallSchoolIntroduceMapper; private MallSchoolIntroduceMapper mallSchoolIntroduceMapper;
@Resource @Resource
private MallSchoolSceneryMapper mallSchoolSceneryMapper; private MallSchoolSceneryMapper mallSchoolSceneryMapper;
@Resource @Resource
private MallSchoolTagMapper mallSchoolTagMapper; private MallSchoolTagMapper mallSchoolTagMapper;
@Resource @Resource
private MallSchoolAcceptRecordMapper mallSchoolAcceptRecordMapper; private MallSchoolAcceptRecordMapper mallSchoolAcceptRecordMapper;
@Resource @Resource
private MallSchoolAcceptMapper mallSchoolAcceptMapper; private MallSchoolAcceptMapper mallSchoolAcceptMapper;
@Resource @Resource
private MallSchoolAppraiseMapper mallSchoolAppraiseMapper; private MallSchoolAppraiseMapper mallSchoolAppraiseMapper;
@Resource @Resource
private MallSchoolAcceptRulesMapper mallSchoolAcceptRulesMapper; private MallSchoolAcceptRulesMapper mallSchoolAcceptRulesMapper;
@Resource @Resource
private MallAcceptPlanMapper mallAcceptPlanMapper; private MallAcceptPlanMapper mallAcceptPlanMapper;
@Resource @Resource
private MallLinkMajorSchoolMapper mallLinkMajorSchoolMapper; private MallLinkMajorSchoolMapper mallLinkMajorSchoolMapper;
@Resource @Resource
private MallBatchMapper mallBatchMapper; private MallBatchMapper mallBatchMapper;
@Resource @Resource
private MallConfigLevelMapper mallConfigLevelMapper; private MallConfigLevelMapper mallConfigLevelMapper;
@Resource @Resource
private MallCountMethodServiceImpl mallCountMethodService; private MallCountMethodServiceImpl mallCountMethodService;
@Resource @Resource
private MallMemberUserMapper mallMemberUserMapper; private MallMemberUserMapper mallMemberUserMapper;
@Resource @Resource
private IMallMemberCollectSchoolService mallMemberCollectSchoolService; private IMallMemberCollectSchoolService mallMemberCollectSchoolService;
@Resource @Resource
private MallAcceptRateSettingMapper mallAcceptRateSettingMapper; private MallAcceptRateSettingMapper mallAcceptRateSettingMapper;
@Resource @Resource
private MallMemberTargetSchoolMapper mallMemberTargetSchoolMapper; private MallMemberTargetSchoolMapper mallMemberTargetSchoolMapper;
@Resource @Resource
private IContrastRecordService contrastRecordService; private IContrastRecordService contrastRecordService;
@Resource @Resource
private SetRegionMapper setRegionMapper; private SetRegionMapper setRegionMapper;
@Resource @Resource
private MallConfigTypeMapper mallConfigTypeMapper; private MallConfigTypeMapper mallConfigTypeMapper;
@Resource @Resource
private ContrastRecordMapper contrastRecordMapper; private ContrastRecordMapper contrastRecordMapper;
@Resource @Resource
private MallSchoolMasterRecordMapper mallSchoolMasterRecordMapper; private MallSchoolMasterRecordMapper mallSchoolMasterRecordMapper;
@Resource @Resource
private MallSchoolBatchLinkMapper mallSchoolBatchLinkMapper; private MallSchoolBatchLinkMapper mallSchoolBatchLinkMapper;
@Resource @Resource
private MallSchoolLevelMapper mallSchoolLevelMapper; private MallSchoolLevelMapper mallSchoolLevelMapper;
@Resource @Resource
private MallSubjectClassMapper mallSubjectClassMapper; private MallSubjectClassMapper mallSubjectClassMapper;
@Resource @Resource
private MallAcceptRuleMapper mallAcceptRuleMapper; private MallAcceptRuleMapper mallAcceptRuleMapper;
@Resource @Resource
private MallExamDataMapper mallExamDataMapper; private MallExamDataMapper mallExamDataMapper;
@Resource @Resource
private WeiXinUtils weiXinUtils; private WeiXinUtils weiXinUtils;
@Resource @Resource
...@@ -142,6 +119,110 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -142,6 +119,110 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
@Resource @Resource
private SysUserRoleMapper sysUserRoleMapper; private SysUserRoleMapper sysUserRoleMapper;
@Override
public String importTestSchoolRecord(List<MallSchoolExcelBo> list, boolean updateSupport) {
if (StringUtils.isNull(list) || list.size() == 0) {
throw new ServiceException("导入院校数据不能为空!");
}
int successNum = 0;
int failureNum = 0;
Map<String, List<MallSchoolExcelBo>> collect = list.stream().collect(Collectors.groupingBy(MallSchoolExcelBo::getSchoolName));
List<MallSchool> mallSchools = mallSchoolMapper.selectAllSchoolNames(ListUtil.toList(collect.keySet()));
if (CollectionUtil.isNotEmpty(mallSchools)) {
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
Map<String, MallSchool> mallSchoolMap = mallSchools.stream().collect(Collectors.toMap(MallSchool::getSchoolName, e -> e));
List<BatchVO> batchVOS = mallBatchMapper.selectAllBatchList();
Map<String, Long> stringLongMap = batchVOS.stream().collect(Collectors.toMap(BatchVO::getBatchName, BatchVO::getBatchId));
List<MallMajorClass> mallMajorClasses = mallMajorClassMapper.selectAllMajorList();
Map<Long, List<MallMajorClass>> listMap = mallMajorClasses.stream().collect(Collectors.groupingBy(MallMajorClass::getParentId));
List<MallMajorClass> majorClasses = listMap.get(0);
List<MallLinkMajorSchool> mallLinkMajorSchools = mallLinkMajorSchoolMapper.selectAllList();
Map<Long, MallLinkMajorSchool> majorSchoolMap =
mallLinkMajorSchools.stream().collect(Collectors.toMap(MallLinkMajorSchool::getSchoolId, e -> e));
List<MallAcceptRule> mallAcceptRules = mallAcceptRuleMapper.selectMallAcceptRuleList(new MallAcceptRule());
Map<Integer, List<MallAcceptRule>> mallAcceptRuleMap =
mallAcceptRules.stream().collect(Collectors.groupingBy(MallAcceptRule::getRuleClass));
List<MallSchoolAcceptRecord> mallSchoolAcceptRecordList = new ArrayList<>();
List<MallAcceptPlan> mallAcceptPlans = new ArrayList<>();
List<MallSchoolAccept> mallSchoolAccepts = new ArrayList<>();
for (String s : collect.keySet()) {
MallSchool mallSchool = mallSchoolMap.get(s);
for (MallSchoolExcelBo mallSchoolExcelBo : collect.get(s)) {
try {
List<MallAcceptRule> mallAcceptRule = mallAcceptRuleMap.get(Integer.valueOf(mallSchoolExcelBo.getSubjectType()));
MallAcceptRule mallAcceptRule1 = mallAcceptRule.stream().filter(item ->
item.getRuleStr().equals(mallSchoolExcelBo.getRuleStr())).findFirst().orElse(null);
MallSchoolAcceptRecord mallSchoolAcceptRecord = new MallSchoolAcceptRecord();
mallSchoolAcceptRecord.setSchoolId(mallSchool.getSchoolId());
mallSchoolAcceptRecord.setBatchId(stringLongMap.get(mallSchoolExcelBo.getBatchName()));
mallSchoolAcceptRecord.setAcceptNum(Integer.valueOf(mallSchoolExcelBo.getAcceptNum()));
mallSchoolAcceptRecord.setAcceptYear(mallSchoolExcelBo.getAcceptYear());
mallSchoolAcceptRecord.setAcceptLowest(new BigDecimal(mallSchoolExcelBo.getAcceptLowest()));
mallSchoolAcceptRecord.setCultureLowest(new BigDecimal(mallSchoolExcelBo.getCultureLowest()));
mallSchoolAcceptRecord.setMajorLowest(new BigDecimal(mallSchoolExcelBo.getMajorLowest()));
mallSchoolAcceptRecord.setSubjectType(mallSchoolExcelBo.getSubjectType());
mallSchoolAcceptRecord.setAcceptRuleId(mallAcceptRule1.getAcceptRuleId());
mallSchoolAcceptRecord.setCreateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallSchoolAcceptRecord.setUpdateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallSchoolAcceptRecordList.add(mallSchoolAcceptRecord);
MallMajorClass mallMajorClass = majorClasses.stream().filter(item ->
item.getMajorName().equals(mallSchoolExcelBo.getMajorName1())).findFirst().orElse(null);
MallAcceptPlan mallAcceptPlan = new MallAcceptPlan();
mallAcceptPlan.setSchoolId(mallSchool.getSchoolId());
mallAcceptPlan.setBatchId(stringLongMap.get(mallSchoolExcelBo.getBatchName()));
mallAcceptPlan.setMajorId(mallMajorClass.getMajorId());
mallAcceptPlan.setPlanYear(mallSchoolExcelBo.getAcceptYear());
mallAcceptPlan.setAcceptRuleId(mallAcceptRule1.getAcceptRuleId());
mallAcceptPlan.setSubjectType(Integer.valueOf(mallSchoolExcelBo.getSubjectType()));
mallAcceptPlan.setAcceptNum(Integer.valueOf(mallSchoolExcelBo.getAcceptNum()));
mallAcceptPlan.setAcceptLowest(new BigDecimal(mallSchoolExcelBo.getAcceptLowest()));
mallAcceptPlan.setSchoolPrice(new BigDecimal(mallSchoolExcelBo.getSchoolPrice()));
mallAcceptPlan.setLinkId(majorSchoolMap.get(mallSchool.getSchoolId()).getLinkId());
mallAcceptPlan.setCreateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallAcceptPlan.setUpdateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallAcceptPlans.add(mallAcceptPlan);
MallSchoolAccept mallSchoolAccept = new MallSchoolAccept();
mallSchoolAccept.setSchoolId(mallSchool.getSchoolId());
mallSchoolAccept.setBatchId(stringLongMap.get(mallSchoolExcelBo.getBatchName()));
mallSchoolAccept.setMajorId(mallMajorClass.getMajorId());
mallSchoolAccept.setAcceptRuleId(mallAcceptRule1.getAcceptRuleId());
mallSchoolAccept.setAcceptNum(Integer.valueOf(mallSchoolExcelBo.getAcceptNum()));
mallSchoolAccept.setAcceptLowest(new BigDecimal(mallSchoolExcelBo.getAcceptLowest()));
mallSchoolAccept.setAcceptYear(mallSchoolExcelBo.getAcceptYear());
mallSchoolAccept.setSubjectType(mallSchoolExcelBo.getSubjectType());
mallSchoolAccept.setLinkId(majorSchoolMap.get(mallSchool.getSchoolId()).getLinkId());
mallSchoolAccept.setReference(new BigDecimal(mallSchoolExcelBo.getReference()));
mallSchoolAccept.setIsReference(1);
mallSchoolAccept.setCreateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallSchoolAccept.setUpdateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallSchoolAccepts.add(mallSchoolAccept);
successNum++;
successMsg.append("<br/>" + successNum + "学校数据:" + mallSchoolExcelBo.getSchoolName() + " 导入成功");
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "学校数据:" + mallSchoolExcelBo.getSchoolName() + " 导入失败:";
failureMsg.append(msg + e.getMessage());
log.error(msg, e);
}
}
}
mallSchoolAcceptRecordMapper.insertByList(mallSchoolAcceptRecordList);
mallAcceptPlanMapper.insertByList(mallAcceptPlans);
mallSchoolAcceptMapper.insertByList(mallSchoolAccepts);
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
} else {
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
return "未查询到学校数据";
}
/** /**
* 查询学校 * 查询学校
* *
...@@ -152,7 +233,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -152,7 +233,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
public MallSchool selectMallSchoolBySchoolId(Long schoolId) { public MallSchool selectMallSchoolBySchoolId(Long schoolId) {
MallSchool mallSchool = mallSchoolMapper.selectMallSchoolBySchoolId(schoolId); MallSchool mallSchool = mallSchoolMapper.selectMallSchoolBySchoolId(schoolId);
if (ObjectUtils.isNotEmpty(mallSchool)){ if (ObjectUtils.isNotEmpty(mallSchool)) {
// 学校批次查询 // 学校批次查询
List<Long> list = mallSchoolBatchLinkMapper.selectMallSchoolBatchLinkBySchoolId(mallSchool.getSchoolId()); List<Long> list = mallSchoolBatchLinkMapper.selectMallSchoolBatchLinkBySchoolId(mallSchool.getSchoolId());
Long[] Longs = list.toArray(new Long[list.size()]); Long[] Longs = list.toArray(new Long[list.size()]);
...@@ -160,7 +241,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -160,7 +241,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 查询层次 // 查询层次
MallSchoolLevel mallSchoolLevel = mallSchoolLevelMapper.selectMallSchoolLevelBySchoolId(schoolId); MallSchoolLevel mallSchoolLevel = mallSchoolLevelMapper.selectMallSchoolLevelBySchoolId(schoolId);
if(ObjectUtils.isNotEmpty(mallSchoolLevel)){ if (ObjectUtils.isNotEmpty(mallSchoolLevel)) {
mallSchool.setConfigLevelId(mallSchoolLevel.getConfigLevelId()); mallSchool.setConfigLevelId(mallSchoolLevel.getConfigLevelId());
mallSchool.setConfigLevelName(mallSchoolLevel.getConfigLevelName()); mallSchool.setConfigLevelName(mallSchoolLevel.getConfigLevelName());
} }
...@@ -190,16 +271,28 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -190,16 +271,28 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
@Override @Override
public List<MallSchool> selectMallSchoolListForExcel(MallSchool mallSchool) { public List<MallSchool> selectMallSchoolListForExcel(MallSchool mallSchool) {
List<MallSchool> list = mallSchoolMapper.selectMallSchoolList(mallSchool); List<MallSchool> list = mallSchoolMapper.selectMallSchoolList(mallSchool);
if (!list.isEmpty()){ // if (!list.isEmpty()){
for (MallSchool school : list) { // List<MallSchoolLevel> mallSchoolLevels = mallSchoolLevelMapper.selectMallSchoolLevelBySchoolIds(
// 查询层次 // list.stream().map(MallSchool::getSchoolId).collect(Collectors.toList()));
MallSchoolLevel mallSchoolLevel = mallSchoolLevelMapper.selectMallSchoolLevelBySchoolId(school.getSchoolId()); // if (CollectionUtil.isNotEmpty(mallSchoolLevels)){
if(ObjectUtils.isNotEmpty(mallSchoolLevel)){ // Map<Long, MallSchoolLevel> collect = mallSchoolLevels.stream().collect(Collectors.toMap(MallSchoolLevel::getSchoolId, e -> e));
school.setConfigLevelId(mallSchoolLevel.getConfigLevelId()); // list.stream().peek(l -> {
school.setConfigLevelName(mallSchoolLevel.getConfigLevelName()); // MallSchoolLevel mallSchoolLevel = collect.get(l.getSchoolId());
} // if (ObjectUtils.isNotEmpty(mallSchoolLevel)){
} // l.setConfigLevelId(mallSchoolLevel.getConfigLevelId());
} // l.setConfigLevelName(mallSchoolLevel.getConfigLevelName());
// }
// }).collect(Collectors.toList());
// }
// // for (MallSchool school : list) {
// // // 查询层次
// // MallSchoolLevel mallSchoolLevel = mallSchoolLevelMapper.selectMallSchoolLevelBySchoolId(school.getSchoolId());
// // if(ObjectUtils.isNotEmpty(mallSchoolLevel)){
// // school.setConfigLevelId(mallSchoolLevel.getConfigLevelId());
// // school.setConfigLevelName(mallSchoolLevel.getConfigLevelName());
// // }
// // }
// }
return list; return list;
} }
...@@ -237,7 +330,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -237,7 +330,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 批次学校关联 // 批次学校关联
Long[] batchList = mallSchool.getBatchList(); Long[] batchList = mallSchool.getBatchList();
if (batchList.length > 0){ if (batchList.length > 0) {
for (Long l : batchList) { for (Long l : batchList) {
// 批次查询 // 批次查询
MallBatch mallBatch = mallBatchMapper.selectMallBatchByBatchId(l); MallBatch mallBatch = mallBatchMapper.selectMallBatchByBatchId(l);
...@@ -296,12 +389,12 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -296,12 +389,12 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 批次学校关联 // 批次学校关联
Long[] batchList = mallSchool.getBatchList(); Long[] batchList = mallSchool.getBatchList();
if (batchList.length > 0){ if (batchList.length > 0) {
// 删除不许要的批次 // 删除不许要的批次
mallSchoolBatchLinkMapper.deleteSchoolBatchBySchoolId(mallSchool.getSchoolId()); mallSchoolBatchLinkMapper.deleteSchoolBatchBySchoolId(mallSchool.getSchoolId());
for (Long l : batchList) { for (Long l : batchList) {
MallSchoolBatchLink link = mallSchoolBatchLinkMapper.selectSchoolBatchLinkBySchoolIdAndBatchId(mallSchool.getSchoolId(), Long.valueOf(l)); MallSchoolBatchLink link = mallSchoolBatchLinkMapper.selectSchoolBatchLinkBySchoolIdAndBatchId(mallSchool.getSchoolId(), Long.valueOf(l));
if (ObjectUtils.isEmpty(link)){ if (ObjectUtils.isEmpty(link)) {
// 新增 // 新增
MallBatch mallBatch = mallBatchMapper.selectMallBatchByBatchId(Long.valueOf(l)); MallBatch mallBatch = mallBatchMapper.selectMallBatchByBatchId(Long.valueOf(l));
MallSchoolBatchLink mallSchoolBatchLink = new MallSchoolBatchLink(); MallSchoolBatchLink mallSchoolBatchLink = new MallSchoolBatchLink();
...@@ -319,7 +412,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -319,7 +412,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Long configLevelId = mallSchool.getConfigLevelId(); Long configLevelId = mallSchool.getConfigLevelId();
MallSchoolLevel schoolLevel = mallSchoolLevelMapper.selectMallSchoolLevelBySchoolId(mallSchool.getSchoolId()); MallSchoolLevel schoolLevel = mallSchoolLevelMapper.selectMallSchoolLevelBySchoolId(mallSchool.getSchoolId());
MallConfigLevel mallConfigLevel = mallConfigLevelMapper.selectMallConfigLevelByConfigLevelId(configLevelId); MallConfigLevel mallConfigLevel = mallConfigLevelMapper.selectMallConfigLevelByConfigLevelId(configLevelId);
if (ObjectUtils.isNotEmpty(schoolLevel)){ if (ObjectUtils.isNotEmpty(schoolLevel)) {
// 查询层次列表 // 查询层次列表
schoolLevel.setConfigLevelId(configLevelId); schoolLevel.setConfigLevelId(configLevelId);
schoolLevel.setConfigLevelName(mallConfigLevel.getConfigLevelName()); schoolLevel.setConfigLevelName(mallConfigLevel.getConfigLevelName());
...@@ -335,7 +428,6 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -335,7 +428,6 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
} }
MallConfigType mallConfigType = mallConfigTypeMapper.selectMallConfigTypeByConfigTypeId(mallSchool.getConfigTypeId()); MallConfigType mallConfigType = mallConfigTypeMapper.selectMallConfigTypeByConfigTypeId(mallSchool.getConfigTypeId());
mallSchool.setConfigTypeName(mallConfigType.getConfigTypeName()); mallSchool.setConfigTypeName(mallConfigType.getConfigTypeName());
return mallSchoolMapper.updateMallSchool(mallSchool); return mallSchoolMapper.updateMallSchool(mallSchool);
...@@ -386,7 +478,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -386,7 +478,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Integer pageNum, Integer pageNum,
Integer pageSize) { Integer pageSize) {
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
List<SchoolVO> schoolList = mallSchoolMapper.selectSchoolList(schoolName, batchId, configLevelId, configTypeId, provinceId, cityId, null,null); List<SchoolVO> schoolList = mallSchoolMapper.selectSchoolList(schoolName, batchId, configLevelId, configTypeId, provinceId, cityId, null, null);
if (schoolList.size() > 0) { if (schoolList.size() > 0) {
for (SchoolVO schoolVO : schoolList) { for (SchoolVO schoolVO : schoolList) {
...@@ -403,34 +495,35 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -403,34 +495,35 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 大学对比学校列表 * 大学对比学校列表
* @param schoolName 学校名称 *
* @param batchId 批次id * @param schoolName 学校名称
* @param batchId 批次id
* @param configLevelId 层次id * @param configLevelId 层次id
* @param configTypeId 学校类型id * @param configTypeId 学校类型id
* @param provinceId 省份id * @param provinceId 省份id
* @param cityId 城市id * @param cityId 城市id
* @param pageNum 页码 * @param pageNum 页码
* @param pageSize 每页个数 * @param pageSize 每页个数
* @return 结果 * @return 结果
*/ */
@Override @Override
public AjaxResult selectMatchSchoolList(String schoolName, public AjaxResult selectMatchSchoolList(String schoolName,
Long batchId, Long batchId,
Long configLevelId, Long configLevelId,
Long configTypeId, Long configTypeId,
Long provinceId, Long provinceId,
Long cityId, Long cityId,
Long id, Long id,
Integer pageNum, Integer pageNum,
Integer pageSize) { Integer pageSize) {
// 查询用户成绩 // 查询用户成绩
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id); MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (ObjectUtils.isEmpty(mallMemberUser.getMajorScore()) || ObjectUtils.isEmpty(mallMemberUser.getCultureScore())){ if (ObjectUtils.isEmpty(mallMemberUser.getMajorScore()) || ObjectUtils.isEmpty(mallMemberUser.getCultureScore())) {
return AjaxResult.error("请先录入成绩"); return AjaxResult.error("请先录入成绩");
} }
Integer majorScore = mallMemberUser.getMajorScore(); Integer majorScore = mallMemberUser.getMajorScore();
Integer cultureScore = mallMemberUser.getCultureScore(); Integer cultureScore = mallMemberUser.getCultureScore();
//选科:0-文科,1-理科 // 选科:0-文科,1-理科
String subjectType = mallMemberUser.getSubjectType(); String subjectType = mallMemberUser.getSubjectType();
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
...@@ -438,15 +531,15 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -438,15 +531,15 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
if (schoolList.size() > 0) { if (schoolList.size() > 0) {
for (SchoolVO schoolVO : schoolList) { for (SchoolVO schoolVO : schoolList) {
//查询该学校 该批次 学生是否已添加 // 查询该学校 该批次 学生是否已添加
ContrastRecord contrastRecord = new ContrastRecord(); ContrastRecord contrastRecord = new ContrastRecord();
contrastRecord.setBatchId(batchId); contrastRecord.setBatchId(batchId);
contrastRecord.setUserId(id); contrastRecord.setUserId(id);
contrastRecord.setSchoolId(schoolVO.getSchoolId()); contrastRecord.setSchoolId(schoolVO.getSchoolId());
List<ContrastRecord> contrastRecords = contrastRecordService.selectContrastRecordList(contrastRecord); List<ContrastRecord> contrastRecords = contrastRecordService.selectContrastRecordList(contrastRecord);
if(null != contrastRecords && contrastRecords.size()>0){//已添加 if (null != contrastRecords && contrastRecords.size() > 0) {// 已添加
schoolVO.setRecordType("1"); schoolVO.setRecordType("1");
}else{//未添加 } else {// 未添加
schoolVO.setRecordType("0"); schoolVO.setRecordType("0");
} }
// 查询标签列表 // 查询标签列表
...@@ -456,8 +549,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -456,8 +549,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
} }
//// 学校录取率 //// 学校录取率
//Map<String, Object> result = mallCountMethodService.getAcceptRate(subjectType, schoolVO.getSchoolId(), batchId, cultureScore, majorScore); // Map<String, Object> result = mallCountMethodService.getAcceptRate(subjectType, schoolVO.getSchoolId(), batchId, cultureScore, majorScore);
//if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0 ){ // if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0 ){
// schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString())); // schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString()));
// schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%"); // schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%");
// schoolVO.setRateType((Integer)result.get("rateType")); // schoolVO.setRateType((Integer)result.get("rateType"));
...@@ -472,8 +565,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -472,8 +565,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
* 学校概述 * 学校概述
* *
* @param schoolId 学校id * @param schoolId 学校id
* @param batchId 批次id * @param batchId 批次id
* @param id 用户id * @param id 用户id
* @return 结果 * @return 结果
*/ */
@Override @Override
...@@ -506,9 +599,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -506,9 +599,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 是否加入对比 // 是否加入对比
List<Long> longs = contrastRecordMapper.selectSchoolContrastStatus(id, schoolId, batchId); List<Long> longs = contrastRecordMapper.selectSchoolContrastStatus(id, schoolId, batchId);
if (longs.isEmpty()){ if (longs.isEmpty()) {
schoolVO.setRecordType("0"); schoolVO.setRecordType("0");
}else{ } else {
schoolVO.setRecordType("1"); schoolVO.setRecordType("1");
schoolVO.setRecordId(longs.get(0)); schoolVO.setRecordId(longs.get(0));
} }
...@@ -544,16 +637,17 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -544,16 +637,17 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 学校录取数据 * 学校录取数据
* @param schoolId 学校id *
* @param batchId 批次id * @param schoolId 学校id
* @param batchId 批次id
* @return 结果 * @return 结果
*/ */
@Override @Override
public AjaxResult selectSchoolRecord( Long schoolId, Long batchId, Long id) { public AjaxResult selectSchoolRecord(Long schoolId, Long batchId, Long id) {
// 查询用户信息 // 查询用户信息
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id); MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (StringUtils.isBlank(mallMemberUser.getSubjectType())){ if (StringUtils.isBlank(mallMemberUser.getSubjectType())) {
return AjaxResult.error("请先完善学科信息"); return AjaxResult.error("请先完善学科信息");
} }
...@@ -562,32 +656,32 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -562,32 +656,32 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
List<SchoolAcceptRecordVO> recordList = mallSchoolAcceptRecordMapper.selectAcceptRecordList(schoolId, batchId, subjectType); List<SchoolAcceptRecordVO> recordList = mallSchoolAcceptRecordMapper.selectAcceptRecordList(schoolId, batchId, subjectType);
// 专业录取数据 // 专业录取数据
List<SchoolMajorAcceptRecordVO> majorRecordList = mallSchoolAcceptMapper.selectSchoolMajorRecordList(schoolId, batchId , subjectType); List<SchoolMajorAcceptRecordVO> majorRecordList = mallSchoolAcceptMapper.selectSchoolMajorRecordList(schoolId, batchId, subjectType);
// 有参考分的计算录取率 // 有参考分的计算录取率
for (SchoolMajorAcceptRecordVO schoolMajorAcceptRecordVO : majorRecordList) { for (SchoolMajorAcceptRecordVO schoolMajorAcceptRecordVO : majorRecordList) {
if (batchId == 4L){ if (batchId == 4L) {
// 专科 // 专科
if (schoolMajorAcceptRecordVO.getAcceptLowest() != null ){ if (schoolMajorAcceptRecordVO.getAcceptLowest() != null) {
if ( mallMemberUser.getCultureScore() != null && mallMemberUser.getMajorScore() != null){ if (mallMemberUser.getCultureScore() != null && mallMemberUser.getMajorScore() != null) {
Map<String, Object> resultRate = mallCountMethodService.zhuankegetAcceptRateForReport(schoolMajorAcceptRecordVO.getAcceptLowest(), schoolMajorAcceptRecordVO.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore()); Map<String, Object> resultRate = mallCountMethodService.zhuankegetAcceptRateForReport(schoolMajorAcceptRecordVO.getAcceptLowest(), schoolMajorAcceptRecordVO.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore());
schoolMajorAcceptRecordVO.setAcceptRate(resultRate.get("acceptRate") + "%"); schoolMajorAcceptRecordVO.setAcceptRate(resultRate.get("acceptRate") + "%");
}else{ } else {
schoolMajorAcceptRecordVO.setAcceptRate("0"); schoolMajorAcceptRecordVO.setAcceptRate("0");
} }
} }
}else{ } else {
// 本科 // 本科
if (schoolMajorAcceptRecordVO.getIsReference() != null &&schoolMajorAcceptRecordVO.getIsReference().equals(1)){ if (schoolMajorAcceptRecordVO.getIsReference() != null && schoolMajorAcceptRecordVO.getIsReference().equals(1)) {
if ( mallMemberUser.getCultureScore() != null && mallMemberUser.getMajorScore() != null){ if (mallMemberUser.getCultureScore() != null && mallMemberUser.getMajorScore() != null) {
Map<String, Object> resultRate = mallCountMethodService.getAcceptRateForReport(schoolMajorAcceptRecordVO.getReference(), schoolMajorAcceptRecordVO.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore()); Map<String, Object> resultRate = mallCountMethodService.getAcceptRateForReport(schoolMajorAcceptRecordVO.getReference(), schoolMajorAcceptRecordVO.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore());
schoolMajorAcceptRecordVO.setAcceptRate(resultRate.get("acceptRate") + "%"); schoolMajorAcceptRecordVO.setAcceptRate(resultRate.get("acceptRate") + "%");
}else{ } else {
schoolMajorAcceptRecordVO.setAcceptRate("0"); schoolMajorAcceptRecordVO.setAcceptRate("0");
} }
...@@ -606,7 +700,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -606,7 +700,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
for (String sortedYear : sortedYears) { for (String sortedYear : sortedYears) {
Integer isReference = 0; Integer isReference = 0;
List<SchoolMajorAcceptRecordVO> collect1 = majorRecordList.stream().filter(item -> item.getAcceptYear().equals(sortedYear)).collect(Collectors.toList()); List<SchoolMajorAcceptRecordVO> collect1 = majorRecordList.stream().filter(item -> item.getAcceptYear().equals(sortedYear)).collect(Collectors.toList());
if (collect1.get(0).getIsReference() != null && collect1.get(0).getIsReference() == 1 && sortedYears.indexOf(sortedYear) == 0){ if (collect1.get(0).getIsReference() != null && collect1.get(0).getIsReference() == 1 && sortedYears.indexOf(sortedYear) == 0) {
isReference = 1; isReference = 1;
} }
SchoolMajorAcceptGroupVO schoolMajorAcceptGroup = new SchoolMajorAcceptGroupVO(); SchoolMajorAcceptGroupVO schoolMajorAcceptGroup = new SchoolMajorAcceptGroupVO();
...@@ -618,7 +712,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -618,7 +712,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
.collect(Collectors.toList()); .collect(Collectors.toList());
// 录取原则分组划前端横线 // 录取原则分组划前端横线
if (subList.size() > 0){ if (subList.size() > 0) {
List<List<SchoolMajorAcceptRecordVO>> list = new ArrayList<>(); List<List<SchoolMajorAcceptRecordVO>> list = new ArrayList<>();
Map<String, List<SchoolMajorAcceptRecordVO>> listMap = subList.stream().collect(Collectors.groupingBy(SchoolMajorAcceptRecordVO::getAcceptRuleStr)); Map<String, List<SchoolMajorAcceptRecordVO>> listMap = subList.stream().collect(Collectors.groupingBy(SchoolMajorAcceptRecordVO::getAcceptRuleStr));
for (String s : listMap.keySet()) { for (String s : listMap.keySet()) {
...@@ -639,6 +733,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -639,6 +733,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 我的综合分 * 我的综合分
*
* @param schoolId * @param schoolId
* @param batchId * @param batchId
* @param id * @param id
...@@ -650,10 +745,10 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -650,10 +745,10 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id); MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
BigDecimal totalScore = BigDecimal.ZERO; BigDecimal totalScore = BigDecimal.ZERO;
// 专业录取数据 // 专业录取数据
Long ruleId = mallSchoolAcceptMapper.selectNewAccept(schoolId, batchId , mallMemberUser.getSubjectType()); Long ruleId = mallSchoolAcceptMapper.selectNewAccept(schoolId, batchId, mallMemberUser.getSubjectType());
if (null != ruleId && null != mallMemberUser.getCultureScore() && null != mallMemberUser.getMajorScore()){ if (null != ruleId && null != mallMemberUser.getCultureScore() && null != mallMemberUser.getMajorScore()) {
// 计算综合分 // 计算综合分
totalScore = mallCountMethodService.getTotalScore(mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore(), ruleId); totalScore = mallCountMethodService.getTotalScore(mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore(), ruleId);
} }
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("score", totalScore); map.put("score", totalScore);
...@@ -662,6 +757,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -662,6 +757,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 院校录取数据详情 * 院校录取数据详情
*
* @param schoolAcceptRecordId 数据id * @param schoolAcceptRecordId 数据id
* @return 结果 * @return 结果
*/ */
...@@ -672,6 +768,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -672,6 +768,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 学校评估列表 * 学校评估列表
*
* @param schoolId 学校id * @param schoolId 学校id
* @return 结果 * @return 结果
*/ */
...@@ -682,6 +779,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -682,6 +779,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 学校招生简章 * 学校招生简章
*
* @param schoolId 学校id * @param schoolId 学校id
* @return 结果 * @return 结果
*/ */
...@@ -697,7 +795,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -697,7 +795,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 用户信息 // 用户信息
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id); MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (StringUtils.isBlank(mallMemberUser.getSubjectType())){ if (StringUtils.isBlank(mallMemberUser.getSubjectType())) {
return AjaxResult.error("请先完善用户学科信息"); return AjaxResult.error("请先完善用户学科信息");
} }
String subjectType = mallMemberUser.getSubjectType(); String subjectType = mallMemberUser.getSubjectType();
...@@ -705,33 +803,33 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -705,33 +803,33 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 招生计划 // 招生计划
List<SchoolAcceptPlanVO> planList = mallAcceptPlanMapper.selectAcceptPlanList(schoolId, batchId, subjectType); List<SchoolAcceptPlanVO> planList = mallAcceptPlanMapper.selectAcceptPlanList(schoolId, batchId, subjectType);
//for (SchoolAcceptPlanVO schoolAcceptPlanVO : planList) { // for (SchoolAcceptPlanVO schoolAcceptPlanVO : planList) {
//// 投档公式 //// 投档公式
//Long acceptRuleId = schoolAcceptPlanVO.getAcceptRuleId(); // Long acceptRuleId = schoolAcceptPlanVO.getAcceptRuleId();
//String countMethodStr = mallCountMethodService.getCountMethodStr(acceptRuleId); // String countMethodStr = mallCountMethodService.getCountMethodStr(acceptRuleId);
//schoolAcceptPlanVO.setAcceptRuleStr(countMethodStr); // schoolAcceptPlanVO.setAcceptRuleStr(countMethodStr);
//// 专业名称处理 //// 专业名称处理
//Long majorId = schoolAcceptPlanVO.getMajorId(); // Long majorId = schoolAcceptPlanVO.getMajorId();
//List<String> list = mallLinkMajorSchoolMapper.selectSchoolMajorByParentId(schoolId, majorId); // List<String> list = mallLinkMajorSchoolMapper.selectSchoolMajorByParentId(schoolId, majorId);
//if (list.size() > 0){ // if (list.size() > 0){
// StringBuilder sb = new StringBuilder(); // StringBuilder sb = new StringBuilder();
// for (String s : list) { // for (String s : list) {
// sb.append(s).append(","); // sb.append(s).append(",");
// } // }
// String str = sb.toString(); // String str = sb.toString();
// String result = str.substring(0, str.length() - 1); // String result = str.substring(0, str.length() - 1);
// schoolAcceptPlanVO.setMajorStr(schoolAcceptPlanVO.getMajorName() + "(" + result + ")"); // schoolAcceptPlanVO.setMajorStr(schoolAcceptPlanVO.getMajorName() + "(" + result + ")");
//}else{ //}else{
// schoolAcceptPlanVO.setMajorStr(schoolAcceptPlanVO.getMajorName()); // schoolAcceptPlanVO.setMajorStr(schoolAcceptPlanVO.getMajorName());
//} //}
//} //}
List<SchoolAcceptPlanGroupVO> groupList = new ArrayList<>(); List<SchoolAcceptPlanGroupVO> groupList = new ArrayList<>();
if (planList.size() > 0){ if (planList.size() > 0) {
Map<String, List<SchoolAcceptPlanVO>> collect = planList.stream().collect(Collectors.groupingBy(SchoolAcceptPlanVO::getPlanYear)); Map<String, List<SchoolAcceptPlanVO>> collect = planList.stream().collect(Collectors.groupingBy(SchoolAcceptPlanVO::getPlanYear));
Set<String> planYears = collect.keySet(); Set<String> planYears = collect.keySet();
...@@ -751,18 +849,18 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -751,18 +849,18 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 更新时间 // 更新时间
String updateRange = ""; String updateRange = "";
Map<String, String> map = mallAcceptPlanMapper.selectUpdateTime(schoolId, batchId); Map<String, String> map = mallAcceptPlanMapper.selectUpdateTime(schoolId, batchId);
if (ObjectUtils.isNotEmpty(map)){ if (ObjectUtils.isNotEmpty(map)) {
String startTime = map.get("startTime"); String startTime = map.get("startTime");
String endTime = map.get("endTime"); String endTime = map.get("endTime");
String start = DateUtils.format(DateUtils.parseDate(startTime), "M-dd"); String start = DateUtils.format(DateUtils.parseDate(startTime), "M-dd");
String end = DateUtils.format(DateUtils.parseDate(endTime), "M-dd"); String end = DateUtils.format(DateUtils.parseDate(endTime), "M-dd");
if (start.equals(end)){ if (start.equals(end)) {
updateRange = start; updateRange = start;
}else{ } else {
if (end == null){ if (end == null) {
updateRange = start; updateRange = start;
}else{ } else {
updateRange = start + "~" + end; updateRange = start + "~" + end;
} }
...@@ -780,8 +878,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -780,8 +878,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 3个层次院校列表 * 3个层次院校列表
*
* @param configLevelId 层次id * @param configLevelId 层次id
* @param batchId 批次id * @param batchId 批次id
* @return 结果 * @return 结果
*/ */
@Override @Override
...@@ -791,24 +890,24 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -791,24 +890,24 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Long higherLevelId = null; Long higherLevelId = null;
Long lowerLevelId = null; Long lowerLevelId = null;
if (!(allLevelList.size() > 0)){ if (!(allLevelList.size() > 0)) {
return AjaxResult.error("层次信息异常"); return AjaxResult.error("层次信息异常");
} }
List<SchoolLevelVO> collect = allLevelList.stream().filter(item -> item.getConfigLevelId().equals(configLevelId)).collect(Collectors.toList()); List<SchoolLevelVO> collect = allLevelList.stream().filter(item -> item.getConfigLevelId().equals(configLevelId)).collect(Collectors.toList());
if (!(collect.size() > 0)){ if (!(collect.size() > 0)) {
return AjaxResult.error("当前层次不存在"); return AjaxResult.error("当前层次不存在");
} }
SchoolLevelVO schoolLevelVO = collect.get(0); SchoolLevelVO schoolLevelVO = collect.get(0);
int i = allLevelList.indexOf(schoolLevelVO); int i = allLevelList.indexOf(schoolLevelVO);
if (allLevelList.size() > 1){ if (allLevelList.size() > 1) {
if (i == 0){ if (i == 0) {
lowerLevelId = allLevelList.get(i + 1).getConfigLevelId(); lowerLevelId = allLevelList.get(i + 1).getConfigLevelId();
}else if (i == allLevelList.size()-1){ } else if (i == allLevelList.size() - 1) {
higherLevelId = allLevelList.get(i - 1).getConfigLevelId(); higherLevelId = allLevelList.get(i - 1).getConfigLevelId();
}else{ } else {
higherLevelId = allLevelList.get(i - 1).getConfigLevelId(); higherLevelId = allLevelList.get(i - 1).getConfigLevelId();
lowerLevelId = allLevelList.get(i + 1).getConfigLevelId(); lowerLevelId = allLevelList.get(i + 1).getConfigLevelId();
} }
...@@ -823,29 +922,29 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -823,29 +922,29 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Map<String, Object> lowerMap = new HashMap<>(); Map<String, Object> lowerMap = new HashMap<>();
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id); MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (StringUtils.isBlank(mallMemberUser.getSubjectType())){ if (StringUtils.isBlank(mallMemberUser.getSubjectType())) {
return AjaxResult.error("请先完善学科信息"); return AjaxResult.error("请先完善学科信息");
} }
String subjectType = mallMemberUser.getSubjectType(); String subjectType = mallMemberUser.getSubjectType();
// 高一层次 // 高一层次
if (!ObjectUtils.isEmpty(higherLevelId)){ if (!ObjectUtils.isEmpty(higherLevelId)) {
higherLevelList = this.selectLevelSchoolList(higherLevelId, batchId, schoolId, subjectType); higherLevelList = this.selectLevelSchoolList(higherLevelId, batchId, schoolId, subjectType);
higherMap.put("higherLevelId", higherLevelId); higherMap.put("higherLevelId", higherLevelId);
higherMap.put("higherLevelList", higherLevelList); higherMap.put("higherLevelList", higherLevelList);
} }
// 同一层次 // 同一层次
if (!ObjectUtils.isEmpty(configLevelId)){ if (!ObjectUtils.isEmpty(configLevelId)) {
sameLevelList = this.selectLevelSchoolList(configLevelId, batchId, schoolId, subjectType); sameLevelList = this.selectLevelSchoolList(configLevelId, batchId, schoolId, subjectType);
sameMap.put("sameLevelId", configLevelId); sameMap.put("sameLevelId", configLevelId);
sameMap.put("sameLevelList", sameLevelList); sameMap.put("sameLevelList", sameLevelList);
} }
// 低一层次 // 低一层次
if (!ObjectUtils.isEmpty(lowerLevelId)){ if (!ObjectUtils.isEmpty(lowerLevelId)) {
lowerLevelList = this.selectLevelSchoolList(lowerLevelId, batchId, schoolId, subjectType); lowerLevelList = this.selectLevelSchoolList(lowerLevelId, batchId, schoolId, subjectType);
lowerMap.put("lowerLevelId", lowerLevelId); lowerMap.put("lowerLevelId", lowerLevelId);
lowerMap.put("lowerLevelList", lowerLevelList); lowerMap.put("lowerLevelList", lowerLevelList);
} }
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
...@@ -859,16 +958,17 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -859,16 +958,17 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 查询当前层次学校列表 * 查询当前层次学校列表
*
* @param configLevelId 层次id * @param configLevelId 层次id
* @param batchId 批次id * @param batchId 批次id
* @return * @return
*/ */
public List<SchoolVO> selectLevelSchoolList(Long configLevelId, Long batchId, Long schoolId, String subjectType){ public List<SchoolVO> selectLevelSchoolList(Long configLevelId, Long batchId, Long schoolId, String subjectType) {
// 查询该层次下学校列表 // 查询该层次下学校列表
PageHelper.startPage(1, 3); PageHelper.startPage(1, 3);
List<SchoolVO> schoolList = mallSchoolMapper.selectSchoolListByLevelId( batchId, configLevelId , schoolId, subjectType); List<SchoolVO> schoolList = mallSchoolMapper.selectSchoolListByLevelId(batchId, configLevelId, schoolId, subjectType);
if (schoolList.size() > 0){ if (schoolList.size() > 0) {
for (SchoolVO schoolVO : schoolList) { for (SchoolVO schoolVO : schoolList) {
if (StringUtils.isNotBlank(schoolVO.getTags())) { if (StringUtils.isNotBlank(schoolVO.getTags())) {
// 查询标签列表 // 查询标签列表
...@@ -884,21 +984,23 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -884,21 +984,23 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 层级院校列表 * 层级院校列表
*
* @param configLevelId 层级id * @param configLevelId 层级id
* @param batchId 批次id * @param batchId 批次id
* @param pageNum 页码 * @param pageNum 页码
* @param pageSize 每页个数 * @param pageSize 每页个数
* @return * @return
*/ */
@Override @Override
public PageInfo<SchoolVO> selectSchoolListByLevelId(Long configLevelId, Long batchId, Long schoolId, Long id, Integer pageNum, Integer pageSize) { public PageInfo<SchoolVO> selectSchoolListByLevelId(Long configLevelId, Long batchId, Long schoolId, Long
id, Integer pageNum, Integer pageSize) {
// 查询用户信息 // 查询用户信息
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id); MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolListByLevelId(batchId, configLevelId, schoolId, mallMemberUser.getSubjectType() ); List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolListByLevelId(batchId, configLevelId, schoolId, mallMemberUser.getSubjectType());
if (schoolVOS.size() > 0){ if (schoolVOS.size() > 0) {
for (SchoolVO schoolVO : schoolVOS) { for (SchoolVO schoolVO : schoolVOS) {
if (StringUtils.isNotBlank(schoolVO.getTags())) { if (StringUtils.isNotBlank(schoolVO.getTags())) {
// 查询标签列表 // 查询标签列表
...@@ -912,19 +1014,21 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -912,19 +1014,21 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 联考成绩分析 * 联考成绩分析
*
* @param schoolId 学校id * @param schoolId 学校id
* @param batchId 批次id * @param batchId 批次id
* @param id 用户id * @param id 用户id
* @param pageNum 页码 * @param pageNum 页码
* @param pageSize 每页个数 * @param pageSize 每页个数
* @return 结果 * @return 结果
*/ */
@Override @Override
public AjaxResult selectUnionTestAnalysisList(Long schoolId, Long batchId, Long id, Integer pageNum, Integer pageSize) { public AjaxResult selectUnionTestAnalysisList(Long schoolId, Long batchId, Long id, Integer pageNum, Integer
pageSize) {
// 查询用户成绩 // 查询用户成绩
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id); MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (StringUtils.isBlank(mallMemberUser.getSubjectType())){ if (StringUtils.isBlank(mallMemberUser.getSubjectType())) {
return AjaxResult.error("请先完善用户学科信息"); return AjaxResult.error("请先完善用户学科信息");
} }
...@@ -932,20 +1036,20 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -932,20 +1036,20 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
List<UnionTestAnalysisVO> list = mallSchoolAcceptRecordMapper.selectUnionTestAnalysisList(schoolId, batchId, mallMemberUser.getSubjectType()); List<UnionTestAnalysisVO> list = mallSchoolAcceptRecordMapper.selectUnionTestAnalysisList(schoolId, batchId, mallMemberUser.getSubjectType());
if (list.size() > 0){ if (list.size() > 0) {
for (UnionTestAnalysisVO unionTestAnalysisVO : list) { for (UnionTestAnalysisVO unionTestAnalysisVO : list) {
// 计算所需文化分 // 计算所需文化分
Integer majorScore = mallMemberUser.getMajorScore(); Integer majorScore = mallMemberUser.getMajorScore();
BigDecimal acceptLowest = unionTestAnalysisVO.getAcceptLowest(); BigDecimal acceptLowest = unionTestAnalysisVO.getAcceptLowest();
BigDecimal cultureLowest = unionTestAnalysisVO.getCultureLowest(); BigDecimal cultureLowest = unionTestAnalysisVO.getCultureLowest();
if (ObjectUtils.isNotEmpty(majorScore) && ObjectUtils.isNotEmpty(acceptLowest) ){ if (ObjectUtils.isNotEmpty(majorScore) && ObjectUtils.isNotEmpty(acceptLowest)) {
Long acceptRuleId = unionTestAnalysisVO.getAcceptRuleId(); Long acceptRuleId = unionTestAnalysisVO.getAcceptRuleId();
MallAcceptRule mallAcceptRule = mallAcceptRuleMapper.selectMallAcceptRuleByAcceptRuleId(acceptRuleId); MallAcceptRule mallAcceptRule = mallAcceptRuleMapper.selectMallAcceptRuleByAcceptRuleId(acceptRuleId);
BigDecimal needCultureScore = null; BigDecimal needCultureScore = null;
// 如果录取原则没有文化分,则需要文化分为过线文化分 // 如果录取原则没有文化分,则需要文化分为过线文化分
if (!mallAcceptRule.getRuleStr().contains("文化")){ if (!mallAcceptRule.getRuleStr().contains("文化")) {
needCultureScore = cultureLowest; needCultureScore = cultureLowest;
}else{ } else {
needCultureScore = mallCountMethodService.getNeedCultureScore(majorScore, acceptLowest, acceptRuleId); needCultureScore = mallCountMethodService.getNeedCultureScore(majorScore, acceptLowest, acceptRuleId);
} }
unionTestAnalysisVO.setNeedCultureScore(needCultureScore); unionTestAnalysisVO.setNeedCultureScore(needCultureScore);
...@@ -960,19 +1064,21 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -960,19 +1064,21 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 综合成绩分析 * 综合成绩分析
*
* @param schoolId 学校id * @param schoolId 学校id
* @param batchId 批次id * @param batchId 批次id
* @param id 用户id * @param id 用户id
* @param pageNum 页码 * @param pageNum 页码
* @param pageSize 每页个数 * @param pageSize 每页个数
* @return 结果 * @return 结果
*/ */
@Override @Override
public AjaxResult selectUserScoreAnalysisList(Long schoolId, Long batchId, Long id, Integer pageNum, Integer pageSize) { public AjaxResult selectUserScoreAnalysisList(Long schoolId, Long batchId, Long id, Integer pageNum, Integer
pageSize) {
// 用户录取信息 // 用户录取信息
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id); MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (StringUtils.isBlank(mallMemberUser.getSubjectType())){ if (StringUtils.isBlank(mallMemberUser.getSubjectType())) {
return AjaxResult.error("请先完善用户学科信息"); return AjaxResult.error("请先完善用户学科信息");
} }
String subjectType = mallMemberUser.getSubjectType(); String subjectType = mallMemberUser.getSubjectType();
...@@ -980,9 +1086,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -980,9 +1086,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
List<UserScoreAnalysisVO> list = mallSchoolAcceptRecordMapper.selectUserScoreAnalysisList(schoolId, batchId, subjectType); List<UserScoreAnalysisVO> list = mallSchoolAcceptRecordMapper.selectUserScoreAnalysisList(schoolId, batchId, subjectType);
if(ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())){ if (ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())) {
// 计算综合分 // 计算综合分
if (!list.isEmpty()){ if (!list.isEmpty()) {
for (UserScoreAnalysisVO userScoreAnalysisVO : list) { for (UserScoreAnalysisVO userScoreAnalysisVO : list) {
BigDecimal totalScore = mallCountMethodService.getTotalScore(mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore(), userScoreAnalysisVO.getAcceptRuleId()); BigDecimal totalScore = mallCountMethodService.getTotalScore(mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore(), userScoreAnalysisVO.getAcceptRuleId());
userScoreAnalysisVO.setMyScore(totalScore); userScoreAnalysisVO.setMyScore(totalScore);
...@@ -1000,6 +1106,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1000,6 +1106,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 智能匹配大学 * 智能匹配大学
*
* @param matchSchoolBO 匹配参数 * @param matchSchoolBO 匹配参数
* @return 结果 * @return 结果
*/ */
...@@ -1011,9 +1118,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1011,9 +1118,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Long subjectId = matchSchoolBO.getSubjectId(); Long subjectId = matchSchoolBO.getSubjectId();
// 查询学科 // 查询学科
//MallSubjectClass mallSubjectClass = mallSubjectClassMapper.selectMallSubjectClassBySubjectId(subjectId); // MallSubjectClass mallSubjectClass = mallSubjectClassMapper.selectMallSubjectClassBySubjectId(subjectId);
//String subjectType = "文科".equals(mallSubjectClass.getSubjectName()) || "文".equals(mallSubjectClass.getSubjectName())? "0" : "1"; // String subjectType = "文科".equals(mallSubjectClass.getSubjectName()) || "文".equals(mallSubjectClass.getSubjectName())? "0" : "1";
String subjectType = subjectId == 1L? "0" : "1"; String subjectType = subjectId == 1L ? "0" : "1";
// 查询批次大学列表 // 查询批次大学列表
List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolList(null, batchId, null, null, null, null, null, subjectType); List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolList(null, batchId, null, null, null, null, null, subjectType);
...@@ -1031,10 +1138,20 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1031,10 +1138,20 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
List<SchoolVO> list1 = new ArrayList<>(); List<SchoolVO> list1 = new ArrayList<>();
List<SchoolVO> list2 = new ArrayList<>(); List<SchoolVO> list2 = new ArrayList<>();
List<SchoolVO> list3 = new ArrayList<>(); List<SchoolVO> list3 = new ArrayList<>();
if (!schoolVOS.isEmpty()){ if (!schoolVOS.isEmpty()) {
//List<MallSchoolTag> allTag = mallSchoolTagMapper.selectTagList(); // List<MallSchoolTag> allTag = mallSchoolTagMapper.selectTagList();
// 学校录取率计算 // 学校录取率计算
try { try {
boolean flag = false;
if (subjectType.equals("0") && majorScore >= 193 && cultureScore >= 331){
flag = true;
}else if (subjectType.equals("1") && majorScore >= 193 && cultureScore >= 328){
flag = true;
}
boolean finalFlag = flag;
CountDownLatch countDownLatch = new CountDownLatch(schoolVOS.size()); CountDownLatch countDownLatch = new CountDownLatch(schoolVOS.size());
for (SchoolVO schoolVO : schoolVOS) { for (SchoolVO schoolVO : schoolVOS) {
...@@ -1043,33 +1160,36 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1043,33 +1160,36 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
public void run() { public void run() {
MallSchoolAccept mallSchoolAccept = new MallSchoolAccept(); MallSchoolAccept mallSchoolAccept = new MallSchoolAccept();
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
if(batchId == 4L){ if (batchId == 4L) {
// 专科 // 专科
System.out.println("========" + Thread.currentThread().getName() + schoolVO.getSchoolId()); System.out.println("========" + Thread.currentThread().getName() + schoolVO.getSchoolId());
mallSchoolAccept = mallSchoolAcceptMapper.selectZhuankeAcceptBySchoolId(schoolVO.getSchoolId(), batchId, subjectType); mallSchoolAccept = mallSchoolAcceptMapper.selectZhuankeAcceptBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
// 计算专科 // 计算专科
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){ if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore); result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
}else { } else {
result.put("acceptRate", BigDecimal.ZERO); result.put("acceptRate", BigDecimal.ZERO);
result.put("rateType", -2); result.put("rateType", -2);
} }
}else{ } else if (finalFlag){
// 本科 // 本科
mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType); mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
// 计算 // 计算
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){ if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore); result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
}else { } else {
result.put("acceptRate", "0"); result.put("acceptRate", "0");
result.put("rateType", -2); result.put("rateType", -2);
} }
}else {
result.put("acceptRate", "0");
result.put("rateType", -2);
} }
schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString())); schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString()));
schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%"); schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%");
schoolVO.setRateType((Integer)result.get("rateType")); schoolVO.setRateType((Integer) result.get("rateType"));
// 查询标签列表 // 查询标签列表
if (StringUtils.isNotBlank(schoolVO.getTags())) { if (StringUtils.isNotBlank(schoolVO.getTags())) {
...@@ -1078,14 +1198,14 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1078,14 +1198,14 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
schoolVO.setTagList(list); schoolVO.setTagList(list);
} }
Integer rateType = schoolVO.getRateType(); Integer rateType = schoolVO.getRateType();
if ( ObjectUtils.isNotEmpty(rateType) ){ if (ObjectUtils.isNotEmpty(rateType)) {
if (rateType == 0){ if (rateType == 0) {
list0.add(schoolVO); list0.add(schoolVO);
}else if (rateType == 1){ } else if (rateType == 1) {
list1.add(schoolVO); list1.add(schoolVO);
}else if (rateType == 2){ } else if (rateType == 2) {
list2.add(schoolVO); list2.add(schoolVO);
}else if (rateType == 3){ } else if (rateType == 3) {
list3.add(schoolVO); list3.add(schoolVO);
} }
} }
...@@ -1095,30 +1215,30 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1095,30 +1215,30 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
} }
countDownLatch.await(); countDownLatch.await();
}catch (Exception e){ } catch (Exception e) {
throw new ServiceException(); throw new ServiceException();
} }
if (!list0.isEmpty()){ if (!list0.isEmpty()) {
list0.sort(Comparator.comparing(SchoolVO::getAcceptRate).reversed()); list0.sort(Comparator.comparing(SchoolVO::getAcceptRate).reversed());
} }
if (!list1.isEmpty()){ if (!list1.isEmpty()) {
list1.sort(Comparator.comparing(SchoolVO::getAcceptRate).reversed()); list1.sort(Comparator.comparing(SchoolVO::getAcceptRate).reversed());
} }
if (!list2.isEmpty()){ if (!list2.isEmpty()) {
Collections.sort(list2, (a,b)->{ Collections.sort(list2, (a, b) -> {
return b.getAcceptRate().compareTo(a.getAcceptRate()) ; return b.getAcceptRate().compareTo(a.getAcceptRate());
}); });
} }
if (!list3.isEmpty()){ if (!list3.isEmpty()) {
Collections.sort(list3, (a,b)->{ Collections.sort(list3, (a, b) -> {
if (a != null && b != null){ if (a != null && b != null) {
return a.getAcceptRate().compareTo(b.getAcceptRate()) ; return a.getAcceptRate().compareTo(b.getAcceptRate());
} }
return 0; return 0;
}); });
...@@ -1127,36 +1247,36 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1127,36 +1247,36 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 可冒险 // 可冒险
result0.put("rateType", 0); result0.put("rateType", 0);
result0.put("num", list0.size()); result0.put("num", list0.size());
if (list0.size() <= 3){ if (list0.size() <= 3) {
result0.put("list", list0); result0.put("list", list0);
}else { } else {
result0.put("list", list0.subList(0,3)); result0.put("list", list0.subList(0, 3));
} }
// 搏一搏 // 搏一搏
result1.put("rateType", 1); result1.put("rateType", 1);
result1.put("num", list1.size()); result1.put("num", list1.size());
if (list1.size() <= 3){ if (list1.size() <= 3) {
result1.put("list", list1); result1.put("list", list1);
}else{ } else {
result1.put("list", list1.subList(0, 3)); result1.put("list", list1.subList(0, 3));
} }
// 较稳妥 // 较稳妥
result2.put("rateType", 2); result2.put("rateType", 2);
result2.put("num", list2.size()); result2.put("num", list2.size());
if (list2.size() <= 3){ if (list2.size() <= 3) {
result2.put("list", list2); result2.put("list", list2);
}else{ } else {
result2.put("list", list2.subList(0, 3)); result2.put("list", list2.subList(0, 3));
} }
// 可保底 // 可保底
result3.put("rateType", 3); result3.put("rateType", 3);
result3.put("num", list3.size()); result3.put("num", list3.size());
if (list3.size() <= 3){ if (list3.size() <= 3) {
result3.put("list", list3); result3.put("list", list3);
}else{ } else {
result3.put("list", list3.subList(0, 3)); result3.put("list", list3.subList(0, 3));
} }
...@@ -1164,7 +1284,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1164,7 +1284,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
resultList.add(result1); resultList.add(result1);
resultList.add(result2); resultList.add(result2);
resultList.add(result3); resultList.add(result3);
if (result0.size() == 0 && result1.size() == 1 && result2.size() == 2 && result3.size() == 3){ if (result0.size() == 0 && result1.size() == 1 && result2.size() == 2 && result3.size() == 3) {
resultList = Arrays.asList(); resultList = Arrays.asList();
} }
} }
...@@ -1173,46 +1293,47 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1173,46 +1293,47 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 根据录取概率分组标记查询学校列表 * 根据录取概率分组标记查询学校列表
* @param rateType 类型(0-可冒险,1-搏一搏,2-较稳妥,3-可保底) *
* @param id 用户id * @param rateType 类型(0-可冒险,1-搏一搏,2-较稳妥,3-可保底)
* @param batchId 批次id * @param id 用户id
* @param batchId 批次id
* @param cultureScore 文化分 * @param cultureScore 文化分
* @param majorScore 文化分 * @param majorScore 文化分
* @param pageNum 页码 * @param pageNum 页码
* @param pageSize 每页个数 * @param pageSize 每页个数
* @return 结果 * @return 结果
*/ */
@Override @Override
public List<SchoolVO> matchSchoolListByType(Integer rateType, public List<SchoolVO> matchSchoolListByType(Integer rateType,
Long id, Long id,
Long batchId, Long batchId,
Integer cultureScore, Integer cultureScore,
Integer majorScore, Integer majorScore,
Integer pageNum, Integer pageNum,
Integer pageSize, Integer pageSize,
Integer subjectId) { Integer subjectId) {
// 查询录取率设定表 // 查询录取率设定表
//List<MallAcceptRateSetting> rateSettings = mallAcceptRateSettingMapper.selectRateSettingList(); // List<MallAcceptRateSetting> rateSettings = mallAcceptRateSettingMapper.selectRateSettingList();
// 查询批次大学列表 // 查询批次大学列表
List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolList(null, batchId, null, null, null, null, null,null); List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolList(null, batchId, null, null, null, null, null, null);
List<Map<String, Object>> resultList = new ArrayList<>(); List<Map<String, Object>> resultList = new ArrayList<>();
// 用户成绩查询 // 用户成绩查询
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id); MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
if (null != subjectId ){ if (null != subjectId) {
stringBuilder.append(subjectId == 1? "0": "1"); stringBuilder.append(subjectId == 1 ? "0" : "1");
}else{ } else {
stringBuilder.append(mallMemberUser.getSubjectType()); stringBuilder.append(mallMemberUser.getSubjectType());
} }
String subjectType = stringBuilder.toString(); String subjectType = stringBuilder.toString();
List<SchoolVO> list = new ArrayList<>(); List<SchoolVO> list = new ArrayList<>();
if (!schoolVOS.isEmpty()){ if (!schoolVOS.isEmpty()) {
// 学校录取率计算 // 学校录取率计算
try { try {
CountDownLatch countDownLatch = new CountDownLatch(schoolVOS.size()); CountDownLatch countDownLatch = new CountDownLatch(schoolVOS.size());
...@@ -1224,33 +1345,32 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1224,33 +1345,32 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 查询学校最低专业录取分 // 查询学校最低专业录取分
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
MallSchoolAccept mallSchoolAccept = new MallSchoolAccept(); MallSchoolAccept mallSchoolAccept = new MallSchoolAccept();
if(batchId == 4L){ if (batchId == 4L) {
// 专科 // 专科
mallSchoolAccept = mallSchoolAcceptMapper.selectZhuankeAcceptBySchoolId(schoolVO.getSchoolId(), batchId, subjectType); mallSchoolAccept = mallSchoolAcceptMapper.selectZhuankeAcceptBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
// 计算专科 // 计算专科
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){ if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore); result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
}else { } else {
result.put("acceptRate", BigDecimal.ZERO); result.put("acceptRate", BigDecimal.ZERO);
result.put("rateType", -2); result.put("rateType", -2);
} }
}else{ } else {
mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType); mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){ if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore); result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
}else{ } else {
result.put("acceptRate", 0); result.put("acceptRate", 0);
result.put("rateType", -2); result.put("rateType", -2);
} }
} }
if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0) {
if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0 ){
schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString())); schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString()));
schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%"); schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%");
schoolVO.setRateType((Integer)result.get("rateType")); schoolVO.setRateType((Integer) result.get("rateType"));
} }
if (StringUtils.isNotBlank(schoolVO.getTags())) { if (StringUtils.isNotBlank(schoolVO.getTags())) {
...@@ -1264,14 +1384,14 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1264,14 +1384,14 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
} }
countDownLatch.await(); countDownLatch.await();
}catch (Exception e){ } catch (Exception e) {
throw new ServiceException(); throw new ServiceException();
} }
// 选择类型 // 选择类型
list = schoolVOS.stream().filter(item -> item.getRateType()!=null && item.getRateType().equals(rateType)).collect(Collectors.toList()); list = schoolVOS.stream().filter(item -> item.getRateType() != null && item.getRateType().equals(rateType)).collect(Collectors.toList());
if (!list.isEmpty()){ if (!list.isEmpty()) {
list.sort(Comparator.comparing(SchoolVO::getAcceptRate).reversed()); list.sort(Comparator.comparing(SchoolVO::getAcceptRate).reversed());
} }
...@@ -1281,35 +1401,37 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1281,35 +1401,37 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 升学规划- 我的目标 * 升学规划- 我的目标
* @param id 用户id *
* @param batchId 批次id * @param id 用户id
* @param batchId 批次id
* @param schoolName 学校名称 * @param schoolName 学校名称
* @param majorId 专业id * @param majorId 专业id
* @return 结果 * @return 结果
*/ */
@Override @Override
public PageInfo<SchoolVO> enterPlanTargetList(Long id, Long batchId, String schoolName, Long majorId, Integer pageNum, Integer pageSize) { public PageInfo<SchoolVO> enterPlanTargetList(Long id, Long batchId, String schoolName, Long majorId, Integer
pageNum, Integer pageSize) {
// 用户信息 // 用户信息
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id); MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
List<SchoolVO> schoolList = new ArrayList<>(); List<SchoolVO> schoolList = new ArrayList<>();
if (ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())){ if (ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())) {
String subjectType = mallMemberUser.getSubjectType(); String subjectType = mallMemberUser.getSubjectType();
// 录取率设定信息 // 录取率设定信息
//List<MallAcceptRateSetting> settingList = mallAcceptRateSettingMapper.selectRateSettingList(); // List<MallAcceptRateSetting> settingList = mallAcceptRateSettingMapper.selectRateSettingList();
// 我的目标学校 // 我的目标学校
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
// 专业名称 // 专业名称
String twoClassName = ""; String twoClassName = "";
if (majorId != null){ if (majorId != null) {
MallMajorClass majorClass = mallMajorClassMapper.selectMallMajorClassByMajorId(majorId); MallMajorClass majorClass = mallMajorClassMapper.selectMallMajorClassByMajorId(majorId);
twoClassName = majorClass.getMajorName(); twoClassName = majorClass.getMajorName();
} }
schoolList = mallMemberTargetSchoolMapper.selectTargetSchoolListByUserId(id, batchId, schoolName, twoClassName, subjectType); schoolList = mallMemberTargetSchoolMapper.selectTargetSchoolListByUserId(id, batchId, schoolName, twoClassName, subjectType);
if (!schoolList.isEmpty()){ if (!schoolList.isEmpty()) {
for (SchoolVO schoolVO : schoolList) { for (SchoolVO schoolVO : schoolList) {
// 目标学校状态 // 目标学校状态
...@@ -1325,25 +1447,25 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1325,25 +1447,25 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 查询学校最低专业录取分 // 查询学校最低专业录取分
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
MallSchoolAccept mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType); MallSchoolAccept mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){ if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore()); result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore());
}else{ } else {
result.put("acceptRate", new BigDecimal("1")); result.put("acceptRate", new BigDecimal("1"));
result.put("rateType", -2); result.put("rateType", -2);
} }
if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0 ){ if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0) {
schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString())); schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString()));
schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%"); schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%");
schoolVO.setRateType((Integer)result.get("rateType")); schoolVO.setRateType((Integer) result.get("rateType"));
}else{//录取率为0 } else {// 录取率为0
schoolVO.setAcceptRate(BigDecimal.ZERO); schoolVO.setAcceptRate(BigDecimal.ZERO);
schoolVO.setShowAcceptRate(schoolVO.getAcceptRate().toPlainString() + "%"); schoolVO.setShowAcceptRate(schoolVO.getAcceptRate().toPlainString() + "%");
schoolVO.setRateType((Integer)result.get("rateType")); schoolVO.setRateType((Integer) result.get("rateType"));
} }
if (schoolVO.getRateType() == 2 || schoolVO.getRateType() == 3){ if (schoolVO.getRateType() == 2 || schoolVO.getRateType() == 3) {
// 较安全 // 较安全
schoolVO.setWarnStatus(1); schoolVO.setWarnStatus(1);
}else{ } else {
schoolVO.setWarnStatus(0); schoolVO.setWarnStatus(0);
} }
} }
...@@ -1358,15 +1480,17 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1358,15 +1480,17 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 升学规划分类查询学校列表 * 升学规划分类查询学校列表
*
* @param rateType 类型 * @param rateType 类型
* @param id 用户id * @param id 用户id
* @param batchId 批次id * @param batchId 批次id
* @param pageNum 页码 * @param pageNum 页码
* @param pageSize 每页个数 * @param pageSize 每页个数
* @return 结果 * @return 结果
*/ */
@Override @Override
public AjaxResult enterPlanSchoolListByType(Integer rateType, Long id, Long batchId, String schoolName, Long majorId, Integer pageNum, Integer pageSize) { public AjaxResult enterPlanSchoolListByType(Integer rateType, Long id, Long batchId, String schoolName, Long
majorId, Integer pageNum, Integer pageSize) {
// 选择类型 // 选择类型
List<SchoolVO> collect = new ArrayList<>(); List<SchoolVO> collect = new ArrayList<>();
...@@ -1376,24 +1500,23 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1376,24 +1500,23 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 查询用户分 // 查询用户分
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id); MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (ObjectUtils.isEmpty(mallMemberUser)){ if (ObjectUtils.isEmpty(mallMemberUser)) {
return AjaxResult.error("用户信息异常"); return AjaxResult.error("用户信息异常");
} }
if(ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())){ if (ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())) {
// 文化分和专业分 // 文化分和专业分
Integer cultureScore = mallMemberUser.getCultureScore(); Integer cultureScore = mallMemberUser.getCultureScore();
Integer majorScore = mallMemberUser.getMajorScore(); Integer majorScore = mallMemberUser.getMajorScore();
String subjectType = mallMemberUser.getSubjectType(); String subjectType = mallMemberUser.getSubjectType();
// 查询录取控制线 // 查询录取控制线
List<MallExamData> lineList = mallExamDataMapper.selectLineList(); List<MallExamData> lineList = mallExamDataMapper.selectLineList();
// 查询二级分类 // 查询二级分类
String twoClassName = ""; String twoClassName = "";
if (majorId != null){ if (majorId != null) {
MallMajorClass majorClass = mallMajorClassMapper.selectMallMajorClassByMajorId(majorId); MallMajorClass majorClass = mallMajorClassMapper.selectMallMajorClassByMajorId(majorId);
twoClassName = majorClass.getMajorName(); twoClassName = majorClass.getMajorName();
} }
...@@ -1401,8 +1524,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1401,8 +1524,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 查询批次大学列表 // 查询批次大学列表
List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolList(schoolName, batchId, null, null, null, null, twoClassName, subjectType); List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolList(schoolName, batchId, null, null, null, null, twoClassName, subjectType);
if (!schoolVOS.isEmpty()){ if (!schoolVOS.isEmpty()) {
try{ try {
CountDownLatch countDownLatch = new CountDownLatch(schoolVOS.size()); CountDownLatch countDownLatch = new CountDownLatch(schoolVOS.size());
// 学校录取率计算 // 学校录取率计算
...@@ -1413,22 +1536,22 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1413,22 +1536,22 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
MallSchoolAccept mallSchoolAccept = new MallSchoolAccept(); MallSchoolAccept mallSchoolAccept = new MallSchoolAccept();
// 学校录取专业最低分 // 学校录取专业最低分
if (batchId == 4L){ if (batchId == 4L) {
// 专科 // 专科
mallSchoolAccept = mallSchoolAcceptMapper.selectZhuankeAcceptBySchoolId(schoolVO.getSchoolId(), batchId, subjectType); mallSchoolAccept = mallSchoolAcceptMapper.selectZhuankeAcceptBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
// 计算专科 // 计算专科
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){ if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore); result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
}else { } else {
result.put("acceptRate", BigDecimal.ZERO); result.put("acceptRate", BigDecimal.ZERO);
result.put("rateType", -2); result.put("rateType", -2);
} }
}else{ } else {
// 本科 // 本科
mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType); mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){ if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference() != null?mallSchoolAccept.getReference() : new BigDecimal("500") , mallSchoolAccept.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore()); result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference() != null ? mallSchoolAccept.getReference() : new BigDecimal("500"), mallSchoolAccept.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore());
}else{ } else {
result.put("acceptRate", BigDecimal.ZERO); result.put("acceptRate", BigDecimal.ZERO);
result.put("rateType", -2); result.put("rateType", -2);
} }
...@@ -1436,7 +1559,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1436,7 +1559,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString())); schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString()));
schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%"); schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%");
schoolVO.setRateType((Integer)result.get("rateType")); schoolVO.setRateType((Integer) result.get("rateType"));
if (StringUtils.isNotBlank(schoolVO.getTags())) { if (StringUtils.isNotBlank(schoolVO.getTags())) {
// 查询标签列表 // 查询标签列表
...@@ -1449,45 +1572,45 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1449,45 +1572,45 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
} }
countDownLatch.await(); countDownLatch.await();
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new ServiceException(); throw new ServiceException();
} }
if(rateType == -1){ if (rateType == -1) {
collect = schoolVOS; collect = schoolVOS;
}else{ } else {
collect = schoolVOS.stream().filter(item -> item.getRateType()!=null && item.getRateType().equals(rateType)).collect(Collectors.toList()); collect = schoolVOS.stream().filter(item -> item.getRateType() != null && item.getRateType().equals(rateType)).collect(Collectors.toList());
} }
// 排序并处理分页 // 排序并处理分页
if (!collect.isEmpty()){ if (!collect.isEmpty()) {
// 排序 // 排序
if (rateType == 3){ if (rateType == 3) {
collect.sort(Comparator.comparing(SchoolVO:: getAcceptRate)); collect.sort(Comparator.comparing(SchoolVO::getAcceptRate));
}else if (rateType == -1){ } else if (rateType == -1) {
collect.sort(Comparator.comparing(SchoolVO:: getSchoolId)); collect.sort(Comparator.comparing(SchoolVO::getSchoolId));
}else{ } else {
collect.sort(Comparator.comparing(SchoolVO:: getAcceptRate).reversed()); collect.sort(Comparator.comparing(SchoolVO::getAcceptRate).reversed());
} }
} }
} }
} }
//java8 stream实现list分页 // java8 stream实现list分页
List<SchoolVO> pageList = collect.stream().sorted().skip((long) (pageNum - 1) * pageSize) List<SchoolVO> pageList = collect.stream().sorted().skip((long) (pageNum - 1) * pageSize)
.limit(pageSize) .limit(pageSize)
.collect(Collectors.toList()); .collect(Collectors.toList());
PageInfo<SchoolVO> pageInfo = new PageInfo<SchoolVO>(pageList); PageInfo<SchoolVO> pageInfo = new PageInfo<SchoolVO>(pageList);
//获取PageInfo其他参数 // 获取PageInfo其他参数
pageInfo.setTotal(collect.size()); pageInfo.setTotal(collect.size());
int endRow = pageInfo.getEndRow() == 0 ? 0 : (int)((pageNum - 1) * pageSize + pageInfo.getEndRow() + 1); int endRow = pageInfo.getEndRow() == 0 ? 0 : (int) ((pageNum - 1) * pageSize + pageInfo.getEndRow() + 1);
pageInfo.setEndRow(endRow); pageInfo.setEndRow(endRow);
boolean hasNextPage = collect.size() <= pageSize * pageNum ? false : true; boolean hasNextPage = collect.size() <= pageSize * pageNum ? false : true;
pageInfo.setHasNextPage(hasNextPage); pageInfo.setHasNextPage(hasNextPage);
...@@ -1514,13 +1637,18 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1514,13 +1637,18 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
pageInfo.setStartRow(starRow); pageInfo.setStartRow(starRow);
return AjaxResult.success(pageInfo); return AjaxResult.success(pageInfo);
} }
/**志愿自主选择 筛选学校*/
/**
* 志愿自主选择 筛选学校
*/
@Override @Override
public List<Long> getAstrictSchoolIds(CheckingOutParamBo bo) { public List<Long> getAstrictSchoolIds(CheckingOutParamBo bo) {
return mallSchoolMapper.selectSchoolByParams(bo); return mallSchoolMapper.selectSchoolByParams(bo);
} }
/**志愿自主选择 获取学校信息*/ /**
* 志愿自主选择 获取学校信息
*/
@Override @Override
public List<SchoolMajorVO> schoolListInfoForReport(List<Long> sIds) { public List<SchoolMajorVO> schoolListInfoForReport(List<Long> sIds) {
return mallSchoolMapper.schoolListInfoForReport(sIds); return mallSchoolMapper.schoolListInfoForReport(sIds);
...@@ -1528,22 +1656,24 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1528,22 +1656,24 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 保研率学校列表 * 保研率学校列表
* @param schoolName 学校名 *
* @param batchId 批次id * @param schoolName 学校名
* @param batchId 批次id
* @param configLevelId 层次id * @param configLevelId 层次id
* @param configTypeId 办学类型id * @param configTypeId 办学类型id
* @param provinceId 省份 * @param provinceId 省份
* @param cityId 城市 * @param cityId 城市
* @param pageNum 页码 * @param pageNum 页码
* @param pageSize 每页个数 * @param pageSize 每页个数
* @return 结果 * @return 结果
*/ */
@Override @Override
public PageInfo<SchoolVO> selectSchoolListForMaster(String schoolName, Long batchId, Long configLevelId, Long configTypeId, Long provinceId, Long cityId, Integer pageNum, Integer pageSize) { public PageInfo<SchoolVO> selectSchoolListForMaster(String schoolName, Long batchId, Long configLevelId, Long
configTypeId, Long provinceId, Long cityId, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
List<SchoolVO> schoolList = mallSchoolMapper.selectSchoolListForMaster(schoolName, batchId, configLevelId, configTypeId, provinceId, cityId); List<SchoolVO> schoolList = mallSchoolMapper.selectSchoolListForMaster(schoolName, batchId, configLevelId, configTypeId, provinceId, cityId);
if (!schoolList.isEmpty()){ if (!schoolList.isEmpty()) {
for (SchoolVO schoolVO : schoolList) { for (SchoolVO schoolVO : schoolList) {
if (StringUtils.isNotBlank(schoolVO.getTags())) { if (StringUtils.isNotBlank(schoolVO.getTags())) {
// 查询标签列表 // 查询标签列表
...@@ -1562,13 +1692,14 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1562,13 +1692,14 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 专业开设学校 * 专业开设学校
* @param schoolName 学校名称 *
* @param batchId 批次id * @param schoolName 学校名称
* @param batchId 批次id
* @param configLevelId 层次id * @param configLevelId 层次id
* @param configTypeId 类型id * @param configTypeId 类型id
* @param provinceId 省份id * @param provinceId 省份id
* @param cityId 城市id * @param cityId 城市id
* @param type 类型(0-强校,1-硕士点) * @param type 类型(0-强校,1-硕士点)
* @return 结果 * @return 结果
*/ */
@Override @Override
...@@ -1584,7 +1715,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1584,7 +1715,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Integer pageSize) { Integer pageSize) {
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
List<SchoolVO> list = mallSchoolMapper.selectSchoolListByMajorId(schoolName, batchId, configLevelId, configTypeId, provinceId, cityId, type, majorId); List<SchoolVO> list = mallSchoolMapper.selectSchoolListByMajorId(schoolName, batchId, configLevelId, configTypeId, provinceId, cityId, type, majorId);
if (!list.isEmpty()){ if (!list.isEmpty()) {
for (SchoolVO schoolVO : list) { for (SchoolVO schoolVO : list) {
if (StringUtils.isNotBlank(schoolVO.getTags())) { if (StringUtils.isNotBlank(schoolVO.getTags())) {
// 查询标签列表 // 查询标签列表
...@@ -1599,7 +1730,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1599,7 +1730,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/** /**
* 修改学校重复数据 * 修改学校重复数据
* @param schoolId 保留的学校ID *
* @param schoolId 保留的学校ID
* @param deleteSchoolId 删除的学校ID * @param deleteSchoolId 删除的学校ID
* @return 结果 * @return 结果
*/ */
...@@ -1695,7 +1827,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1695,7 +1827,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
String qrCode = ""; String qrCode = "";
// 小程序码 // 小程序码
Long schoolId = mallSchool.getSchoolId(); Long schoolId = mallSchool.getSchoolId();
String key = schoolId + ".png"; String key = schoolId + ".png";
qrCode = weiXinUtils.getSchoolQRCode(schoolId, key); qrCode = weiXinUtils.getSchoolQRCode(schoolId, key);
updateSchool.setQrCode(qrCode); updateSchool.setQrCode(qrCode);
} }
...@@ -1714,4 +1846,5 @@ public class MallSchoolServiceImpl implements IMallSchoolService { ...@@ -1714,4 +1846,5 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
public MallSchool selectMallSchoolBySysUserId(Long sysUserId) { public MallSchool selectMallSchoolBySysUserId(Long sysUserId) {
return mallSchoolMapper.selectMallSchoolBySysUserId(sysUserId); return mallSchoolMapper.selectMallSchoolBySysUserId(sysUserId);
} }
} }
...@@ -456,7 +456,7 @@ public class MemberReportIntelligenceServiceImpl implements IMemberReportIntelli ...@@ -456,7 +456,7 @@ public class MemberReportIntelligenceServiceImpl implements IMemberReportIntelli
int d = kbd.size(); int d = kbd.size();
//Collections.shuffle(jwt); //Collections.shuffle(jwt);
int remain = 35-finalCollect.size(); int remain = 64-finalCollect.size();
if(remain >= d){ if(remain >= d){
finalCollect.addAll(kbd); finalCollect.addAll(kbd);
...@@ -549,7 +549,7 @@ public class MemberReportIntelligenceServiceImpl implements IMemberReportIntelli ...@@ -549,7 +549,7 @@ public class MemberReportIntelligenceServiceImpl implements IMemberReportIntelli
} }
}else{ }else{
if(c>=10){ if(c>=10){
finalCollect.addAll(targetList.subList(0,10)); finalCollect.addAll(targetList.subList(0,16));
}else{ }else{
finalCollect.addAll(targetList); finalCollect.addAll(targetList);
} }
......
...@@ -149,7 +149,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -149,7 +149,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectPlan" resultType="MallAcceptPlan"> <select id="selectPlan" resultType="com.ruoyi.mall.domain.MallAcceptPlan">
select accept_plan_id acceptPlanId, select accept_plan_id acceptPlanId,
school_id schoolId, school_id schoolId,
batch_id batchId, batch_id batchId,
...@@ -169,6 +169,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -169,6 +169,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and plan_year = #{planYear} and plan_year = #{planYear}
and subject_type = #{subjectType} and subject_type = #{subjectType}
and link_id = #{linkId} and del_flag = '0' and link_id = #{linkId} and del_flag = '0'
order by create_at desc
</select> </select>
<select id="selectSchoolPrice" parameterType="Long" resultType="MallAcceptPlan"> <select id="selectSchoolPrice" parameterType="Long" resultType="MallAcceptPlan">
...@@ -411,4 +412,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -411,4 +412,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach> </foreach>
</update> </update>
<insert id="insertByList" >
INSERT INTO mall_accept_plan (
school_id,batch_id,plan_year,major_id,subject_type,accept_num,
school_price,accept_rule_id,little_score_limit,sort,
create_at,update_at,del_flag,link_id
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.schoolId},
#{item.batchId},
#{item.planYear},
#{item.majorId},
#{item.subjectType},
#{item.acceptNum},
#{item.schoolPrice},
#{item.acceptRuleId},
#{item.littleScoreLimit},
#{item.sort},
#{item.createAt},
#{item.updateAt},
#{item.delFlag},
#{item.linkId}
)
</foreach>
</insert>
</mapper> </mapper>
...@@ -55,6 +55,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -55,6 +55,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and del_flag = '0' and del_flag = '0'
</select> </select>
<select id="selectMallAcceptRuleByAcceptRuleStr2" resultMap="MallAcceptRuleResult">
<include refid="selectMallAcceptRuleVo"/>
where rule_str = #{ruleStr}
and del_flag = '0'
order by create_at desc
</select>
<select id="selectNewAcceptRule" resultMap="MallAcceptRuleResult"> <select id="selectNewAcceptRule" resultMap="MallAcceptRuleResult">
<include refid="selectMallAcceptRuleVo"/> <include refid="selectMallAcceptRuleVo"/>
where is_new = 1 where is_new = 1
......
...@@ -43,6 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -43,6 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ms.school_name schoolName, ms.school_name schoolName,
mar.rule_str ruleStr, mar.rule_str ruleStr,
mb.batch_name batchName, mb.batch_name batchName,
ml.major_code majorCode,
ml.major_name majorName, ml.major_name majorName,
msa.subject_type subjectType, msa.subject_type subjectType,
msa.reference reference, msa.reference reference,
...@@ -97,7 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -97,7 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where school_accept_id = #{schoolAcceptId} where school_accept_id = #{schoolAcceptId}
</select> </select>
<select id="selectBySchoolIdAndLinkId" resultType="MallSchoolAccept"> <select id="selectBySchoolIdAndLinkId" resultType="com.ruoyi.mall.domain.MallSchoolAccept">
select msa.school_accept_id schoolAcceptId, select msa.school_accept_id schoolAcceptId,
msa.school_id schoolId, msa.school_id schoolId,
msa.major_id majorId, msa.major_id majorId,
...@@ -120,6 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -120,6 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and link_id = #{linkId} and link_id = #{linkId}
and accept_year = #{acceptYear} and accept_year = #{acceptYear}
and subject_type = #{subjectType} and subject_type = #{subjectType}
order by create_at desc
</select> </select>
<insert id="insertMallSchoolAccept" parameterType="MallSchoolAccept" useGeneratedKeys="true" keyProperty="schoolAcceptId"> <insert id="insertMallSchoolAccept" parameterType="MallSchoolAccept" useGeneratedKeys="true" keyProperty="schoolAcceptId">
...@@ -159,6 +161,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -159,6 +161,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="linkId != null ">#{linkId},</if> <if test="linkId != null ">#{linkId},</if>
</trim> </trim>
</insert> </insert>
<insert id="insertByList">
insert into mall_school_accept(
school_id,
major_id,
batch_id,
accept_num,
accept_lowest,
accept_year,
accept_rule_id,
send_rule_id,
create_at,
update_at,
del_flag,
subject_type,
reference,
is_reference,
link_id
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.schoolId},
#{item.majorId},
#{item.batchId},
#{item.acceptNum},
#{item.acceptLowest},
#{item.acceptYear},
#{item.acceptRuleId},
#{item.sendRuleId},
#{item.createAt},
#{item.updateAt},
#{item.delFlag},
#{item.subjectType},
#{item.reference},
#{item.isReference},
#{item.linkId},
)
</foreach>
</insert>
<update id="updateMallSchoolAccept" parameterType="MallSchoolAccept"> <update id="updateMallSchoolAccept" parameterType="MallSchoolAccept">
update mall_school_accept update mall_school_accept
...@@ -226,8 +266,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -226,8 +266,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where del_flag = '0' and is_reference = 1 where del_flag = '0' and is_reference = 1
</select> </select>
<select id="selectSchoolMajorRecordList" resultType="SchoolMajorAcceptRecordVO"> <select id="selectSchoolMajorRecordList" resultType="com.ruoyi.mall.domain.Vo.SchoolMajorAcceptRecordVO">
select msa.school_accept_id schoolAcceptId, select msa.school_accept_id schoolAcceptId,
mlms.major_code majorCode,
mlms.major_name majorName, mlms.major_name majorName,
msa.accept_num acceptNum, msa.accept_num acceptNum,
msa.accept_lowest acceptLowest, msa.accept_lowest acceptLowest,
......
...@@ -284,7 +284,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -284,7 +284,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and del_flag = '0' and del_flag = '0'
and subject_type = #{subjectType} and subject_type = #{subjectType}
and accept_lowest is not null and accept_lowest is not null
and accept_year not in ('2024')
order by accept_year desc, accept_lowest asc limit 1000) temp order by accept_year desc, accept_lowest asc limit 1000) temp
group by temp.acceptYear group by temp.acceptYear
order by temp.acceptYear desc order by temp.acceptYear desc
......
...@@ -78,6 +78,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -78,6 +78,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and del_flag = '0' and del_flag = '0'
</select> </select>
<select id="selectMallSchoolLevelBySchoolIds" parameterType="string" resultType="MallSchoolLevel">
select msl.school_level_id schoolLevelId,
msl.school_id schoolId,
msl.config_level_id configLevelId,
msl.config_level_name configLevelName,
msl.sort sort,
msl.remarks remarks,
msl.create_at createAt,
msl.update_at updateAt,
msl.del_flag delFlag
from mall_school_level msl
where msl.school_id in
<foreach item="schoolId" collection="list" open="(" separator="," close=")">
#{schoolId}
</foreach>
and del_flag = '0'
</select>
<insert id="insertMallSchoolLevel" parameterType="MallSchoolLevel" useGeneratedKeys="true" keyProperty="schoolLevelId"> <insert id="insertMallSchoolLevel" parameterType="MallSchoolLevel" useGeneratedKeys="true" keyProperty="schoolLevelId">
insert into mall_school_level insert into mall_school_level
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
......
...@@ -54,6 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -54,6 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="delFlag" column="del_flag" /> <result property="delFlag" column="del_flag" />
<result property="positionId" column="position_id" /> <result property="positionId" column="position_id" />
<result property="suggestId" column="suggest_id" /> <result property="suggestId" column="suggest_id" />
<result property="configLevelId" column="config_level_id" />
<result property="configLevelName" column="config_level_name" /> <result property="configLevelName" column="config_level_name" />
<result property="isNewAccept" column="is_new_accept" /> <result property="isNewAccept" column="is_new_accept" />
<result property="hasNewLink" column="has_new_link" /> <result property="hasNewLink" column="has_new_link" />
...@@ -64,6 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -64,6 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="sysUserName" column="sys_user_name" /> <result property="sysUserName" column="sys_user_name" />
<result property="sysUserPassword" column="sys_user_password" /> <result property="sysUserPassword" column="sys_user_password" />
<result property="sysUserStatus" column="sys_user_status" /> <result property="sysUserStatus" column="sys_user_status" />
</resultMap> </resultMap>
<sql id="selectMallSchoolVo"> <sql id="selectMallSchoolVo">
...@@ -78,13 +80,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -78,13 +80,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectMallSchoolList" parameterType="MallSchool" resultMap="MallSchoolResult"> <select id="selectMallSchoolList" parameterType="MallSchool" resultMap="MallSchoolResult">
select ms.school_id, ms.school_name, ms.school_icon, ms.background_image, ms.school_introduce, ms.school_introduce_short, ms.school_number, ms.config_type_id, ms.config_type_name, ms.school_institution, ms.competent_department, ms.province_id, ms.province_name, ms.city_id, ms.city_name, ms.area_id, ms.area_name, ms.address, ms.remarks, ms.tags, ms.school_web, ms.accept_phone, ms.school_mail, ms.school_birthday, ms.area_size, ms.male_ratio, ms.female_ratio, ms.postgraduate_ratio, ms.offer_ratio, ms.change_major_ratio,ms.masters_degree,ms.doctorate,ms.ace, ms.create_at, ms.update_at, ms.del_flag select ms.school_id, ms.school_name, ms.school_icon, ms.background_image, ms.school_introduce,
,ms.masters_degree_detail ,ms.doctorate_detail ,ms.ranking, ms.position_id, ms.school_introduce_short, ms.school_number, ms.config_type_id, ms.config_type_name,
ms.suggest_id, ms.accept_premise, msl.config_level_name, ms.doctorate_type, ms.school_institution, ms.competent_department, ms.province_id, ms.province_name,
ms.masters_degree_type,ms.is_new_accept, ms.has_new_link, ms.is_change, ms.no_plan ms.city_id, ms.city_name, ms.area_id, ms.area_name, ms.address, ms.remarks,
, ms.qr_code, ms.sys_user_id ms.tags, ms.school_web, ms.accept_phone, ms.school_mail, ms.school_birthday,
ms.area_size, ms.male_ratio, ms.female_ratio, ms.postgraduate_ratio, ms.offer_ratio,
ms.change_major_ratio,ms.masters_degree,ms.doctorate,ms.ace, ms.create_at, ms.update_at, ms.del_flag,
ms.masters_degree_detail ,ms.doctorate_detail ,ms.ranking, ms.position_id,
ms.suggest_id, ms.accept_premise, msl.config_level_id ,msl.config_level_name, ms.doctorate_type,
ms.masters_degree_type,ms.is_new_accept, ms.has_new_link, ms.is_change, ms.no_plan,ms.qr_code, ms.sys_user_id
from mall_school ms from mall_school ms
left join mall_school_level msl on msl.school_id = ms.school_id left join mall_config_level msl on msl.config_level_id = ms.config_type_id
<where> <where>
<if test="schoolName != null and schoolName != ''"> and ms.school_name like concat('%', #{schoolName}, '%')</if> <if test="schoolName != null and schoolName != ''"> and ms.school_name like concat('%', #{schoolName}, '%')</if>
<if test="schoolIcon != null and schoolIcon != ''"> and ms.school_icon = #{schoolIcon}</if> <if test="schoolIcon != null and schoolIcon != ''"> and ms.school_icon = #{schoolIcon}</if>
...@@ -120,6 +127,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -120,6 +127,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="suggestId != null "> and ms.suggest_id = #{suggestId}</if> <if test="suggestId != null "> and ms.suggest_id = #{suggestId}</if>
<if test="configLevelId != null "> and msl.config_level_id = #{configLevelId}</if> <if test="configLevelId != null "> and msl.config_level_id = #{configLevelId}</if>
and ms.del_flag = '0' and ms.del_flag = '0'
# and msl.del_flag = '0'
</where> </where>
order by ms.create_at asc, ms.school_number asc order by ms.create_at asc, ms.school_number asc
</select> </select>
...@@ -602,6 +610,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -602,6 +610,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where> </where>
GROUP BY ms.school_id GROUP BY ms.school_id
</select> </select>
<select id="selectAllSchoolNames" resultMap="MallSchoolResult">
<include refid="selectMallSchoolVo"/>
where del_flag = '0' and school_name in
<foreach collection="list" item="schoolNames" open="(" separator="," close=")">
#{schoolNames}
</foreach>
</select>
<!--自主选择模拟填报查询学校--> <!--自主选择模拟填报查询学校-->
<select id="selectRateSchoolList" resultType="com.ruoyi.mall.domain.Vo.SchoolMajorVO"> <select id="selectRateSchoolList" resultType="com.ruoyi.mall.domain.Vo.SchoolMajorVO">
select select
......
...@@ -60,7 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -60,7 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from tb_report_intelligence tri from tb_report_intelligence tri
LEFT JOIN mall_school ms on ms.school_id = tri.school_id and ms.del_flag = '0' LEFT JOIN mall_school ms on ms.school_id = tri.school_id and ms.del_flag = '0'
LEFT JOIN mall_link_major_school mlms on mlms.link_id = tri.major_id and mlms.school_id = tri.school_id and mlms.del_flag = '0' LEFT JOIN mall_link_major_school mlms on mlms.link_id = tri.major_id and mlms.school_id = tri.school_id and mlms.del_flag = '0'
LEFT JOIN mall_school_accept msa on msa.link_id = mlms.link_id and msa.is_reference = 1 LEFT JOIN mall_school_accept msa on msa.link_id = mlms.link_id AND msa.school_id = mlms.school_id and msa.is_reference = 1
left join mall_member_user mmu on mmu.id = tri.user_id left join mall_member_user mmu on mmu.id = tri.user_id
<where> <where>
<if test="itemId != null "> and tri.item_id = #{itemId}</if> <if test="itemId != null "> and tri.item_id = #{itemId}</if>
......
...@@ -364,7 +364,7 @@ ...@@ -364,7 +364,7 @@
<!--小程序图数据--> <!--小程序图数据-->
<el-dialog title="小程序图" :visible.sync="openMemberBanner" width="1000px" append-to-body> <el-dialog title="小程序图" :visible.sync="openMemberBanner" width="1000px" append-to-body>
<mall-member-banner :member-user-id="memberUserId" :key="memberUserId" /> <mall-member-banner :memberUserId="memberUserId" :key="memberUserId" />
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="diaCancel">确 定</el-button> <el-button type="primary" @click="diaCancel">确 定</el-button>
</div> </div>
...@@ -424,6 +424,7 @@ export default { ...@@ -424,6 +424,7 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
memberUserId: undefined,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
......
...@@ -118,6 +118,15 @@ ...@@ -118,6 +118,15 @@
v-hasPermi="['mall:mallSchool:export']" v-hasPermi="['mall:mallSchool:export']"
>导出</el-button> >导出</el-button>
</el-col> </el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="info"-->
<!-- plain-->
<!-- icon="el-icon-upload2"-->
<!-- size="mini"-->
<!-- @click="handleImport"-->
<!-- >导入</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
...@@ -482,6 +491,35 @@ ...@@ -482,6 +491,35 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 导入对话框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
</div>
<span>仅允许导入xls、xlsx格式文件。</span>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
<!-- 添加或修改学校对话框 --> <!-- 添加或修改学校对话框 -->
<el-dialog :title="title" :visible.sync="openAddSchoolUser" width="600px" append-to-body> <el-dialog :title="title" :visible.sync="openAddSchoolUser" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px"> <el-form ref="form" :model="form" :rules="rules" label-width="110px">
...@@ -601,6 +639,7 @@ import MallSchoolAccept from "@/views/mall/mallSchoolAccept"; ...@@ -601,6 +639,7 @@ import MallSchoolAccept from "@/views/mall/mallSchoolAccept";
import MallLinkMajorSchool from "@/views/mall/mallLinkMajorSchool"; import MallLinkMajorSchool from "@/views/mall/mallLinkMajorSchool";
import {selectTagList} from "@/api/mall/mallSchoolTag"; import {selectTagList} from "@/api/mall/mallSchoolTag";
import {selectLevelList} from "@/api/mall/mallConfigLevel"; import {selectLevelList} from "@/api/mall/mallConfigLevel";
import {getToken} from "@/utils/auth";
export default { export default {
name: "MallSchool", name: "MallSchool",
...@@ -673,6 +712,23 @@ export default { ...@@ -673,6 +712,23 @@ export default {
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
openAddSchoolUser: false, openAddSchoolUser: false,
// 导入参数
upload: {
// 是否显示弹出层
open: false,
// 弹出层标题
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 是否更新已经存在的数据
communityId: undefined,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "mall/mallSchool/importData"
},
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
...@@ -1137,7 +1193,28 @@ export default { ...@@ -1137,7 +1193,28 @@ export default {
selectSuggestList().then(response=>{ selectSuggestList().then(response=>{
this.suggestList = response.data this.suggestList = response.data
}) })
} },
/** 导入按钮操作 */
handleImport() {
this.upload.title = "学校导入";
this.upload.open = true;
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
} }
}; };
</script> </script>
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
<el-input v-model="form.schoolName" placeholder="请输入学校名" /> <el-input v-model="form.schoolName" placeholder="请输入学校名" />
</el-form-item> </el-form-item>
<el-form-item label="批次" prop="batchId"> <el-form-item label="批次" prop="batchId">
<el-select v-model="form.batchId" placeholder="请选择批次"> <el-select v-model="form.batchId" filterable placeholder="请选择批次">
<el-option <el-option
v-for="item in batchList" v-for="item in batchList"
:key="item.batchId" :key="item.batchId"
...@@ -149,7 +149,7 @@ ...@@ -149,7 +149,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="专业" prop="majorId"> <el-form-item label="专业" prop="majorId">
<el-select v-model="form.majorId" placeholder="请选择专业"> <el-select v-model="form.majorId" filterable placeholder="请选择专业">
<el-option <el-option
v-for="item in majorList" v-for="item in majorList"
:key="item.majorId" :key="item.majorId"
...@@ -182,7 +182,7 @@ ...@@ -182,7 +182,7 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="录取原则" prop="acceptRuleId"> <el-form-item label="录取原则" prop="acceptRuleId">
<el-select v-model="form.acceptRuleId" > <el-select v-model="form.acceptRuleId" filterable >
<el-option v-for="item in ruleList" <el-option v-for="item in ruleList"
:value="item.acceptRuleId" :value="item.acceptRuleId"
:key="item.acceptRuleId" :key="item.acceptRuleId"
......