Ver Fonte

心愿互换

jz.kai há 1 ano atrás
pai
commit
4b6e90a08b

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/base/dao/StudentAspirationsDAO.java

@@ -15,4 +15,5 @@ public interface StudentAspirationsDAO {
 	int delete(String id);
 	List<StudentAspirations> list();
 	List<StudentAspirations> search(Map<String, Object> searchParams, List<Sort> sortList);
+	List<StudentAspirations> findByWish(String wishInfoId);
 }

+ 2 - 0
common/src/main/java/com/jpsoft/employment/modules/base/dao/WishInfoUserRecordDAO.java

@@ -15,4 +15,6 @@ public interface WishInfoUserRecordDAO {
 	int delete(String id);
 	List<WishInfoUserRecord> list();
 	List<WishInfoUserRecord> search(Map<String, Object> searchParams, List<Sort> sortList);
+	List<WishInfoUserRecord> findByWish(String wishInfoId);
+	String getLastSerialNumber(String date);
 }

+ 7 - 3
common/src/main/java/com/jpsoft/employment/modules/base/entity/WishInfo.java

@@ -4,6 +4,8 @@ import java.io.Serializable;
 import java.util.Date;
 import java.text.SimpleDateFormat;
 import java.math.BigDecimal;
+import java.util.List;
+
 import org.springframework.format.annotation.DateTimeFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
@@ -61,6 +63,8 @@ public class WishInfo {
 			@ApiModelProperty(value = "是否删除")
 	private Boolean delFlag;
 
-	@ApiModelProperty(value = "数量")
-	private Integer recordAmount;
-	}
+	@ApiModelProperty(value = "心愿列表")
+	private List<StudentAspirations> aspirationList;
+	@ApiModelProperty(value = "已换列表")
+	private List<WishInfoUserRecord> recordList;
+}

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/StudentAspirationsService.java

@@ -14,4 +14,5 @@ public interface StudentAspirationsService {
 	int delete(String id);
 	List<StudentAspirations> list();
 	Page<StudentAspirations> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+	List<StudentAspirations> findByWish(String wishInfoId);
 }

+ 2 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/WishInfoUserRecordService.java

@@ -14,4 +14,6 @@ public interface WishInfoUserRecordService {
 	int delete(String id);
 	List<WishInfoUserRecord> list();
 	Page<WishInfoUserRecord> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+	List<WishInfoUserRecord> findByWish(String wishInfoId);
+	String getLastSerialNumber(String date);
 }

+ 6 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/impl/StudentAspirationsServiceImpl.java

@@ -67,4 +67,10 @@ public class StudentAspirationsServiceImpl implements StudentAspirationsService
         
         return page;
 	}
+
+	@Override
+	public List<StudentAspirations> findByWish(String wishInfoId) {
+		// TODO Auto-generated method stub
+		return studentAspirationsDAO.findByWish(wishInfoId);
+	}
 }

+ 10 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/impl/WishInfoUserRecordServiceImpl.java

@@ -67,4 +67,14 @@ public class WishInfoUserRecordServiceImpl implements WishInfoUserRecordService
         
         return page;
 	}
+
+	@Override
+	public List<WishInfoUserRecord> findByWish(String wishInfoId) {
+		return wishInfoUserRecordDAO.findByWish(wishInfoId);
+	}
+
+	@Override
+	public String getLastSerialNumber(String date) {
+		return wishInfoUserRecordDAO.getLastSerialNumber(date);
+	}
 }

+ 5 - 0
common/src/main/resources/mapper/base/StudentAspirations.xml

@@ -74,6 +74,11 @@
 	<select id="list" resultMap="StudentAspirationsMap">
 		select * from base_student_aspirations
 	</select>
+	<select id="findByWish" parameterType="string" resultMap="StudentAspirationsMap">
+		SELECT * FROM base_student_aspirations
+		WHERE del_flag = 0
+		AND wish_info_id = #{0}
+	</select>
 	<select id="search" parameterType="hashmap" resultMap="StudentAspirationsMap">
 		<![CDATA[
 			select * from base_student_aspirations

+ 11 - 0
common/src/main/resources/mapper/base/WishInfoUserRecord.xml

@@ -126,6 +126,17 @@
 	<select id="exist" parameterType="string" resultType="int">
 		select count(*) from base_wish_info_user_record where id_=#{0}
 	</select>
+	<select id="getLastSerialNumber" parameterType="string" resultType="string">
+		SELECT num_ FROM base_wish_info_user_record
+		WHERE num_ LIKE #{0}
+		ORDER BY num_ DESC
+		LIMIT 1
+	</select>
+	<select id="findByWish" parameterType="string" resultMap="WishInfoUserRecordMap">
+		SELECT * FROM base_wish_info_user_record
+		WHERE del_flag = 0
+		AND wish_info_id = #{0}
+	</select>
 	<select id="list" resultMap="WishInfoUserRecordMap">
 		select * from base_wish_info_user_record
 	</select>

+ 186 - 0
web/src/main/java/com/jpsoft/employment/modules/base/api/WishApi.java

@@ -0,0 +1,186 @@
+package com.jpsoft.employment.modules.base.api;
+
+import com.github.pagehelper.Page;
+import com.jpsoft.employment.modules.base.entity.WishInfo;
+import com.jpsoft.employment.modules.base.entity.WishInfoUserRecord;
+import com.jpsoft.employment.modules.base.service.StudentAspirationsService;
+import com.jpsoft.employment.modules.base.service.WishInfoService;
+import com.jpsoft.employment.modules.base.service.WishInfoUserRecordService;
+import com.jpsoft.employment.modules.common.dto.MessageResult;
+import com.jpsoft.employment.modules.common.dto.Sort;
+import com.jpsoft.employment.modules.sys.entity.DataDictionary;
+import com.jpsoft.employment.modules.sys.service.DataDictionaryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@RestController
+@RequestMapping("/base/api/wish")
+@Api(description = "心愿互换")
+public class WishApi {
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
+    private WishInfoService wishInfoService;
+    @Autowired
+    private WishInfoUserRecordService wishInfoUserRecordService;
+    @Autowired
+    private StudentAspirationsService studentAspirationsService;
+    @Autowired
+    private DataDictionaryService dataDictionaryService;
+
+    @ApiOperation(value="心愿单列表")
+    @RequestMapping(value = "list",method = RequestMethod.POST)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name="title", value="名称", required=false, paramType="query"),
+    })
+    public MessageResult list(
+            String title,
+            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+            @RequestParam(value="pageSize",defaultValue="20") int pageSize,
+            @RequestAttribute String subject){
+        MessageResult msgResult = new MessageResult<>();
+
+        Map<String,Object> searchParams = new HashMap<>();
+        if (StringUtils.isNotEmpty(title)) {
+            searchParams.put("title","%" + title + "%");
+        }
+
+        List<Sort> sortList = new ArrayList<>();
+        sortList.add(new Sort("create_time","desc"));
+
+        Page<WishInfo> page = wishInfoService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
+
+        msgResult.setResult(true);
+        msgResult.setData(page.getResult());
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="心愿单详情")
+    @GetMapping("edit/{id}")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name="id", value="ID", required=true, paramType="query"),
+    })
+    public MessageResult<WishInfo> edit(@PathVariable("id") String id){
+        MessageResult<WishInfo> msgResult = new MessageResult<>();
+
+        try {
+            WishInfo wishInfo = wishInfoService.get(id);
+            wishInfo.setAspirationList(studentAspirationsService.findByWish(id));
+            wishInfo.setRecordList(wishInfoUserRecordService.findByWish(id));
+
+            if (wishInfo != null) {
+                msgResult.setResult(true);
+                msgResult.setData(wishInfo);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库不存在该记录!");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="提交心愿单")
+    @RequestMapping(value = "add",method = RequestMethod.POST)
+//    @Transactional(rollbackFor = Exception.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name="wishInfoId", value="心愿信息ID", required=true, paramType="query"),
+            @ApiImplicitParam(name="isSpot", value="是否现场互换心愿", required=true, paramType="query"),
+            @ApiImplicitParam(name="recipients", value="收件人", required=false, paramType="query"),
+            @ApiImplicitParam(name="recipientsPhone", value="收件人电话", required=false, paramType="query"),
+            @ApiImplicitParam(name="recipientsAddress", value="收件人地址", required=false, paramType="query"),
+    })
+    public MessageResult<WishInfoUserRecord> add(String wishInfoId, Boolean isSpot,
+        String recipients, String recipientsPhone, String recipientsAddress,
+        @RequestAttribute String subject){
+        MessageResult<WishInfoUserRecord> msgResult = new MessageResult<>();
+
+        try {
+            WishInfoUserRecord wishInfoUserRecord = new WishInfoUserRecord();
+            wishInfoUserRecord.setId(UUID.randomUUID().toString());
+            wishInfoUserRecord.setRegUserId(subject);
+            wishInfoUserRecord.setWishInfoId(wishInfoId);
+            wishInfoUserRecord.setIsSpot(isSpot);
+            wishInfoUserRecord.setStatus("0");
+            wishInfoUserRecord.setNum(getSerialNumber());
+            wishInfoUserRecord.setRecipients (recipients);
+            wishInfoUserRecord.setRecipientsPhone(recipientsPhone);
+            wishInfoUserRecord.setRecipientsAddress(recipientsAddress);
+            wishInfoUserRecord.setDelFlag(false);
+            wishInfoUserRecord.setCreateBy(subject);
+            wishInfoUserRecord.setCreateTime(new Date());
+
+            int affectCount = wishInfoUserRecordService.insert(wishInfoUserRecord);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(wishInfoUserRecord);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库添加失败");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="心愿类型列表")
+    @RequestMapping(value = "wishTypeList",method = RequestMethod.POST)
+    public MessageResult<List> wishTypeList(){
+        MessageResult<List> messageResult = new MessageResult<>();
+
+        try {
+            List<DataDictionary> list = dataDictionaryService.findByCatalogName("心愿类型");
+            messageResult.setData(list);
+
+            messageResult.setResult(true);
+        }
+        catch (Exception ex){
+            messageResult.setResult(false);
+            messageResult.setMessage(ex.getMessage());
+        }
+
+        return messageResult;
+    }
+
+    private String getSerialNumber() {
+        String serialNumber = "";
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        serialNumber = sdf.format(new Date());
+
+        String lastSerialNumber = wishInfoUserRecordService.getLastSerialNumber(serialNumber + "%");
+        if(lastSerialNumber == null){
+            serialNumber = serialNumber + "0001";
+        }
+        else{
+            serialNumber = serialNumber + String.format("%04d",Integer.valueOf(lastSerialNumber.substring(8)) + 1);
+        }
+
+        return serialNumber;
+    }
+}