From 11f5cd89c4a1e77de4e57a708380b7be7d4cee41 Mon Sep 17 00:00:00 2001 From: luozukai Date: Fri, 29 Mar 2019 15:17:06 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=B8=93=E9=A2=98][=E6=B7=BB=E5=8A=A0][?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=93=E9=A2=98=E5=8A=9F=E8=83=BD]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxTopicController.java | 52 +++++ .../com/iformall/domain/po/WxCouponTopic.java | 61 ++++++ .../java/com/iformall/domain/po/WxTopic.java | 196 ++++++++++++++++++ .../iformall/mapper/WxCouponTopicMapper.java | 10 + .../com/iformall/mapper/WxTopicMapper.java | 12 ++ .../com/iformall/service/WxTopicService.java | 24 +++ .../service/impl/WxTopicServiceImpl.java | 84 ++++++++ .../resources/mapper/WxCouponTopicMapper.xml | 55 +++++ .../main/resources/mapper/WxTopicMapper.xml | 61 ++++++ 9 files changed, 555 insertions(+) create mode 100644 mallinkAdmin/src/main/java/com/iformall/controller/WxTopicController.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxCouponTopic.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxTopic.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxCouponTopicMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxTopicMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxTopicService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxTopicServiceImpl.java create mode 100644 mallinkService/src/main/resources/mapper/WxCouponTopicMapper.xml create mode 100644 mallinkService/src/main/resources/mapper/WxTopicMapper.xml diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxTopicController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxTopicController.java new file mode 100644 index 000000000..a13288b68 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxTopicController.java @@ -0,0 +1,52 @@ +package com.iformall.controller; + +import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; +import com.iformall.domain.po.*; +import com.iformall.service.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("topic") +@Api(description = "专题相关接口") +public class WxTopicController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired + private WxTopicService wxTopicService; + + @GetMapping("list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData list(WxTopic wxTopic, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxTopicController::list"); + String tenantId = getTenantId(); + wxTopic.setTenantId(tenantId); + PageInfo page = wxTopicService.listAsPage(wxTopic, pageNum, pageSize); + return new ResultData(page); + } + + @PostMapping("saveOrUpdate") + public ResultData saveOrUpdate(@RequestBody WxTopic wxTopic) { + logger.debug("[" + getIpAddr() + "] WxTopicController::saveOrUpdate"); + wxTopicService.saveOrUpdate(wxTopic); + return new ResultData(); + } + + @GetMapping("show") + public ResultData show() { + logger.debug("[" + getIpAddr() + "] WxTopicController::show"); + WxTopic wxTopic = new WxTopic(); + String tenantId = getTenantId(); + wxTopic.setTenantId(tenantId); + return new ResultData(wxTopicService.show(wxTopic)); + } + + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponTopic.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponTopic.java new file mode 100644 index 000000000..8e2bd5c4c --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponTopic.java @@ -0,0 +1,61 @@ +package com.iformall.domain.po; + +import javax.persistence.Id; +import javax.persistence.Table; +import java.io.Serializable; + +@Table(name = "wx_coupon_topic") +public class WxCouponTopic implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + protected Long id; + @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") + private String tenantId; + @io.swagger.annotations.ApiModelProperty(value="专题ID",name="topicId") + private Long topicId; + @io.swagger.annotations.ApiModelProperty(value="业务类型1通用卷2满减卷3代金卷4礼品卷5停车卷6砍价商品7拼团商品",name="busType") + private String busType; + @io.swagger.annotations.ApiModelProperty(value="租户ID",name="busId") + private String busId; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public Long getTopicId() { + return topicId; + } + + public void setTopicId(Long topicId) { + this.topicId = topicId; + } + + public String getBusType() { + return busType; + } + + public void setBusType(String busType) { + this.busType = busType; + } + + public String getBusId() { + return busId; + } + + public void setBusId(String busId) { + this.busId = busId; + } +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxTopic.java b/mallinkService/src/main/java/com/iformall/domain/po/WxTopic.java new file mode 100644 index 000000000..865be69b6 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxTopic.java @@ -0,0 +1,196 @@ +package com.iformall.domain.po; + +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Transient; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Table(name = "wx_topic") +public class WxTopic implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + protected Long id; + /*租户ID**/ + @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") + private String tenantId; + /*名称**/ + @io.swagger.annotations.ApiModelProperty(value="名称",name="name") + private String name; + /*标题**/ + @io.swagger.annotations.ApiModelProperty(value="标题",name="title") + private String title; + /*内容**/ + @io.swagger.annotations.ApiModelProperty(value="内容",name="content") + private String content; + /*封面**/ + @io.swagger.annotations.ApiModelProperty(value="封面",name="cover") + private String cover; + /*广告图**/ + @io.swagger.annotations.ApiModelProperty(value="广告图",name="advert") + private String advert; + /*开始时间**/ + @io.swagger.annotations.ApiModelProperty(value="开始时间",name="beginTime") + private Date beginTime; + /*结束时间**/ + @io.swagger.annotations.ApiModelProperty(value="结束时间",name="endTime") + private Date endTime; + /*状态1投放2作废**/ + @io.swagger.annotations.ApiModelProperty(value="状态",name="status") + private Integer status; + @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createtime") + private Date createtime; + @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updatetime") + private Date updatetime; + + /*优惠券ids**/ + @io.swagger.annotations.ApiModelProperty(value="优惠券ids",name="couponIds") + private String couponIds; + + @Transient + private String couponName; + @Transient + private String couponPic; + @Transient + private String couponId; + + public String getCouponName() { + return couponName; + } + + public void setCouponName(String couponName) { + this.couponName = couponName; + } + + public String getCouponPic() { + return couponPic; + } + + public void setCouponPic(String couponPic) { + this.couponPic = couponPic; + } + + public String getCouponId() { + return couponId; + } + + public void setCouponId(String couponId) { + this.couponId = couponId; + } + + public List getCouponList() { + return couponList; + } + + public void setCouponList(List couponList) { + this.couponList = couponList; + } + + private List couponList; + + public String getCouponIds() { + return couponIds; + } + + public void setCouponIds(String couponIds) { + this.couponIds = couponIds; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCover() { + return cover; + } + + public void setCover(String cover) { + this.cover = cover; + } + + public String getAdvert() { + return advert; + } + + public void setAdvert(String advert) { + this.advert = advert; + } + + public Date getBeginTime() { + return beginTime; + } + + public void setBeginTime(Date beginTime) { + this.beginTime = beginTime; + } + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Date getCreatetime() { + return createtime; + } + + public void setCreatetime(Date createtime) { + this.createtime = createtime; + } + + public Date getUpdatetime() { + return updatetime; + } + + public void setUpdatetime(Date updatetime) { + this.updatetime = updatetime; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponTopicMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponTopicMapper.java new file mode 100644 index 000000000..8463f3e22 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponTopicMapper.java @@ -0,0 +1,10 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxCouponTopic; + +public interface WxCouponTopicMapper extends CommonMapper { + + void del(WxCouponTopic couponTopic); + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxTopicMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxTopicMapper.java new file mode 100644 index 000000000..b705fd12a --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxTopicMapper.java @@ -0,0 +1,12 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxTopic; +import java.util.List; + +public interface WxTopicMapper extends CommonMapper { + + List findList(WxTopic wxTopic); + + WxTopic show(WxTopic record); +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxTopicService.java b/mallinkService/src/main/java/com/iformall/service/WxTopicService.java new file mode 100644 index 000000000..eeff452c8 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxTopicService.java @@ -0,0 +1,24 @@ +package com.iformall.service; + +import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; +import com.iformall.domain.po.WxTopic; + +public interface WxTopicService { + + /** + * 根据实体查询分页列表 + * + * @param record + * @param pageIndex + * @param pageSize + * @return + */ + PageInfo listAsPage(WxTopic record, Integer pageIndex, Integer pageSize); + + ResultData saveOrUpdate(WxTopic record); + + WxTopic show(WxTopic record); + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxTopicServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxTopicServiceImpl.java new file mode 100644 index 000000000..42fa94306 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxTopicServiceImpl.java @@ -0,0 +1,84 @@ +package com.iformall.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.iformall.common.ErrorCode; +import com.iformall.common.IdWorker; +import com.iformall.common.Result; +import com.iformall.domain.po.WxCouponTopic; +import com.iformall.domain.po.WxTopic; +import com.iformall.mapper.WxCouponTopicMapper; +import com.iformall.mapper.WxTopicMapper; +import com.iformall.service.WxTopicService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import com.iformall.common.ResultData; +import java.util.Date; + +/** + * @author luozukai ^_^ + * @date 2019/3/28 17:02 + */ +public class WxTopicServiceImpl implements WxTopicService { + @Autowired + private WxTopicMapper wxTopicMapper; + @Autowired + private WxCouponTopicMapper wxCouponTopicMapper; + + @Override + public PageInfo listAsPage(WxTopic record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxTopicMapper.findList(record)); + } + + @Override + public WxTopic show(WxTopic record) { + return wxTopicMapper.show(record); + } + + @Override + public ResultData saveOrUpdate(WxTopic record) { + if (record.getId() == null) { + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + wxTopicMapper.insertSelective(record); + + if(StringUtils.isNotBlank(record.getCouponIds())) { + addCouponTopic(record); + } + return new ResultData(Result.SUCCESS,"添加成功"); + } else { + if(record.getStatus().equals(1)) { + WxTopic queryTopic = new WxTopic(); + queryTopic.setStatus(1); + queryTopic.setTenantId(record.getTenantId()); + if (wxTopicMapper.findList(queryTopic).size() > 0) { + return new ResultData(ErrorCode.SYS_REPEAT_SUBMIT_EXCEPTION.getCode(), "已有正在投放的专题"); + } + } + + record.setUpdatetime(new Date()); + wxTopicMapper.updateByPrimaryKeySelective(record); + if(StringUtils.isNotBlank(record.getCouponIds())) { + WxCouponTopic delCouponTopic = new WxCouponTopic(); + delCouponTopic.setTopicId(record.getId()); + wxCouponTopicMapper.del(delCouponTopic); + + addCouponTopic(record); + } + return new ResultData(Result.SUCCESS,"更新成功"); + } + } + + public void addCouponTopic(WxTopic record){ + for (String couponId:JSONArray.parseArray(record.getCouponIds(), String.class)) { + String[] couponArray = couponId.split("-"); + WxCouponTopic couponTopic = new WxCouponTopic(); + couponTopic.setBusType(couponArray[0]); + couponTopic.setBusId(couponArray[1]); + couponTopic.setTenantId(record.getTenantId()); + couponTopic.setTopicId(record.getId()); + wxCouponTopicMapper.insertSelective(couponTopic); + } + } +} diff --git a/mallinkService/src/main/resources/mapper/WxCouponTopicMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponTopicMapper.xml new file mode 100644 index 000000000..b9c7d3cf0 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxCouponTopicMapper.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + where 1 = 1 + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `status` = #{status} + + + + and `name` like concat('%', #{name},'%') + + + and `begin_time` >= #{beginTime} + + + and `end_time` <= #{endTime} + + order by createtime desc + + + + + + + delete from wx_coupon_topic where topic_id = #{topicId} + + + + diff --git a/mallinkService/src/main/resources/mapper/WxTopicMapper.xml b/mallinkService/src/main/resources/mapper/WxTopicMapper.xml new file mode 100644 index 000000000..a6123bad0 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxTopicMapper.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + where 1 = 1 + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `status` = #{status} + + + + and `name` like concat('%', #{name},'%') + + + and `begin_time` >= #{beginTime} + + + and `end_time` <= #{endTime} + + order by createtime desc + + + + + + + + +