17 changed files with 546 additions and 14 deletions
@ -0,0 +1,65 @@
|
||||
package com.biutag.outeradmin.controller; |
||||
|
||||
import com.biutag.core.AjaxResult; |
||||
import com.biutag.outeradmin.model.dto.LoginDto; |
||||
import com.biutag.outeradmin.model.vo.HolidayVo; |
||||
import com.biutag.outeradmin.service.HolidayService; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import javax.annotation.Resource; |
||||
import java.time.LocalDateTime; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
@RequiredArgsConstructor |
||||
@RestController |
||||
@Api(tags = "节假日接口") |
||||
@RequestMapping("/outer/holiday") |
||||
public class HolidayController { |
||||
|
||||
@Resource |
||||
private HolidayService holidayService; |
||||
|
||||
@RequestMapping("/getholiday") |
||||
@ApiOperation("查询节假日") |
||||
public AjaxResult getlist(@RequestParam("search") String search) throws Exception { |
||||
|
||||
//判断年份
|
||||
LocalDateTime currentDate = LocalDateTime.now(); |
||||
int currentyear = currentDate.getYear(); |
||||
if (Integer.parseInt(search) != currentyear){ |
||||
return AjaxResult.success(); |
||||
} |
||||
Map<String,List<HolidayVo>> map = holidayService.showholiday(); |
||||
return AjaxResult.success(map); |
||||
|
||||
} |
||||
|
||||
|
||||
@PostMapping("/saveholiday") |
||||
@ApiOperation("节假日") |
||||
public AjaxResult setlist(@RequestBody String search) throws Exception { |
||||
LocalDateTime currentDate = LocalDateTime.now(); |
||||
int currentyear = currentDate.getYear(); |
||||
if (Integer.parseInt(search) != currentyear){ |
||||
return AjaxResult.success(); |
||||
} |
||||
holidayService.saveholiday(search); |
||||
return AjaxResult.success(); |
||||
|
||||
} |
||||
|
||||
|
||||
@RequestMapping("/showholiday") |
||||
@ApiOperation("进入页面显示节假日") |
||||
public AjaxResult getlist() throws Exception { |
||||
Map<String,List<HolidayVo>> map = holidayService.showholiday(); |
||||
return AjaxResult.success(map); |
||||
} |
||||
|
||||
|
||||
|
||||
} |
||||
@ -0,0 +1,91 @@
|
||||
package com.biutag.outeradmin.controller; |
||||
|
||||
import com.alibaba.fastjson2.JSON; |
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import com.biutag.outeradmin.entity.*; |
||||
import com.biutag.outeradmin.mapper.UserMapper; |
||||
import com.biutag.outeradmin.service.UserService; |
||||
import com.biutag.outeradmin.util.DesensitizedUtil; |
||||
import com.biutag.util.StringUtils; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.RequestBody; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import java.text.ParseException; |
||||
import java.text.SimpleDateFormat; |
||||
import java.time.LocalDateTime; |
||||
import java.time.format.DateTimeFormatter; |
||||
import java.util.List; |
||||
|
||||
@RequestMapping("/user") |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
public class UserController { |
||||
private final UserMapper userMapper; |
||||
private final UserService userService; |
||||
|
||||
@RequestMapping("/list-submit") |
||||
public UserPageInfo siftList(@RequestBody String form) { |
||||
//todo 这里根据表单数据查询数据库,记得删掉
|
||||
System.out.println(form); |
||||
UserFormPage userFormPage = JSON.parseObject(form, UserFormPage.class); |
||||
System.out.println(userFormPage); |
||||
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); |
||||
if (userFormPage != null && userFormPage.getFormData() != null && userFormPage.getPageData() != null) { |
||||
UserFormData formData = userFormPage.getFormData(); |
||||
|
||||
queryWrapper.lambda().like(StringUtils.isNotEmpty(formData.getRealName()), User::getRealName, formData.getRealName()) |
||||
.like(StringUtils.isNotEmpty(formData.getPhone()), User::getPhone, formData.getPhone()) |
||||
.like(StringUtils.isNotEmpty(formData.getIdCard()), User::getIdCard, formData.getIdCard()); |
||||
if (CollectionUtils.isNotEmpty(formData.getDate()) && formData.getDate().size() == 2) { |
||||
queryWrapper.lambda().between(User::getCreateTime, formData.getDate().get(0), formData.getDate().get(1)); |
||||
} |
||||
} |
||||
PageSet pageSet = userFormPage.getPageData(); |
||||
|
||||
Page<User> page = new Page<>(pageSet.getCurrentPage(), pageSet.getPageSize()); |
||||
List<User> userPage = userMapper.selectPage(page, queryWrapper).getRecords(); |
||||
for (User user : userPage) { |
||||
user.setIdCard(DesensitizedUtil.encryptIDCard(user.getIdCard())); |
||||
user.setPhone(DesensitizedUtil.encryptPhone(user.getPhone())); |
||||
} |
||||
pageSet.setTotalSize((int) page.getTotal()); |
||||
UserPageInfo result = new UserPageInfo(); |
||||
result.setUsers(userPage); |
||||
result.setPageSet(pageSet); |
||||
|
||||
return result; |
||||
} |
||||
|
||||
@RequestMapping("/add-user") |
||||
public String addUser(@RequestBody String form) { |
||||
UserFormData userForm = JSON.parseObject(form, UserFormData.class); |
||||
System.out.println("新用户数据" + userForm); |
||||
User user = new User(); |
||||
user.setRealName(userForm.getRealName()); |
||||
user.setPhone(userForm.getPhone()); |
||||
user.setIdCard(userForm.getIdCard()); |
||||
LocalDateTime createTime = LocalDateTime.now(); |
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
try { |
||||
user.setCreateTime(simpleDateFormat.parse(createTime.format(formatter))); |
||||
userMapper.insert(user); |
||||
return "success"; |
||||
} catch (ParseException e) { |
||||
throw new RuntimeException(e); |
||||
} |
||||
} |
||||
|
||||
@RequestMapping("/delete-user") |
||||
public String deleteUser(@RequestBody String id){ |
||||
User user = JSON.parseObject(id, User.class); |
||||
System.out.println("User数据为" + user); |
||||
userMapper.deleteById(user.getId()); |
||||
return "success"; |
||||
} |
||||
} |
||||
|
||||
@ -0,0 +1,29 @@
|
||||
package com.biutag.outeradmin.domain; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 管理员 |
||||
*/ |
||||
@Data |
||||
@TableName("holiday") |
||||
@NoArgsConstructor |
||||
@AllArgsConstructor |
||||
public class Holiday implements Serializable { |
||||
@TableId(type = IdType.AUTO) |
||||
private Integer id; |
||||
|
||||
private String date; |
||||
|
||||
private String holiday_flag; |
||||
|
||||
private String detail; |
||||
|
||||
} |
||||
@ -0,0 +1,22 @@
|
||||
package com.biutag.outeradmin.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import lombok.Data; |
||||
|
||||
import java.util.Date; |
||||
|
||||
@Data |
||||
@TableName("\"user\"") |
||||
public class User { |
||||
@TableId |
||||
private Integer id; |
||||
private String openid; |
||||
private String nickName; |
||||
private Date createTime; |
||||
private String idCard; |
||||
private String realName; |
||||
private String phone; |
||||
private Date updateTime; |
||||
private Date faceAuthTime; |
||||
} |
||||
@ -0,0 +1,13 @@
|
||||
package com.biutag.outeradmin.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.util.List; |
||||
|
||||
@Data |
||||
public class UserFormData { |
||||
private List<String> date; |
||||
private String realName; |
||||
private String phone; |
||||
private String idCard; |
||||
} |
||||
@ -0,0 +1,9 @@
|
||||
package com.biutag.outeradmin.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
@Data |
||||
public class UserFormPage { |
||||
private UserFormData formData; |
||||
private PageSet pageData; |
||||
} |
||||
@ -0,0 +1,11 @@
|
||||
package com.biutag.outeradmin.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.util.List; |
||||
|
||||
@Data |
||||
public class UserPageInfo { |
||||
private List<User> users; |
||||
private PageSet pageSet; |
||||
} |
||||
@ -0,0 +1,11 @@
|
||||
package com.biutag.outeradmin.mapper; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.biutag.entity.user.User; |
||||
import com.biutag.outeradmin.domain.Holiday; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
@Mapper |
||||
public interface HolidayMapper extends BaseMapper<Holiday> { |
||||
} |
||||
@ -0,0 +1,9 @@
|
||||
package com.biutag.outeradmin.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.biutag.outeradmin.entity.User; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
@Mapper |
||||
public interface UserMapper extends BaseMapper<User> { |
||||
} |
||||
@ -0,0 +1,14 @@
|
||||
package com.biutag.outeradmin.model.vo; |
||||
|
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
|
||||
@Data |
||||
@NoArgsConstructor |
||||
@AllArgsConstructor |
||||
public class HolidayVo { |
||||
private String workingday;//日期
|
||||
|
||||
private String content;//描述
|
||||
} |
||||
@ -0,0 +1,15 @@
|
||||
package com.biutag.outeradmin.service; |
||||
|
||||
import com.biutag.outeradmin.domain.Holiday; |
||||
import com.biutag.outeradmin.model.vo.HolidayVo; |
||||
|
||||
import java.io.IOException; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
public interface HolidayService { |
||||
|
||||
List<Holiday> getholiday(String search) throws IOException; |
||||
void saveholiday(String search) throws IOException; |
||||
Map<String,List<HolidayVo>> showholiday(); |
||||
} |
||||
@ -0,0 +1,10 @@
|
||||
package com.biutag.outeradmin.service; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.biutag.outeradmin.entity.User; |
||||
import com.biutag.outeradmin.mapper.UserMapper; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
@Service |
||||
public class UserService extends ServiceImpl<UserMapper, User> { |
||||
} |
||||
@ -0,0 +1,40 @@
|
||||
package com.biutag.outeradmin.service.impl; |
||||
|
||||
import com.biutag.outeradmin.domain.Holiday; |
||||
import com.biutag.outeradmin.mapper.HolidayMapper; |
||||
|
||||
import com.biutag.outeradmin.model.vo.HolidayVo; |
||||
import com.biutag.outeradmin.service.HolidayService; |
||||
import com.biutag.outeradmin.utils.HolidayUtil; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.io.IOException; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
@Service |
||||
public class HolidayServiceImpl implements HolidayService { |
||||
|
||||
@Autowired |
||||
private HolidayMapper holidayMapper; |
||||
|
||||
@Override |
||||
public List<Holiday> getholiday(String search) throws IOException { |
||||
return HolidayUtil.getAllHolidayByYear(search); |
||||
} |
||||
public Map<String,List<HolidayVo>> showholiday() { |
||||
List<Holiday> list = holidayMapper.selectList(null); |
||||
return HolidayUtil.HolidayHandle(list); |
||||
} |
||||
@Override |
||||
public void saveholiday(String search) throws IOException { |
||||
holidayMapper.delete(null); |
||||
List<Holiday> list = HolidayUtil.getAllHolidayByYear(search); |
||||
for(Holiday holiday :list){ |
||||
holidayMapper.insert(holiday); |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
||||
@ -0,0 +1,165 @@
|
||||
package com.biutag.outeradmin.utils; |
||||
|
||||
|
||||
import com.biutag.outeradmin.domain.Holiday; |
||||
import com.biutag.outeradmin.model.vo.HolidayVo; |
||||
import com.fasterxml.jackson.databind.ObjectMapper; |
||||
|
||||
import java.io.BufferedReader; |
||||
import java.io.IOException; |
||||
import java.io.InputStreamReader; |
||||
import java.net.HttpURLConnection; |
||||
import java.net.URL; |
||||
import java.nio.charset.StandardCharsets; |
||||
import java.text.SimpleDateFormat; |
||||
import java.time.DayOfWeek; |
||||
import java.time.LocalDate; |
||||
import java.time.LocalDateTime; |
||||
import java.time.format.DateTimeFormatter; |
||||
import java.util.*; |
||||
|
||||
public class HolidayUtil { |
||||
|
||||
/** |
||||
* 发送get请求 |
||||
*/ |
||||
private static String get(String url){ |
||||
StringBuilder inputLine = new StringBuilder(); |
||||
String read; |
||||
try { |
||||
HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection(); |
||||
urlConnection.setReadTimeout(30 * 1000); |
||||
urlConnection.setConnectTimeout(30 * 1000); |
||||
urlConnection.setRequestProperty("Charset", "UTF-8"); |
||||
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36)"); |
||||
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), StandardCharsets.UTF_8)); |
||||
while ((read = in.readLine()) != null) { |
||||
inputLine.append(read); |
||||
} |
||||
in.close(); |
||||
} catch (IOException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
|
||||
return inputLine.toString(); |
||||
} |
||||
|
||||
|
||||
public static List<Holiday> getAllHolidayByYear(String year) throws IOException { |
||||
List<Holiday> allDateDayList = new ArrayList<>(); |
||||
|
||||
// SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
// ArrayList<HolidayVo> holidayVoList = new ArrayList<>();
|
||||
// HashMap<String, HolidayVo> hashMap = new HashMap<>();
|
||||
|
||||
//查询全年日历包含周末
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
||||
List<String> allDateList = new ArrayList<>(); |
||||
LocalDate startDate = LocalDate.of(Integer.parseInt(year.trim()), 1, 1); |
||||
LocalDate endDate = startDate; |
||||
|
||||
while (Integer.parseInt(year) == endDate.getYear()) { |
||||
Holiday holiday = new Holiday(); |
||||
DayOfWeek week = endDate.getDayOfWeek(); |
||||
if(week == DayOfWeek.SATURDAY ) { |
||||
holiday.setHoliday_flag("Y"); |
||||
holiday.setDate(endDate.format(formatter)); |
||||
holiday.setDetail("周六"); |
||||
allDateDayList.add(holiday); |
||||
}else if(week == DayOfWeek.SUNDAY){ |
||||
holiday.setHoliday_flag("Y"); |
||||
holiday.setDate(endDate.format(formatter)); |
||||
holiday.setDetail("周日"); |
||||
allDateDayList.add(holiday); |
||||
}else{ |
||||
holiday.setHoliday_flag("N"); |
||||
holiday.setDate(endDate.format(formatter)); |
||||
allDateDayList.add(holiday); |
||||
} |
||||
|
||||
endDate = endDate.plusDays(1L); |
||||
} |
||||
|
||||
|
||||
//查询全年节假日、调休
|
||||
String holidayJson = HolidayUtil.get("https://timor.tech/api/holiday/year/"+year + "/"); |
||||
ObjectMapper mapper = new ObjectMapper(); |
||||
Map holidayMap = mapper.readValue(holidayJson,Map.class); |
||||
LinkedHashMap holidayList = (LinkedHashMap)holidayMap.get("holiday"); |
||||
// if(holidayList == null){
|
||||
//
|
||||
// }
|
||||
holidayList.forEach((key,value) -> { |
||||
Holiday holiday = new Holiday(); |
||||
Map value1 = (Map) value; |
||||
String dateTime = value1.get("date").toString(); |
||||
holiday.setDate(dateTime); |
||||
if(value1.get("name").toString().contains("补班")){ |
||||
holiday.setDetail("正常上班"); |
||||
holiday.setHoliday_flag("N"); |
||||
}else { |
||||
holiday.setDetail(value1.get("name").toString()); |
||||
holiday.setHoliday_flag("Y"); |
||||
} |
||||
|
||||
for(int i = 0;i<allDateDayList.size();i++){ |
||||
if (allDateDayList.get(i).getDate().equals(holiday.getDate())){ |
||||
String detail = holiday.getDetail(); |
||||
StringBuilder sb = new StringBuilder(); |
||||
for (int j = 0; j < detail.length(); j++) { |
||||
char c = detail.charAt(j); |
||||
if (sb.indexOf(String.valueOf(c)) == -1) { |
||||
sb.append(c); |
||||
} |
||||
} |
||||
String result = sb.toString(); |
||||
allDateDayList.remove(allDateDayList.get(i)); |
||||
holiday.setDetail(result); |
||||
allDateDayList.add(holiday); |
||||
} |
||||
} |
||||
|
||||
|
||||
}); |
||||
Collections.sort(allDateDayList, (o1, o2) -> { |
||||
Integer i = o1.getDate().compareTo(o2.getDate()); |
||||
return i; |
||||
}); |
||||
for(Holiday holiday : allDateDayList){ |
||||
System.out.println(holiday); |
||||
} |
||||
|
||||
return allDateDayList; |
||||
} |
||||
|
||||
public static Map<String,List<HolidayVo>> HolidayHandle(List<Holiday> list){ |
||||
Map<String,List<HolidayVo>> map = new HashMap<String,List<HolidayVo>>(); |
||||
for(Holiday holiday : list){ |
||||
HolidayVo holidayVo = new HolidayVo(); |
||||
|
||||
if (holiday.getDetail()==null){ |
||||
continue; |
||||
}else if(holiday.getDetail().contains("初")||holiday.getDetail().contains("元旦")||holiday.getDetail().contains("节")||holiday.getDetail().contains("周")){ |
||||
holidayVo.setContent(holiday.getDetail()); |
||||
}else if(holiday.getDetail().contains("正常上班")){ |
||||
holidayVo.setContent(holiday.getDetail()); |
||||
} |
||||
String mouth = holiday.getDate().substring(5,7); |
||||
holidayVo.setWorkingday(holiday.getDate().substring(8,10)); |
||||
|
||||
if (map.containsKey("mouth"+mouth)){ |
||||
List<HolidayVo> listofmap = map.get("mouth"+mouth); |
||||
listofmap.add(holidayVo); |
||||
}else { |
||||
List<HolidayVo> listHolidayVo = new ArrayList<>(); |
||||
listHolidayVo.add(holidayVo); |
||||
map.put("mouth"+mouth,listHolidayVo); |
||||
} |
||||
System.out.println(holidayVo); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
|
||||
|
||||
} |
||||
Loading…
Reference in new issue