package com.philisense.www.controller.web;

import com.philisense.www.common.config.CommonConst;
import com.philisense.www.service.SystemNoticeService;
import com.philisense.www.annotation.log.OperateLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.philisense.www.controller.BaseUtilController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;

@RestController
@RequestMapping(CommonConst.WEB_REST_SERVICE_PREFICX+"systemnotice")
@Api(tags = "SystemNoticeControllerForWeb|一个用来操作-{系统公告}-业务模块的控制器")
public class SystemNoticeControllerForWeb extends BaseUtilController{

        @Autowired
        private SystemNoticeService systemNoticeService;


        @GetMapping( "/delete")
        @ApiOperation(value="根据-{系统公告}-主键删除记录", notes="成功返回:{\"success\":true,\"message\",\"数据删除成功\"},失败返回:{\"success\":false,\"message\",\"数据删除失败\"}")
        @ApiImplicitParam(paramType="query", name = "recordid", value = "记录主键", required = true,  dataTypeClass = String.class)
        @OperateLog(name = "根据-{系统公告}-主键删除记录",value = "delete",type = "PC")
        public Map<String, Object> deleteByPrimaryKeyForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestParam String recordid)
        {
                Map<String, Object> result = new HashMap<String, Object>();
                try {
                int flag = systemNoticeService.deleteByPrimaryKey(recordid);
                if(1<=flag) {
                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, DELETE_SUCCESS_MSG);
                }else{
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, DELETE_FAIL_MSG);
                }

                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, DELETE_FAIL_MSG+e.getMessage());
                }
                return result;
        }

        @GetMapping( "/get")
        @ApiOperation(value="根据-{系统公告}-主键查询记录", notes="成功返回:{\"success\":true,\"message\",\"数据查询成功\",\"datarecord\":\"{}\"},失败返回:{\"success\":false,\"message\",\"数据查询失败\"}")
        @ApiImplicitParam(paramType="query", name = "recordid", value = "记录主键", required = true,  dataTypeClass = String.class)
        @OperateLog(name = "根据-{系统公告}-主键查询记录",value = "query",type = "PC")
        public Map<String, Object> selectByPrimaryKeyForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestParam String recordid)
        {
                Map<String, Object> result = new HashMap<String, Object>();
                try {

                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, QUERY_SUCCESS_MSG);
                result.put(DATARECORD, systemNoticeService.selectByPrimaryKey(recordid));
                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, QUERY_FAIL_MSG+e.getMessage());
                }
                return result;
        }

        @PostMapping( "/insert")
        @ApiOperation(value="根据-{系统公告}-对象插入记录", notes="成功返回:{\"success\":true,\"message\",\"数据插入成功\"},失败返回:{\"success\":false,\"message\",\"数据插入失败\"}")
        @ApiImplicitParams({
        @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象插入记录",value = "insert",type = "PC")
        public Map<String, Object>  insertForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody Map<String, Object> map)
        {
                Map<String, Object> result = new HashMap<String, Object>();
                try {
                map.put("id", UUID.randomUUID().toString().replaceAll("-", ""));
                map.put("an_addtime", new Date());
                systemNoticeService.insert(map);
                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, INSERT_SUCCESS_MSG);
                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, INSERT_FAIL_MSG+e.getMessage());
                }
                return result;
        }

        @PostMapping( "/update")
        @ApiOperation(value="根据-{系统公告}-对象更新记录", notes="成功返回:{\"success\":true,\"message\",\"数据更新成功\"},失败返回:{\"success\":false,\"message\",\"数据更新失败\"}")
        @ApiImplicitParams({
        @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象更新记录",value = "update",type = "PC")
        public Map<String, Object>  updateForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody Map<String, Object> map)
        {
                Map<String, Object> result = new HashMap<String, Object>();
                try {

                String ID = map.get("id")+"";
                if(ID.equals("")){
                        result.put(DATASUCCESS, ERRORFLAG);
                        result.put(DATAMESSAGE, UPDATE_FAIL_MSG+"记录ID不能为空");
                        return result;
                }
                Map<String, Object> temmap = systemNoticeService.selectByPrimaryKey(ID);

                if(null== temmap || temmap.size()==0){
                         result.put(DATASUCCESS, ERRORFLAG);
                         result.put(DATAMESSAGE, UPDATE_FAIL_MSG+ID+"记录不存在");
                         return result;
                }


                temmap.put("title",map.get("title"));
                temmap.put("content",map.get("content"));
                temmap.put("url",map.get("url"));
                temmap.put("an_addtime",map.get("an_addtime"));


                int flag = systemNoticeService.update(temmap);
                if(1<=flag){
                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, UPDATE_SUCCESS_MSG);
                }else{
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, UPDATE_FAIL_MSG);
                }

                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, UPDATE_FAIL_MSG+e.getMessage());
                }
                return result;
        }

        @PostMapping( "/deleteByMap")
        @ApiOperation(value="根据-{系统公告}-对象Map删除记录", notes="成功返回:{\"success\":true,\"message\",\"数据删除成功\"},失败返回:{\"success\":false,\"message\",\"数据删除失败\"}")
        @ApiImplicitParams({
        @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map删除记录",value = "delete",type = "PC")
        public Map<String, Object>  deleteByMapForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody Map<String, Object> map)
        {
                Map<String, Object> result = new HashMap<String, Object>();
                try {
                int flag = systemNoticeService.deleteByMap(map);
                if(1<=flag) {
                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, DELETE_SUCCESS_MSG);
                }else{
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, DELETE_FAIL_MSG);
                }

                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, DELETE_FAIL_MSG+e.getMessage());
                }
                return result;
        }

        @PostMapping( "/updateByMap")
        @ApiOperation(value="根据-{系统公告}-对象Map更新记录", notes="成功返回:{\"success\":true,\"message\",\"数据更新成功\"},失败返回:{\"success\":false,\"message\",\"数据更新失败\"}")
        @ApiImplicitParams({
        @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map更新记录",value = "update",type = "PC")
        public Map<String, Object>  updateByMapForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody Map<String, Object> map)
        {
                Map<String, Object> result = new HashMap<String, Object>();
                try {


                int flag = systemNoticeService.updateByMap(map);
                if(1<=flag){
                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, UPDATE_SUCCESS_MSG);
                }else{
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, UPDATE_FAIL_MSG);
                }

                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, UPDATE_FAIL_MSG+e.getMessage());
                }
                return result;
        }
        @PostMapping( "/getOne")
        @ApiOperation(value="根据-{系统公告}-对象Map查询记录", notes="成功返回:{\"success\":true,\"message\",\"数据查询成功\",\"datarecord\":\"{}\"},失败返回:{\"success\":false,\"message\",\"数据查询失败\"}")
        @ApiImplicitParams({
        @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map查询记录",value = "query",type = "PC")
        public Map<String, Object>  getOneForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody Map<String, Object> map)
        {
                Map<String, Object> result = new HashMap<String, Object>();
                try {

                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, QUERY_SUCCESS_MSG);
                result.put(DATARECORD, systemNoticeService.getOne(map));
                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, QUERY_FAIL_MSG+e.getMessage());
                }
                return result;
        }

        @PostMapping( "/getAll")
        @ApiOperation(value="根据-{系统公告}-对象Map查询所有记录", notes="成功返回:{\"success\":true,\"message\",\"数据查询成功\",\"data\":\"[]\"},失败返回:{\"success\":false,\"message\",\"数据查询失败\"}")
        @ApiImplicitParams({
        @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map查询所有记录",value = "query",type = "PC")
        public Map<String, Object>  getAllForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody Map<String, Object> map)
                {
                Map<String, Object> result = new HashMap<String, Object>();
                try {

                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, QUERY_SUCCESS_MSG);
                result.put(DATALIST_VUE, systemNoticeService.getAll(map));
                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, QUERY_FAIL_MSG+e.getMessage());
                }
                return result;
        }
        
        
        @PostMapping( "/queryPage")
        @ApiOperation(value="根据-{系统公告}-对象Map分页记录", notes="成功返回:{\"success\":true,\"message\",\"数据查询成功\",\"data\":\"[]\"},失败返回:{\"success\":false,\"message\",\"数据查询失败\"}")
        @ApiImplicitParams({
            @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map分页记录",value = "query",type = "PC")
        public Map<String, Object>  queryPageForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody Map<String, Object> map)
        {
            Map<String, Object> result = new HashMap<String, Object>();
            try {

            int currentPage = map.get(DATACURRENT)!=null?Integer.parseInt(map.get(DATACURRENT)+"")-1:0;
            int pageSize = map.get(PAGESIZE)!=null?Integer.parseInt(map.get(PAGESIZE)+""):10;
            int pageStart = currentPage*pageSize ;


            map.put(PAGESIZE,pageSize);
            map.put(PAGESTART,pageStart);

            int total = systemNoticeService.count(map);
            List<Map<String, Object>> datalist = new ArrayList<Map<String, Object>>();
            if(total>0){
            datalist = systemNoticeService.queryPage(map);
            }
            result.put(DATASUCCESS, SUCCESSFLAG);
            result.put(DATAMESSAGE, QUERY_SUCCESS_MSG);
            result.put(DATALIST,datalist);
            Map<String, Object> pagemode = new HashMap<String, Object>();
            pagemode.put(DATATOTAL,total);
            pagemode.put(PAGESIZE,map.get(PAGESIZE)!=null?map.get(PAGESIZE):10);
            pagemode.put(DATACURRENT,map.get(DATACURRENT)!=null?map.get(DATACURRENT):0);
            result.put(PAGINATION,pagemode);
            }catch(Exception e){
            result.put(DATASUCCESS, ERRORFLAG);
            result.put(DATAMESSAGE, QUERY_FAIL_MSG+e.getMessage());
            }
            return result;
        }

        @PostMapping( "/queryPageVue")
        @ApiOperation(value="根据-{系统公告}-对象Map分页记录", notes="成功返回:{\"success\":true,\"message\",\"数据查询成功\",\"data\":\"[]\"},失败返回:{\"success\":false,\"message\",\"数据查询失败\"}")
        @ApiImplicitParams({
            @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map分页记录",value = "query",type = "PC")
        public Map<String, Object>  queryPageVueForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody Map<String, Object> map)
        {
            Map<String, Object> result = new HashMap<String, Object>();
            try {

            int currentPage = map.get(DATACURRENT_VUE)!=null?Integer.parseInt(map.get(DATACURRENT_VUE)+"")-1:0;
            int pageSize = map.get(PAGESIZE_VUE)!=null?Integer.parseInt(map.get(PAGESIZE_VUE)+""):10;
            int pageStart = currentPage*pageSize ;


            map.put(PAGESIZE_VUE,pageSize);
            map.put(PAGESTART,pageStart);

            int total = systemNoticeService.count(map);
            List<Map<String, Object>> datalist = new ArrayList<Map<String, Object>>();
            if(total>0){
            datalist = systemNoticeService.queryPage(map);
            }
            Map<String, Object> tempresult = new HashMap<String, Object>();
            tempresult.put(DATASUCCESS, SUCCESSFLAG);
            tempresult.put(DATAMESSAGE, QUERY_SUCCESS_MSG);
            tempresult.put(DATALIST_VUE,datalist);
            tempresult.put(DATATOTAL_VUE,total);
            tempresult.put(PAGESIZE_VUE,map.get(PAGESIZE_VUE)!=null?map.get(PAGESIZE_VUE):10);
            tempresult.put(DATACURRENT_VUE,map.get(DATACURRENT_VUE)!=null?map.get(DATACURRENT_VUE):0);
            result.put(DATARESULT, tempresult);
            }catch(Exception e){
            result.put(DATASUCCESS, ERRORFLAG);
            result.put(DATAMESSAGE, QUERY_FAIL_MSG+e.getMessage());
            }
            return result;
        }

        
        @PostMapping( "/queryPageOracle")
        @ApiOperation(value="根据-{系统公告}-对象Map分页记录", notes="成功返回:{\"success\":true,\"message\",\"数据查询成功\",\"data\":\"[]\"},失败返回:{\"success\":false,\"message\",\"数据查询失败\"}")
        @ApiImplicitParams({
            @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
            @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map分页记录",value = "query",type = "PC")
        public Map<String, Object>  queryPageOracleForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody Map<String, Object> map)
        {
            Map<String, Object> result = new HashMap<String, Object>();
            try {

            int currentPage = map.get(DATACURRENT)!=null?Integer.parseInt(map.get(DATACURRENT)+""):1;
            int pageSize = map.get(PAGESIZE)!=null?Integer.parseInt(map.get(PAGESIZE)+""):10;
            int pageStart = currentPage*pageSize ;


            map.put(PAGESTART,(currentPage-1)*pageSize);
            map.put(PAGEEND,currentPage*pageSize);

            int total = systemNoticeService.count(map);
            List<Map<String, Object>> datalist = new ArrayList<Map<String, Object>>();
            if(total>0){
            datalist = systemNoticeService.queryPage(map);
            }
            result.put(DATASUCCESS, SUCCESSFLAG);
            result.put(DATAMESSAGE, QUERY_SUCCESS_MSG);
            result.put(DATALIST,datalist);
            Map<String, Object> pagemode = new HashMap<String, Object>();
            pagemode.put(DATATOTAL,total);
            pagemode.put(PAGESIZE,map.get(PAGESIZE)!=null?map.get(PAGESIZE):10);
            pagemode.put(DATACURRENT,map.get(DATACURRENT)!=null?map.get(DATACURRENT):0);
            result.put(PAGINATION,pagemode);
            }catch(Exception e){
            result.put(DATASUCCESS, ERRORFLAG);
            result.put(DATAMESSAGE, QUERY_FAIL_MSG+e.getMessage());
            }
            return result;
        }
        
        
        @PostMapping( "/count")
        @ApiOperation(value="根据-{系统公告}-对象Map统计查询总数记录", notes="成功返回:{\"success\":true,\"message\",\"数据查询成功\",\"data\":\"[]\"},失败返回:{\"success\":false,\"message\",\"数据查询失败\"}")
        @ApiImplicitParams({
        @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map统计查询总数记录",value = "query",type = "PC")
        public Map<String, Object>  countForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody Map<String, Object> map)
                {
                Map<String, Object> result = new HashMap<String, Object>();
                try {

                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, QUERY_SUCCESS_MSG);
                result.put(DATATOTAL_VUE, systemNoticeService.count(map));
                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, QUERY_FAIL_MSG+e.getMessage());
                }
                return result;
        }

        @PostMapping( "/insertBatch")
        @ApiOperation(value="根据-{系统公告}-对象Map批量插入记录", notes="成功返回:{\"success\":true,\"message\",\"数据插入成功\"},失败返回:{\"success\":false,\"message\",\"数据插入失败\"}")
        @ApiImplicitParams({
        @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map批量插入记录",value = "insert",type = "PC")
        public Map<String, Object>  insertBatchForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody List<Map<String, Object>> list)
                {
                Map<String, Object> result = new HashMap<String, Object>();
                try {

                for(Map<String, Object> map:list){
                map.put("id", UUID.randomUUID().toString().replaceAll("-", ""));
                }

                systemNoticeService.insertBatch(list);
                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, INSERT_SUCCESS_MSG);
                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, INSERT_FAIL_MSG+e.getMessage());
                }
                return result;
        }

        @PostMapping( "/deleteBatch")
        @ApiOperation(value="根据-{系统公告}-对象Map批量删除记录", notes="成功返回:{\"success\":true,\"message\",\"数据删除成功\"},失败返回:{\"success\":false,\"message\",\"数据删除失败\"}")
        @ApiImplicitParams({
        @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map批量删除记录",value = "delete",type = "PC")
        public Map<String, Object>  deleteBatchForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody List<Map<String, Object>> list)
                {
                Map<String, Object> result = new HashMap<String, Object>();
                try {
                systemNoticeService.deleteBatch(list);
                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, DELETE_SUCCESS_MSG);

                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, DELETE_FAIL_MSG+e.getMessage());
                }
                return result;
        }

        @PostMapping( "/updateBatch")
        @ApiOperation(value="根据-{系统公告}-对象Map批量更新记录", notes="成功返回:{\"success\":true,\"message\",\"数据更新成功\"},失败返回:{\"success\":false,\"message\",\"数据更新失败\"}")
        @ApiImplicitParams({
        @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
        @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map批量更新记录",value = "update",type = "PC")
        public Map<String, Object>  updateBatchForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody List<Map<String, Object>> list)
                {
                Map<String, Object> result = new HashMap<String, Object>();
                try {


                systemNoticeService.updateBatch(list);
                result.put(DATASUCCESS, SUCCESSFLAG);
                result.put(DATAMESSAGE, UPDATE_SUCCESS_MSG);

                }catch(Exception e){
                result.put(DATASUCCESS, ERRORFLAG);
                result.put(DATAMESSAGE, UPDATE_FAIL_MSG+e.getMessage());
                }
                return result;
        }

        @PostMapping( "/getNotices")
        @ApiOperation(value="根据-{系统公告}-对象Map批量查询记录", notes="成功返回:{\"success\":true,\"message\",\"数据更新成功\"},失败返回:{\"success\":false,\"message\",\"数据更新失败\"}")
        @ApiImplicitParams({
                @ApiImplicitParam(paramType="body", name = "id", value = "通知id", required = true,  dataTypeClass = String.class),
                @ApiImplicitParam(paramType="body", name = "title", value = "公告标题", required = true,  dataTypeClass = String.class),
                @ApiImplicitParam(paramType="body", name = "content", value = "公告内容", required = true,  dataTypeClass = String.class),
                @ApiImplicitParam(paramType="body", name = "url", value = "公告链接地址", required = true,  dataTypeClass = String.class),
                @ApiImplicitParam(paramType="body", name = "an_addtime", value = "添加时间", required = true,  dataTypeClass = Date.class)
        })
        @OperateLog(name = "根据-{系统公告}-对象Map批量查询记录",value = "query",type = "PC")
        public Map<String, Object>  getNoticesForSystemNoticeForWeb(HttpServletRequest request , HttpServletResponse response,@RequestBody Map<String, Object> map)
        {
                Map<String, Object> result = new HashMap<String, Object>();
                try {
                        List<Map<String, Object>> resList = new ArrayList<>();
                        Map<String, Object> resMap = new HashMap<>();
                        resMap.put("id", "000000001");
                        resMap.put("avatar", "https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png");
                        resMap.put("title", "你收到了 14 份新周报");
                        resMap.put("datetime", "2020-08-09");
                        resMap.put("type", "notification");
                        resList.add(resMap);
                        Map<String, Object> resMap1 = new HashMap<>();
                        resMap1.put("id", "000000006");
                        resMap1.put("avatar", "https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg");
                        resMap1.put("title", "曲丽丽 评论了你");
                        resMap1.put("description", "描述信息描述信息描述信息");
                        resMap1.put("datetime", "2020-08-09");
                        resMap1.put("type", "message");
                        resMap1.put("clickClose", true);
                        resList.add(resMap1);
                        Map<String, Object> resMap2 = new HashMap<>();
                        resMap2.put("id", "000000010");
                        resMap2.put("title", "第三方紧急代码变更");
                        resMap2.put("description", "冠霖提交于 2017-01-06，需在 2017-01-07 前完成代码变更任务");
                        resMap2.put("extra", "马上到期");
                        resMap2.put("status", "urgent");
                        resMap2.put("type", "event");
                        resList.add(resMap2);

                        result.put(DATASUCCESS, SUCCESSFLAG);
                        result.put(DATAMESSAGE, QUERY_SUCCESS_MSG);
                        result.put(DATARECORD, resList);

                }catch(Exception e){
                        result.put(DATASUCCESS, ERRORFLAG);
                        result.put(DATAMESSAGE, QUERY_FAIL_MSG+e.getMessage());
                }
                return result;
        }

}
