From c8324bcbb8adb726c7aad1394045cf61383955b8 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Thu, 19 Oct 2023 10:16:24 +0800 Subject: [PATCH] chore:补充提交 --- screen-api/src/main/java/com/moral/api/mapper/AllocationMapper.java | 2 screen-api/src/main/java/com/moral/api/entity/AppUser.java | 18 ++ screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 9 + screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java | 11 screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java | 136 +++++++++++++++++ /dev/null | 4 screen-api/src/main/java/com/moral/api/controller/AppAllocationController.java | 63 +++++++ screen-api/src/main/java/com/moral/api/utils/WechatUtils.java | 34 ++++ screen-api/src/main/java/com/moral/api/mapper/AppUserMapper.java | 8 + screen-api/src/main/java/com/moral/api/controller/AppUserController.java | 98 ++++++++++++ screen-api/src/main/java/com/moral/api/service/impl/FileTableServiceImpl.java | 1 screen-api/src/main/java/com/moral/api/controller/AllocationController.java | 26 --- screen-api/src/main/resources/mapper/AllocationMapper.xml | 19 -- 13 files changed, 374 insertions(+), 55 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/AllocationController.java b/screen-api/src/main/java/com/moral/api/controller/AllocationController.java index b59de2e..62e2ce0 100644 --- a/screen-api/src/main/java/com/moral/api/controller/AllocationController.java +++ b/screen-api/src/main/java/com/moral/api/controller/AllocationController.java @@ -200,30 +200,4 @@ - @GetMapping("selectSmallRoutine") - @ApiOperation("���������������") - public ResultMessage selectSmallRoutine(@RequestParam @ApiParam(value = "state",name = "������") Integer state, - @RequestParam @ApiParam(value = "startTime",name = "������������") String startTime, - @RequestParam @ApiParam(value = "endTime",name = "������������") String endTime){ - List<AllocationFindVo> allocationFindVos = allocationService.selectSmallRoutine(state,startTime,endTime); - return ResultMessage.ok(ObjectUtils.isEmpty(allocationFindVos)? "0":allocationFindVos); - } - - - @PostMapping("changeRoutine") - @ApiOperation("���������������") - public ResultMessage changeSmallRoutine(@Valid @RequestBody AllocationChangeCond changeCond){ - allocationService.changeSmallRoutine(changeCond); - return ResultMessage.ok(); - } - - - @PostMapping("checkRoutine") - @ApiOperation("���������������") - public ResultMessage checkSmallRoutine(@Valid @RequestBody AllocationCheckCond checkCond){ - allocationService.checkSmallRoutine(checkCond); - return ResultMessage.ok(); - } - - } diff --git a/screen-api/src/main/java/com/moral/api/controller/AppAllocationController.java b/screen-api/src/main/java/com/moral/api/controller/AppAllocationController.java new file mode 100644 index 0000000..02165ba --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/controller/AppAllocationController.java @@ -0,0 +1,63 @@ +package com.moral.api.controller; + + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +import javax.validation.Valid; + +import com.moral.api.pojo.query.allocation.AllocationChangeCond; +import com.moral.api.pojo.query.allocation.AllocationCheckCond; +import com.moral.api.pojo.vo.allocation.AllocationFindVo; +import com.moral.api.service.AllocationService; +import com.moral.constant.ResultMessage; + +@Api(tags = {"���������������������"}) +@RestController +@RequestMapping("allocationApp") +public class AppAllocationController { + + + + @Autowired + private AllocationService allocationService; + + + + @GetMapping("select") + @ApiOperation("���������������") + public ResultMessage selectSmallRoutine(@RequestParam @ApiParam(value = "state",name = "������") Integer state, + @RequestParam @ApiParam(value = "startTime",name = "������������") String startTime, + @RequestParam @ApiParam(value = "endTime",name = "������������") String endTime){ + List<AllocationFindVo> allocationFindVos = allocationService.selectSmallRoutine(state,startTime,endTime); + return ResultMessage.ok(ObjectUtils.isEmpty(allocationFindVos)? "0":allocationFindVos); + } + + + @PostMapping("changeRoutine") + @ApiOperation("���������������") + public ResultMessage changeSmallRoutine(@Valid @RequestBody AllocationChangeCond changeCond){ + allocationService.changeSmallRoutine(changeCond); + return ResultMessage.ok(); + } + + + @PostMapping("checkRoutine") + @ApiOperation("���������������") + public ResultMessage checkSmallRoutine(@Valid @RequestBody AllocationCheckCond checkCond){ + allocationService.checkSmallRoutine(checkCond); + return ResultMessage.ok(); + } + +} diff --git a/screen-api/src/main/java/com/moral/api/controller/AppUserController.java b/screen-api/src/main/java/com/moral/api/controller/AppUserController.java new file mode 100644 index 0000000..74d50c9 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/controller/AppUserController.java @@ -0,0 +1,98 @@ +package com.moral.api.controller; + + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.digest.DigestUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.moral.api.entity.AppUser; +import com.moral.api.exception.BusinessException; +import com.moral.api.mapper.AppUserMapper; +import com.moral.api.service.UserService; +import com.moral.api.utils.WechatUtils; +import com.moral.constant.ResponseCodeEnum; +import com.moral.constant.ResultMessage; + +@Slf4j +@Api(tags = {"���������������������"}) +@RestController +@RequestMapping("/AppUser") +public class AppUserController { + + @Autowired + private UserService userService; + + @Autowired + private AppUserMapper appUserMapper; + + @ApiOperation(value = "������������", notes = "������������") + @PostMapping("login") + public ResultMessage login(@RequestBody Map<String, Object> parameters) { + if (!(parameters.containsKey("account") && parameters.containsKey("password"))) { + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), + ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + } + Map<String, Object> result = userService.loginSmallRoutine(parameters); + if (!result.containsKey("token")) { + return ResultMessage.fail((int) result.get("code"), (String) result.get("msg")); + } + return ResultMessage.ok(result); + } + + + @PostMapping("/wx/login") + @ApiOperation(value = "���������������", notes = "���������������") + public ResultMessage userLogin(@RequestParam(value = "code", required = false) String code, + @RequestParam(value = "rawData", required = false) String rawData, + @RequestParam(value = "signature", required = false) String signature) { + // ������������������������rawData + // ���������signature + JSONObject rawDataJson = JSON.parseObject(rawData); + // 1.������������������������code + // 2.������������������ ������������������������ appi + appsecret + code + JSONObject SessionKeyOpenId = WechatUtils.getSessionKeyOrOpenId(code); + // 3.������������������������ ��������������������� + String openid = SessionKeyOpenId.getString("openid"); + String sessionKey = SessionKeyOpenId.getString("session_key"); + + // 4.������������ ������������������������signature������������������������������signature2 = sha1(rawData + sessionKey) + String signature2 = DigestUtils.sha1Hex(rawData + sessionKey); + if (!signature.equals(signature2)) { +// return ResultMessage.ok().message("������������������"); +// return ResultMessage.ok("������������������"); + throw new BusinessException("������������������"); + } + // 5.���������������User������������������������������������������������������������������������������������������ + LambdaQueryWrapper<AppUser> lqw = Wrappers.lambdaQuery(); + lqw.eq(AppUser::getOpenId, openid); +// User user = userService.getOne(lqw); + AppUser user = appUserMapper.selectOne(lqw); + + if (user == null) { + // ������������������ + String nickName = rawDataJson.getString("nickName"); + String avatarUrl = rawDataJson.getString("avatarUrl"); + user = new AppUser(); + user.setOpenId(Integer.parseInt(openid)); + user.setAvatarUrl(avatarUrl); + user.setNickName(nickName); + appUserMapper.insert(user); + } + return ResultMessage.ok(user); + } + + +} diff --git a/screen-api/src/main/java/com/moral/api/controller/UserSmallRoutineController.java b/screen-api/src/main/java/com/moral/api/controller/UserSmallRoutineController.java deleted file mode 100644 index f32ef5a..0000000 --- a/screen-api/src/main/java/com/moral/api/controller/UserSmallRoutineController.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.moral.api.controller; - - -import cn.hutool.core.util.StrUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; - -import com.moral.api.service.UserService; -import com.moral.constant.ResponseCodeEnum; -import com.moral.constant.ResultMessage; - -@Slf4j -@Api(tags = {"���������������������"}) -@RestController -@RequestMapping("/UserSmallRoutine") -public class UserSmallRoutineController { - - @Autowired - private UserService userService; - - @ApiOperation(value = "������������", notes = "������������") - @PostMapping("login") - public ResultMessage login(@RequestBody Map<String, Object> parameters) { - if (!(parameters.containsKey("account") && parameters.containsKey("password"))) { - return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), - ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); - } - Map<String, Object> result = userService.loginSmallRoutine(parameters); - if (!result.containsKey("token")) { - return ResultMessage.fail((int) result.get("code"), (String) result.get("msg")); - } - return ResultMessage.ok(result); - } - - -} diff --git a/screen-api/src/main/java/com/moral/api/entity/AppUser.java b/screen-api/src/main/java/com/moral/api/entity/AppUser.java new file mode 100644 index 0000000..b29a3b6 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/entity/AppUser.java @@ -0,0 +1,18 @@ +package com.moral.api.entity; + + +import lombok.Data; + +import com.baomidou.mybatisplus.extension.activerecord.Model; + +@Data +public class AppUser extends Model<AppUser> { + + private Integer openId; + + private String account; + + private String nickName; + + private String avatarUrl; +} diff --git a/screen-api/src/main/java/com/moral/api/mapper/AllocationMapper.java b/screen-api/src/main/java/com/moral/api/mapper/AllocationMapper.java index 6ec486c..93544d2 100644 --- a/screen-api/src/main/java/com/moral/api/mapper/AllocationMapper.java +++ b/screen-api/src/main/java/com/moral/api/mapper/AllocationMapper.java @@ -33,6 +33,6 @@ List<AllocationListExt> extList(@Param("allocation") AllocationListCond allocationListCond); - List<AllocationFindVo> selectSmallRoutine( Integer state); + } diff --git a/screen-api/src/main/java/com/moral/api/mapper/AppUserMapper.java b/screen-api/src/main/java/com/moral/api/mapper/AppUserMapper.java new file mode 100644 index 0000000..29a68fb --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/mapper/AppUserMapper.java @@ -0,0 +1,8 @@ +package com.moral.api.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.moral.api.entity.AppUser; + + +public interface AppUserMapper extends BaseMapper<AppUser> { +} diff --git a/screen-api/src/main/java/com/moral/api/mapper/UserSmallRoutineMapper.java b/screen-api/src/main/java/com/moral/api/mapper/UserSmallRoutineMapper.java deleted file mode 100644 index 54e6fb4..0000000 --- a/screen-api/src/main/java/com/moral/api/mapper/UserSmallRoutineMapper.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.moral.api.mapper; - -public interface UserSmallRoutineMapper { -} diff --git a/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java index 1f66f94..fbfcd40 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java @@ -640,7 +640,7 @@ public List<AllocationFindVo> selectSmallRoutine(Integer state,String startTime,String endTime) { ArrayList<AllocationFindVo> allocationFindVos = new ArrayList<>(); LambdaQueryWrapper<Allocation> wrapper = new LambdaQueryWrapper<>(); - + wrapper.orderByDesc(Allocation::getEscalationTime); //������������������ List<Integer> list = unitResult(); if (!ObjectUtils.isEmpty(list)){ @@ -679,9 +679,12 @@ for (Allocation allocation : allocations) { AllocationFindVo allocationFindVo = new AllocationFindVo(); BeanUtils.copyProperties(allocation,allocationFindVo); + if (integer==0 || integer==1){ + + } allocationFindVos.add(allocationFindVo); } -// List<AllocationFindVo> allocationFindVos = allocationMapper.selectSmallRoutine(state); + List<AllocationFindVo> allocationFindVo = allocationMapper.selectSmallRoutine(state,startTime,endTime); return allocationFindVos; } @@ -694,8 +697,8 @@ @Transactional public void changeSmallRoutine(AllocationChangeCond changeCond) { Integer integer = unitAreaCode(); - if (integer==1){ - throw new BusinessException("���������������������������������������"); + if (integer==2){ + throw new BusinessException("���������������������������������������"); } AllocationExt allocationExt = oneAllocation(changeCond.getAllocationId()); if(!AllocationApproveEnum.UNDER_RECTIFICATION.value.equals(allocationExt.getState())) { diff --git a/screen-api/src/main/java/com/moral/api/service/impl/FileTableServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/FileTableServiceImpl.java index 6b8804e..4d17a57 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/FileTableServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/FileTableServiceImpl.java @@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java index 46171c8..74d935a 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java @@ -80,6 +80,9 @@ @Autowired private OperationLogUtils operationLogUtils; + @Autowired + private ResponsibilityUnitMapper responsibilityUnitMapper; + @Value("${AES.KEY}") private String AESKey; @@ -120,6 +123,7 @@ result.put("msg", ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getMsg()); return result; } + ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(userBo.getUnitId()); //������������������ Map<String, Object> userInfo = new LinkedHashMap<>(); userInfo.put("userId", userBo.getId()); @@ -128,6 +132,7 @@ userInfo.put("email", userBo.getEmail()); userInfo.put("mobile", userBo.getMobile()); userInfo.put("unitId",userBo.getUnitId()); + userInfo.put("unName",responsibilityUnit.getAreaName()); userInfo.put("wechat", userBo.getWechat()); userInfo.put("expireTime", DateUtils.dateToDateString(userBo.getExpireTime())); userInfo.put("isAdmin", userBo.getIsAdmin()); @@ -184,9 +189,10 @@ result.put("msg", ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getMsg()); return result; } + //������������������ Map<String, Object> userInfo = new LinkedHashMap<>(); - + ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(userBo.getUnitId()); //������������ userInfo.put("userId", userBo.getId()); userInfo.put("account", userBo.getAccount()); @@ -194,6 +200,7 @@ userInfo.put("email", userBo.getEmail()); userInfo.put("mobile", userBo.getMobile()); userInfo.put("unitId",userBo.getUnitId()); + userInfo.put("unName",responsibilityUnit.getAreaName()); userInfo.put("wechat", userBo.getWechat()); userInfo.put("expireTime", DateUtils.dateToDateString(userBo.getExpireTime())); userInfo.put("isAdmin", userBo.getIsAdmin()); diff --git a/screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java b/screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java new file mode 100644 index 0000000..39afb30 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java @@ -0,0 +1,136 @@ +package com.moral.api.utils; + +import org.apache.http.NameValuePair; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.utils.URIBuilder; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; +import java.net.URI; +import java.util.ArrayList; + +import java.util.List; +import java.util.Map; + +public class HttpClientUtil { + + + + public static String doGet(String url, Map<String, String> param) { + + // ������Httpclient������ + CloseableHttpClient httpclient = HttpClients.createDefault(); + + String resultString = ""; + CloseableHttpResponse response = null; + try { + // ������uri + URIBuilder builder = new URIBuilder(url); + if (param != null) { + for (String key : param.keySet()) { + builder.addParameter(key, param.get(key)); + } + } + URI uri = builder.build(); + + // ������http GET������ + HttpGet httpGet = new HttpGet(uri); + + // ������������ + response = httpclient.execute(httpGet); + // ���������������������������200 + if (response.getStatusLine().getStatusCode() == 200) { + resultString = EntityUtils.toString(response.getEntity(), "UTF-8"); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (response != null) { + response.close(); + } + httpclient.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return resultString; + } + + public static String doGet(String url) { + return doGet(url, null); + } + + public static String doPost(String url, Map<String, String> param) { + // ������Httpclient������ + CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = null; + String resultString = ""; + try { + // ������Http Post������ + HttpPost httpPost = new HttpPost(url); + // ������������������ + if (param != null) { + List<NameValuePair> paramList = new ArrayList<>(); + for (String key : param.keySet()) { + paramList.add(new BasicNameValuePair(key, param.get(key))); + } + // ������������ + UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList); + httpPost.setEntity(entity); + } + // ������http������ + response = httpClient.execute(httpPost); + resultString = EntityUtils.toString(response.getEntity(), "utf-8"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + return resultString; + } + + public static String doPost(String url) { + return doPost(url, null); + } + + public static String doPostJson(String url, String json) { + // ������Httpclient������ + CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = null; + String resultString = ""; + try { + // ������Http Post������ + HttpPost httpPost = new HttpPost(url); + // ������������������ + StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON); + httpPost.setEntity(entity); + // ������http������ + response = httpClient.execute(httpPost); + resultString = EntityUtils.toString(response.getEntity(), "utf-8"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + return resultString; + } +} diff --git a/screen-api/src/main/java/com/moral/api/utils/WechatUtils.java b/screen-api/src/main/java/com/moral/api/utils/WechatUtils.java new file mode 100644 index 0000000..59a933d --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/utils/WechatUtils.java @@ -0,0 +1,34 @@ +package com.moral.api.utils; + + + + +import java.util.HashMap; +import java.util.Map; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; + +public class WechatUtils { + + public static final String APPID = "yyyy"; + public static final String SECRET = "yyyy"; + + + public static JSONObject getSessionKeyOrOpenId(String code) { + String requestUrl = "https://api.weixin.qq.com/sns/jscode2session"; + Map<String, String> requestUrlParam = new HashMap<>(); + // https://mp.weixin.qq.com/wxopen/devprofile?action=get_profile&token=164113089&lang=zh_CN + //���������appId + requestUrlParam.put("appid", APPID); + //���������secret + requestUrlParam.put("secret",SECRET); + //���������������������code + requestUrlParam.put("js_code", code); + //������������ + requestUrlParam.put("grant_type", "authorization_code"); + //������post������������������������������������openid������������������ + JSONObject jsonObject = JSON.parseObject(HttpClientUtil.doPost(requestUrl, requestUrlParam)); + return jsonObject; + } +} diff --git a/screen-api/src/main/resources/mapper/AllocationMapper.xml b/screen-api/src/main/resources/mapper/AllocationMapper.xml index bf5816e..4b9159b 100644 --- a/screen-api/src/main/resources/mapper/AllocationMapper.xml +++ b/screen-api/src/main/resources/mapper/AllocationMapper.xml @@ -60,25 +60,6 @@ </select> - <select id="selectSmallRoutine" resultType="com.moral.api.pojo.vo.allocation.AllocationFindVo"> - SELECT - <include refid="Allocation_Column_List"/> - FROM allocation as a - <where> - and is_del = 0 and is_invalid =0 - <if test="allocation.state != null and allocation.id != 0"> - and a.state = #{state} - </if> - <if test="allocation.startTime != null and allocation.startTime != '' "> - and date(escalation_time) <![CDATA[>=]]> #{startTime} - </if> - <if test="allocation.endTime != null and allocation.endTime !='' "> - and date(escalation_time) <![CDATA[<=]]> #{endTime} - </if> - </where> - order by escalation_time desc,allocation_id desc - </select> - <select id="extPage" resultType="com.moral.api.pojo.ext.allocation.AllocationPageExt"> SELECT <include refid="Allocation_Column_List"/>,t1.id as applyState -- Gitblit v1.8.0