Просмотр исходного кода

[活动][修改][基本业务]

release_toaliyun_real
gongbiao 7 лет назад
Родитель
Сommit
4c2c165352
4 измененных файлов: 308 добавлений и 0 удалений
  1. +80
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxActivityController.java
  2. +36
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumActivityType.java
  3. +48
    -0
      mallinkService/src/main/java/com/iformall/service/WxActivityService.java
  4. +144
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxActivityServiceImpl.java

+ 80
- 0
mallinkAdmin/src/main/java/com/iformall/controller/market/WxActivityController.java Просмотреть файл

@@ -0,0 +1,80 @@
package com.iformall.controller.market;

import com.github.pagehelper.PageInfo;
import com.iformall.annotation.SystemControllerLog;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.WxActivity;
import com.iformall.enums.EnumActivityStatus;
import com.iformall.service.WxActivityService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
* @author gongbiao
*/
@RestController
@RequestMapping("wxActivity")
@Api(description = "活动")
public class WxActivityController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private WxActivityService wxActivityService;

@ApiOperation("分页列表接口")
@GetMapping("list")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
@SystemControllerLog(description = "活动-列表")
public ResultData list(@ModelAttribute WxActivity wxActivity, Integer pageNum, Integer pageSize) {
logger.debug("[" + getIpAddr() + "] WxActivityController::list");
if (null == wxActivity) wxActivity = new WxActivity();
if (wxActivity.getStatus() != null && wxActivity.getStatus() == -1) {
wxActivity.setStatus(null);
}
wxActivity.setTenantId(getTenantId());
wxActivity.setSortColumns(WxActivity.Field.Id_DESC);
final PageInfo<WxActivity> page = wxActivityService.listAsPage(wxActivity, pageNum, pageSize);
return new ResultData(page);
}

@ApiOperation("新增接口")
@PostMapping("add")
@SystemControllerLog(description = "活动-新增")
public ResultData add(@RequestBody WxActivity wxActivity) {
logger.debug("[" + getIpAddr() + "] WxActivityController::add");
wxActivity.setStatus(EnumActivityStatus.STATUS_THROW_IN.getCode());
wxActivity.setTenantId(getTenantId());
wxActivityService.saveOrUpdate(wxActivity);
return new ResultData();
}

@ApiOperation("根据id更新接口")
@PostMapping("update")
@SystemControllerLog(description = "活动-id更新")
public ResultData update(@RequestBody WxActivity wxActivity) {
logger.debug("[" + getIpAddr() + "] WxActivityController::update");
return wxActivityService.saveOrUpdate(wxActivity);
}

@ApiOperation("根据id查询接口")
@GetMapping("/findById")
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
@SystemControllerLog(description = "活动-查询")
public ResultData findById(Long id) {
logger.debug("[" + getIpAddr() + "] WxActivityController::findById");
WxActivity wxActivity = wxActivityService.getById(id);
return new ResultData(Result.SUCCESS, "查询成功", wxActivity);
}


}

+ 36
- 0
mallinkService/src/main/java/com/iformall/enums/EnumActivityType.java Просмотреть файл

@@ -0,0 +1,36 @@
package com.iformall.enums;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumActivityType {

STABLE(1, "固定格式"),
FREE(2, "自由图文"),
PAGEPATH(3, "小程序路径"),;

public static EnumActivityType getEnum(Integer code) {
for (EnumActivityType value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumActivityType(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 48
- 0
mallinkService/src/main/java/com/iformall/service/WxActivityService.java Просмотреть файл

@@ -0,0 +1,48 @@
package com.iformall.service;

import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxActivity;

import javax.servlet.http.HttpServletResponse;

public interface WxActivityService {

/**
* 根据实体查询分页列表
*
* @param record
* @param pageIndex
* @param pageSize
* @return
*/
PageInfo<WxActivity> listAsPage(WxActivity record, Integer pageIndex, Integer pageSize);

/**
* 根据Id获得实体
*
* @param id
* @return
*/
WxActivity getById(Long id);

/**
* 保存或更新实体
*
* @param record
*/
ResultData saveOrUpdate(WxActivity record);

/**
* 根据Id删除实体
*
* @param id
*/
void deleteById(Long id);


ResultData updateStatus(WxActivity wxActivity);

void printHtmlById(Long id, HttpServletResponse response);

}

+ 144
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxActivityServiceImpl.java Просмотреть файл

@@ -0,0 +1,144 @@
package com.iformall.service.impl;

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.common.ResultData;
import com.iformall.domain.po.WxActivity;
import com.iformall.enums.EnumActivityStatus;
import com.iformall.enums.EnumActivityType;
import com.iformall.mapper.WxActivityMapper;
import com.iformall.mapper.WxCouponChannelMapper;
import com.iformall.service.WxActivityService;
import com.iformall.service.WxCouponChannelService;
import com.iformall.service.WxCouponService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

/**
* @author gongbiao
*/
@Service
public class WxActivityServiceImpl implements WxActivityService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
WxActivityMapper wxActivityMapper;

@Autowired
WxCouponChannelMapper wxCouponChannelMapper;

@Autowired
WxCouponService wxCouponService;

@Autowired
WxCouponChannelService wxCouponChannelService;

@Override
public PageInfo<WxActivity> listAsPage(WxActivity record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxActivityMapper.findList(record));
}

@Override
public WxActivity getById(Long id) {
WxActivity wxActivity = wxActivityMapper.selectByPrimaryKey(id);
String html = wxActivity.getHtml();
if (!StringUtils.isEmpty(html)) {
try {
html = URLDecoder.decode(html, "utf-8");
} catch (UnsupportedEncodingException e) {
logger.info("图文内容解码失败");
}
wxActivity.setHtml(html);
}
return wxActivity;
}

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public ResultData saveOrUpdate(WxActivity wxActivity) {
if (wxActivity.getType().equals(EnumActivityType.STABLE.getCode())) {
if (StringUtils.isEmpty(wxActivity.getCoverImg())) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "封面图不能为空");
}
if (StringUtils.isEmpty(wxActivity.getTitle())) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "标题不能为空");
}
if (StringUtils.isEmpty(wxActivity.getDetail())) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "活动说明不能为空");
}
} else if (wxActivity.getType().equals(EnumActivityType.FREE.getCode())) {
if (StringUtils.isEmpty(wxActivity.getHtml())) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "图文不能为空");
}
int length = wxActivity.getHtml().getBytes().length;
if (length >= 0xFFFFFF) { //Mysql MiddleText length limited
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "图文内容过大无法保存");
}
} else {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
}
wxActivity.setStatus(EnumActivityStatus.STATUS_THROW_IN.getCode());
if (wxActivity.getId() == null) {
final IdWorker idWorker = IdWorker.get();
wxActivity.setId(idWorker.nextId());
wxActivityMapper.insertSelective(wxActivity);
} else {
wxActivityMapper.updateByPrimaryKeySelective(wxActivity);
}
return new ResultData(Result.SUCCESS, "操作成功");
}

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public ResultData updateStatus(WxActivity wxActivity) {
wxActivityMapper.updateByPrimaryKeySelective(wxActivity);
return new ResultData(Result.SUCCESS, "操作成功");
}

@Override
public void deleteById(Long id) {
wxActivityMapper.deleteByPrimaryKey(id);
}


@Override
public void printHtmlById(Long id, HttpServletResponse response) {
try {
response.setHeader("Content-type", "text/html;charset=utf-8");
WxActivity wxActivity = wxActivityMapper.selectByPrimaryKey(id);
String html = StringUtils.isEmpty(wxActivity.getHtml()) ? "" : wxActivity.getHtml();
try {
html = URLDecoder.decode(html, "utf-8");
} catch (UnsupportedEncodingException e) {
logger.info("图文内容解码失败");
}
// 循环取出流中的数据
byte[] b = new byte[1024];
int len;
InputStream inStream = new ByteArrayInputStream(html.getBytes());
while ((len = inStream.read(b)) > 0) {
response.getOutputStream().write(b, 0, len);
}
inStream.close();
} catch (Exception e) {
logger.info("输出富文本内容" + e.getMessage());
e.printStackTrace();
}
}


}

Загрузка…
Отмена
Сохранить