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

[活动][修改][报名]

release_toaliyun_real
gongbiao 7 лет назад
Родитель
Сommit
af9c13fd30
7 измененных файлов: 173 добавлений и 3 удалений
  1. +58
    -0
      mallinkCApi/src/main/java/com/iformall/controller/WxActivityJoinController.java
  2. +3
    -2
      mallinkService/src/main/java/com/iformall/domain/po/WxActivity.java
  3. +36
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumActivityUseCreditStatus.java
  4. +5
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxActivityJoinMapper.java
  5. +5
    -0
      mallinkService/src/main/java/com/iformall/service/WxActivityJoinService.java
  6. +55
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxActivityJoinServiceImpl.java
  7. +11
    -1
      mallinkService/src/main/resources/mapper/WxActivityJoinMapper.xml

+ 58
- 0
mallinkCApi/src/main/java/com/iformall/controller/WxActivityJoinController.java Просмотреть файл

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

import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxActivity;
import com.iformall.domain.po.WxActivityJoin;
import com.iformall.service.WxActivityJoinService;
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("/api/wxActivityJoin")
@Api(description = "活动报名")
public class WxActivityJoinController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private WxActivityJoinService wxActivityJoinService;

@ApiOperation("分页列表接口")
@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(@ModelAttribute WxActivityJoin wxActivityJoin, Integer pageNum, Integer pageSize) {
if (null == wxActivityJoin) wxActivityJoin = new WxActivityJoin();
wxActivityJoin.setTenantId(getTenantId());
wxActivityJoin.setSortColumns(WxActivityJoin.Field.CreateTime_DESC);
final PageInfo<WxActivity> page = wxActivityJoinService.clistAsPage(wxActivityJoin, pageNum, pageSize);
return new ResultData(page);
}

@ApiOperation("报名")
@PostMapping("join")
public ResultData join(@RequestBody WxActivityJoin wxActivityJoin) {
if (wxActivityJoin.getUserId() == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "userId不能为空");
}
if (wxActivityJoin.getActivityId() == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "activityId不能为空");
}
wxActivityJoin.setTenantId(getTenantId());
wxActivityJoin.setUserId(getUserId());
return wxActivityJoinService.join(wxActivityJoin);
}


}

+ 3
- 2
mallinkService/src/main/java/com/iformall/domain/po/WxActivity.java Просмотреть файл

@@ -73,11 +73,11 @@ public class WxActivity extends BaseEntity {

@Transient
@io.swagger.annotations.ApiModelProperty(value = "开始时间", name = "starttime")
protected Date starttime;
private Date starttime;

@Transient
@io.swagger.annotations.ApiModelProperty(value = "结束时间", name = "endtime")
protected Date endtime;
private Date endtime;


@Transient
@@ -88,6 +88,7 @@ public class WxActivity extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value = "小程序二维码Scene", name = "weappScene")
protected String weappScene;


public String getWeappPath() {
if (type == null)
return "pages/index/index";


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

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

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


YES(1, "使用"),
NO(0, "不使用"),;

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

private Integer code;
private String message;

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

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 5
- 0
mallinkService/src/main/java/com/iformall/mapper/WxActivityJoinMapper.java Просмотреть файл

@@ -5,8 +5,13 @@ import com.iformall.domain.po.WxActivityJoin;

import java.util.List;

/**
* @author gongbiao
*/
public interface WxActivityJoinMapper extends CommonMapper<WxActivityJoin, Long> {

List<WxActivityJoin> findList(WxActivityJoin params);

void cfindList(WxActivityJoin wxActivityJoin);

}

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

@@ -2,6 +2,7 @@ package com.iformall.service;

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

import javax.servlet.http.HttpServletRequest;
@@ -22,4 +23,8 @@ public interface WxActivityJoinService {

ResultData sendMsg(WxActivityJoin wxActivityJoin);

PageInfo<WxActivity> clistAsPage(WxActivityJoin wxActivityJoin, Integer pageNum, Integer pageSize);

ResultData join(WxActivityJoin wxActivityJoin);

}

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

@@ -7,11 +7,15 @@ import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxActivity;
import com.iformall.domain.po.WxActivityJoin;
import com.iformall.domain.po.WxCUser;
import com.iformall.domain.po.WxCUserBasicInfo;
import com.iformall.domain.po.msg.WxMsgRecord;
import com.iformall.domain.vo.WxBillDailyVo;
import com.iformall.enums.*;
import com.iformall.mapper.WxActivityJoinMapper;
import com.iformall.mapper.WxActivityMapper;
import com.iformall.mapper.WxCUserBasicInfoMapper;
import com.iformall.mapper.WxCUserMapper;
import com.iformall.mq.MqBaseProducer;
import com.iformall.service.ExcelService;
import com.iformall.service.WxActivityJoinService;
@@ -21,6 +25,8 @@ 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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -47,6 +53,12 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService {
@Autowired
private MqBaseProducer mqBaseProducer;

@Autowired
WxCUserMapper wxCUserMapper;

@Autowired
WxCUserBasicInfoMapper wxCUserBasicInfoMapper;

@Override
public PageInfo<WxActivityJoin> listAsPage(WxActivityJoin record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxActivityJoinMapper.findList(record));
@@ -104,6 +116,49 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService {
return new ResultData();
}

@Override
public PageInfo<WxActivity> clistAsPage(WxActivityJoin wxActivityJoin, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxActivityJoinMapper.cfindList(wxActivityJoin));
}


@Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public ResultData join(WxActivityJoin wxActivityJoin) {
WxCUser user = wxCUserMapper.selectByPrimaryKey(wxActivityJoin.getUserId());
WxCUserBasicInfo basicInfo = new WxCUserBasicInfo();
basicInfo.setPhone(user.getPhone());
basicInfo.setTenantId(user.getTenantId());
WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectOne(basicInfo);
//保存到会员表中
wxCUserBasicInfo.setName(wxActivityJoin.getName());
wxCUserBasicInfo.setNickName(wxActivityJoin.getNickName());
wxCUserBasicInfo.setSex(wxActivityJoin.getSex());
wxCUserBasicInfo.setAddress(wxActivityJoin.getAddress());
wxCUserBasicInfoMapper.updateByPrimaryKeySelective(wxCUserBasicInfo);
//保存到报名表中
wxActivityJoinMapper.insertSelective(wxActivityJoin);
//查询是否消耗积分
WxActivity wxActivity = wxActivityMapper.selectByPrimaryKey(wxActivityJoin.getActivityId());
if (wxActivity.getUseCredit().equals(EnumActivityUseCreditStatus.YES.getCode())) {
Integer userCredit = user.getCredit();
Integer credit = wxActivity.getCredit();
Map<String, Object> data = new HashMap<>();
if (credit > userCredit) {
data.put("useCredit", credit);
data.put("totalCredit", userCredit);
return new ResultData(ErrorCode.CREDIT_NOT_ENOUGH, data);
}
userCredit = userCredit - credit;
user.setCredit(userCredit);
wxCUserMapper.updateByPrimaryKeySelective(user);
data.put("useCredit", credit);
data.put("totalCredit", userCredit);
return new ResultData(data);
}
return new ResultData();
}

private void sendMessage(WxActivityJoin join, WxActivity activity) {
logger.info("》》》》》》》》》》》");
logger.info("活动发送短信开始");


+ 11
- 1
mallinkService/src/main/resources/mapper/WxActivityJoinMapper.xml Просмотреть файл

@@ -66,6 +66,16 @@
from wx_activity_join
<include refid="dynamicWhereConditions"/>
</select>

<select id="cfindList" parameterType="com.iformall.domain.po.WxActivityJoin"
resultMap="com.iformall.domain.po.WxActivity">
select a.cover_img,a.title,a.activity_start_time,activity_end_time,a.`status`
from wx_activity_join aj left join wx_activity a on aj.activity_id=a.id
where aj.user_id=#{user_id}
<if test=" null != tenantId ">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != sortColumns">order by ${sortColumns}</if>
</select>

</mapper>

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