diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/activity/StaticActivityPageService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/activity/StaticActivityPageService.java new file mode 100644 index 000000000..518ec201d --- /dev/null +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/activity/StaticActivityPageService.java @@ -0,0 +1,51 @@ +package com.accompany.admin.service.activity; + +import com.accompany.business.model.activity.PageActivity; +import com.accompany.business.service.activity.PageActivityService; +import com.accompany.business.vo.activities.PageActivityVO; +import com.accompany.core.util.BeanUtils; +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Calendar; + + +/** + * 页面静态活动配置 service + * + * @author linuxea + * @date 2019/10/9 11:01 + */ +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class StaticActivityPageService { + private final PageActivityService pageActivityService; + + @Autowired + public StaticActivityPageService(PageActivityService pageActivityService) { + this.pageActivityService = pageActivityService; + } + + public IPage queryList(Integer pageNumber, Integer pageSize) { + return pageActivityService.pageList(null, pageNumber, pageSize); + } + + public void save(PageActivityVO pageActivityVo) { + PageActivity pageActivity = BeanUtils.map(pageActivityVo, PageActivity.class); + pageActivity.setCreateTime(Calendar.getInstance().getTime()); + pageActivity.setUpdateTime(Calendar.getInstance().getTime()); + pageActivityService.save(pageActivity); + } + + public void deleteByActivityId(Integer id) { + pageActivityService.removeById(id); + } + + public Boolean existByCode(String actCode) { + return pageActivityService.countByCode(actCode) > 0; + } +} diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/activity/StaticActivityPageController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/activity/StaticActivityPageController.java new file mode 100644 index 000000000..9f03bed63 --- /dev/null +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/activity/StaticActivityPageController.java @@ -0,0 +1,69 @@ +package com.accompany.admin.controller.activity; + +import com.accompany.admin.controller.BaseController; +import com.accompany.admin.service.activity.StaticActivityPageService; +import com.accompany.business.model.activity.PageActivity; +import com.accompany.business.vo.activities.PageActivityVO; +import com.accompany.common.result.BusiResult; +import com.accompany.common.status.BusiStatus; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * 静态活动配置 + * + * @author linuxea + * @date 2019/10/9 + */ +@RestController +@RequestMapping("/admin/act/static") +public class StaticActivityPageController extends BaseController { + + @Autowired + private StaticActivityPageService staticActivityPageService; + + + /** + * 分页列表 + * + * @param pageNumber 页码 + * @param pageSize 页长 + */ + @GetMapping("/list") + public void queryList(@RequestParam("pageNumber") Integer pageNumber, @RequestParam("pageSize") Integer pageSize) { + IPage pageInfo = this.staticActivityPageService.queryList(pageNumber, pageSize); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("total", pageInfo.getTotal()); + jsonObject.put("rows", pageInfo.getRecords()); + writeJson(jsonObject.toJSONString()); + } + + /** + * 创建 + * @param pageActivity + * @return + */ + @PostMapping(value = "/save") + public BusiResult saveOperationAct(PageActivityVO pageActivity) { + Boolean exist = staticActivityPageService.existByCode(pageActivity.getCode()); + if (exist) { + return new BusiResult(BusiStatus.CODE_DUPLICATE); + } + staticActivityPageService.save(pageActivity); + return new BusiResult<>(BusiStatus.SUCCESS); + } + + /** + * 删除 + * + * @param id 静态活动 id + * @return 结果 + */ + @PostMapping(value = "/delete") + public BusiResult delOperationAct(Integer id) { + staticActivityPageService.deleteByActivityId(id); + return new BusiResult(BusiStatus.SUCCESS); + } +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/activity/PageActivity.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/activity/PageActivity.java new file mode 100644 index 000000000..51b3c9b20 --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/activity/PageActivity.java @@ -0,0 +1,37 @@ +package com.accompany.business.model.activity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: yangming + * @Date: 2020/5/13 20:06 + * @Description: 页面活动 + **/ +@Data +@TableName(value = "page_activity") +public class PageActivity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id",type = IdType.AUTO) + private Long id; + + private String code; + + private String title; + + private String secondTitle; + + private String imgUrl; + + private Date createTime; + + private Date updateTime; + +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/activities/PageActivityVO.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/activities/PageActivityVO.java new file mode 100644 index 000000000..8c2a447da --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/activities/PageActivityVO.java @@ -0,0 +1,26 @@ +package com.accompany.business.vo.activities; + +import lombok.Data; + +/** + * @author linuxea + * @date 2019/9/29 17:54 + */ +@Data +public class PageActivityVO { + + /** id 标识 */ + private Long id; + + /** 活动代码 */ + private String code; + + /** 活动页面标题 */ + private String title; + + /** 活动二级标题 */ + private String secondTitle; + + /** 页面活动图片地址 */ + private String imgUrl; +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/activity/PageActivityMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/activity/PageActivityMapper.java new file mode 100644 index 000000000..07945215e --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/activity/PageActivityMapper.java @@ -0,0 +1,12 @@ +package com.accompany.business.mybatismapper.activity; + +import com.accompany.business.model.activity.PageActivity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Author: yangming + * @Date: 2020/5/13 20:14 + * @Description: 页面活动 + **/ +public interface PageActivityMapper extends BaseMapper { +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/PageActivityService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/PageActivityService.java new file mode 100644 index 000000000..3881e401a --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/PageActivityService.java @@ -0,0 +1,49 @@ +package com.accompany.business.service.activity; + +import com.accompany.business.model.activity.PageActivity; +import com.accompany.business.mybatismapper.activity.PageActivityMapper; +import com.accompany.core.util.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * @Author: yangming + * @Date: 2020/5/13 20:16 + * @Description: 页面活动配置 + **/ +@Service +public class PageActivityService extends ServiceImpl { + + public PageActivity getByCode(String code){ + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda().eq(PageActivity::getCode,code) + .orderByDesc(PageActivity::getId); + List pageActivities = list(wrapper); + if(CollectionUtils.isEmpty(pageActivities)){ + return null; + } + return pageActivities.get(0); + } + + public IPage pageList(String searchKey, Integer page, Integer pageSize) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda().like(StringUtils.isNoneBlank(searchKey),PageActivity::getCode,searchKey).or() + .like(StringUtils.isNoneBlank(searchKey),PageActivity::getTitle,searchKey).or() + .like(StringUtils.isNoneBlank(searchKey),PageActivity::getSecondTitle,searchKey) + .orderByDesc(PageActivity::getId); + IPage iPage = new Page<>(page,pageSize); + return page(iPage,wrapper); + } + + public long countByCode(String code) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda().eq(PageActivity::getCode,code); + return count(wrapper); + } +} diff --git a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/activities/PageActivityController.java b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/activities/PageActivityController.java new file mode 100644 index 000000000..f6f1a3e49 --- /dev/null +++ b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/activities/PageActivityController.java @@ -0,0 +1,39 @@ +package com.accompany.business.controller.activities; + +import com.accompany.business.model.activity.PageActivity; +import com.accompany.business.service.activity.PageActivityService; +import com.accompany.business.vo.activities.PageActivityVO; +import com.accompany.common.result.BusiResult; +import com.accompany.core.util.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 页面静态活动 + * + * @author linuxea + * @date 2019/9/29 17:44 + */ +@RestController +@RequestMapping("/page/static/activity") +public class PageActivityController { + + @Autowired + private PageActivityService pageActivityService; + + /** + * 通过活动标识 code 获取 + * + * @param code 活动标识 + * @return {@link PageActivityVO} + */ + @GetMapping("/{code}") + public BusiResult getByCode(@PathVariable("code") String code) { + PageActivity pageActivity = pageActivityService.getByCode(code); + PageActivityVO pageActivityVO = BeanUtils.map(pageActivity, PageActivityVO.class); + return new BusiResult<>(pageActivityVO); + } +}