package com.matrix.system.shopXcx.api.action;
|
|
import com.matrix.biz.bean.BizUser;
|
import com.matrix.component.redis.RedisUserLoginUtils;
|
import com.matrix.core.exception.GlobleException;
|
import com.matrix.core.pojo.AjaxResult;
|
import com.matrix.core.pojo.PaginationVO;
|
import com.matrix.core.tools.LogUtil;
|
import com.matrix.system.common.interceptor.HostInterceptor;
|
import com.matrix.system.hive.plugin.util.CollectionUtils;
|
import com.matrix.system.shopXcx.api.vo.SalonVO;
|
import com.matrix.system.shopXcx.bean.ShopActivities;
|
import com.matrix.system.shopXcx.bean.ShopActivitiesSalonAttrRecord;
|
import com.matrix.system.shopXcx.bean.ShopActivitiesSalonDistribute;
|
import com.matrix.system.shopXcx.bean.ShopActivitiesSalonRecord;
|
import com.matrix.system.shopXcx.dao.ShopActivitiesDao;
|
import com.matrix.system.shopXcx.dao.ShopActivitiesSalonAttrRecordDao;
|
import com.matrix.system.shopXcx.dao.ShopActivitiesSalonAttributeDao;
|
import com.matrix.system.shopXcx.dao.ShopActivitiesSalonRecordDao;
|
import com.matrix.system.shopXcx.dto.CreateSalonDTO;
|
import org.apache.commons.lang.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author wzy
|
* @date 2020-04-21 11:09
|
**/
|
@RestController
|
@CrossOrigin(origins = "*")
|
@RequestMapping(value = "/wxapi/salon")
|
public class WxShopActivitiesSalonAction {
|
|
@Autowired
|
private ShopActivitiesDao shopActivitiesDao;
|
|
@Autowired
|
private ShopActivitiesSalonAttributeDao shopActivitiesSalonAttributeDao;
|
|
@Autowired
|
private RedisUserLoginUtils redisUserLoginUtils;
|
|
@Autowired
|
private ShopActivitiesSalonRecordDao shopActivitiesSalonRecordDao;
|
|
@Autowired
|
private ShopActivitiesSalonAttrRecordDao shopActivitiesSalonAttrRecordDao;
|
|
/**
|
* 前端分页查询沙龙活动
|
*
|
* @param salonVO
|
* @return
|
*/
|
@PostMapping(value = "/findSalonActivitiesInPage")
|
public AjaxResult findSalonActivitiesInPage(@RequestBody SalonVO salonVO) {
|
ShopActivities shopActivities = new ShopActivities();
|
shopActivities.setActType(ShopActivities.ACTIVITIES_TYPE_SALON);
|
shopActivities.setShopIds(salonVO.getShopId().toString());
|
shopActivities.setCompanyId(HostInterceptor.getCompanyId());
|
PaginationVO pageVo = new PaginationVO();
|
pageVo.setLimit(salonVO.getLimit());
|
pageVo.setOffset(salonVO.getOffset());
|
List<ShopActivities> list = shopActivitiesDao.selectInPage(shopActivities, pageVo);
|
|
AjaxResult ajaxResult = AjaxResult.buildSuccessInstance(list, shopActivitiesDao.selectTotalRecord(shopActivities));
|
return ajaxResult;
|
}
|
|
|
/**
|
* 获取沙龙活动详情
|
*
|
* @param id
|
* @return
|
*/
|
@GetMapping(value = "/findSalonInfoById/{id}")
|
public AjaxResult findSalonInfoById(@PathVariable("id") Long id) {
|
BizUser user = redisUserLoginUtils.getLoginUser(BizUser.class);
|
ShopActivities shopActivities = shopActivitiesDao.selectSalonActivityById(id);
|
ShopActivitiesSalonRecord salonRecord = shopActivitiesSalonRecordDao.selectSalonRecordByUserIdAndActId(user.getOpenId(), id);
|
AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
|
if(shopActivities.getActEndTime().getTime() - System.currentTimeMillis() < 0 || shopActivities.getActStatus() == ShopActivities.ACTIVITIES_STATUS_CLOSE) {
|
ajaxResult.putInMap("status", 2);
|
} else {
|
ajaxResult.putInMap("status", 1);
|
}
|
ajaxResult.putInMap("activity", shopActivities);
|
ajaxResult.putInMap("userRecord", salonRecord);
|
return ajaxResult;
|
}
|
|
/**
|
* 加入沙龙活动
|
*
|
* @param salonDTO
|
* @return
|
*/
|
@PostMapping(value = "/joinSalonActivity")
|
@Transactional
|
public AjaxResult joinSalonActivity(@RequestBody CreateSalonDTO salonDTO) {
|
BizUser user = redisUserLoginUtils.getLoginUser(BizUser.class);
|
|
ShopActivities shopActivities = shopActivitiesDao.selectById(salonDTO.getActId());
|
if (shopActivities == null) {
|
return AjaxResult.buildFailInstance("活动不存在");
|
}
|
|
ShopActivitiesSalonRecord record = shopActivitiesSalonRecordDao.selectSalonRecordByUserIdAndActId(user.getOpenId(), salonDTO.getActId());
|
if (record != null) {
|
return AjaxResult.buildFailInstance("该用户已经参加过了");
|
}
|
|
if (shopActivities.getActMax() != null && shopActivities.getActMax() != 0) {
|
ShopActivitiesSalonRecord salonRecord = new ShopActivitiesSalonRecord();
|
salonRecord.setActId(salonDTO.getActId());
|
int count = shopActivitiesSalonRecordDao.selectTotalRecord(salonRecord);
|
if (count + 1 > shopActivities.getActMax()) {
|
return AjaxResult.buildFailInstance("活动参与人数已满");
|
}
|
}
|
|
ShopActivitiesSalonRecord salonRecord = new ShopActivitiesSalonRecord();
|
salonRecord.setActId(salonDTO.getActId());
|
salonRecord.setUserId(user.getOpenId());
|
salonRecord.setCreateBy(user.getNickName());
|
salonRecord.setUpdateBy(user.getNickName());
|
salonRecord.setStatus(ShopActivitiesSalonRecord.JOIN_STATUS_ING);
|
salonRecord.setShopId(salonDTO.getShopId());
|
salonRecord.setCompanyId(shopActivities.getCompanyId());
|
shopActivitiesSalonRecordDao.insert(salonRecord);
|
|
List<ShopActivitiesSalonDistribute> list = shopActivitiesSalonAttributeDao.selectByActId(salonDTO.getActId());
|
if (CollectionUtils.isNotEmpty(list)) {
|
List<ShopActivitiesSalonAttrRecord> attrRecords = new ArrayList<>();
|
for (ShopActivitiesSalonDistribute salonDistribute : list) {
|
ShopActivitiesSalonAttrRecord attrRecord = new ShopActivitiesSalonAttrRecord();
|
attrRecord.setAsrId(salonRecord.getId());
|
Map<String, String> attrs = salonDTO.getAttrLists();
|
String attrValue = attrs.get(salonDistribute.getAttrName());
|
LogUtil.info("#{}#", attrValue);
|
if (StringUtils.isBlank(attrValue)) {
|
throw new GlobleException("有信息字段未填写");
|
} else {
|
attrRecord.setAttrName(salonDistribute.getAttrName());
|
attrRecord.setAttrValue(attrValue);
|
attrRecord.setCompanyId(shopActivities.getCompanyId());
|
attrRecords.add(attrRecord);
|
}
|
}
|
|
if (CollectionUtils.isNotEmpty(attrRecords)) {
|
shopActivitiesSalonAttrRecordDao.batchInsert(attrRecords);
|
} else {
|
throw new GlobleException("参数异常");
|
}
|
}
|
|
return AjaxResult.buildSuccessInstance("申请成功,等待审核");
|
}
|
|
|
/**
|
* 查询用户所有加入活动
|
*
|
* @return
|
*/
|
@RequestMapping(value = "/findSalonListByUser")
|
public AjaxResult findSalonListByUser(@RequestBody SalonVO salonVO) {
|
BizUser user = redisUserLoginUtils.getLoginUser(BizUser.class);
|
salonVO.setUserId(user.getOpenId());
|
List<ShopActivities> list = shopActivitiesDao.selectSalonActivityByUser(salonVO);
|
return AjaxResult.buildSuccessInstance(list);
|
}
|
}
|